Fallback to Symbol.for("Symbol.metadata")

This commit is contained in:
Nicolò Ribaudo 2022-01-16 14:18:07 +01:00
parent 2fc8ad9539
commit 0876e7a160
10 changed files with 16 additions and 16 deletions

File diff suppressed because one or more lines are too long

View File

@ -76,7 +76,7 @@ function createMetadataMethodsForProperty(metadataMap, kind, property) {
} }
function convertMetadataMapToFinal(obj, metadataMap) { function convertMetadataMapToFinal(obj, metadataMap) {
var parentMetadataMap = obj[Symbol.metadata]; var parentMetadataMap = obj[Symbol.metadata || Symbol.for("Symbol.metadata")];
var metadataKeys = Object.getOwnPropertySymbols(metadataMap); var metadataKeys = Object.getOwnPropertySymbols(metadataMap);
if (metadataKeys.length === 0) return; if (metadataKeys.length === 0) return;
@ -115,7 +115,7 @@ function convertMetadataMapToFinal(obj, metadataMap) {
Object.setPrototypeOf(metadataMap, parentMetadataMap); Object.setPrototypeOf(metadataMap, parentMetadataMap);
} }
obj[Symbol.metadata] = metadataMap; obj[Symbol.metadata || Symbol.for("Symbol.metadata")] = metadataMap;
} }
function createAddInitializerMethod(initializers) { function createAddInitializerMethod(initializers) {

View File

@ -7,4 +7,4 @@ function dec(_, { setMetadata }) {
@dec @dec
class Foo {} class Foo {}
expect(Foo[Symbol.metadata][key].constructor).toBe(123); expect(Foo[Symbol.for("Symbol.metadata")][key].constructor).toBe(123);

View File

@ -26,5 +26,5 @@ class Bar extends Foo {
@dec3 a; @dec3 a;
} }
expect(Foo.prototype[Symbol.metadata][key].public.a).toBe(456); expect(Foo.prototype[Symbol.for("Symbol.metadata")][key].public.a).toBe(456);
expect(Bar.prototype[Symbol.metadata][key].public.a).toBe(789); expect(Bar.prototype[Symbol.for("Symbol.metadata")][key].public.a).toBe(789);

View File

@ -12,5 +12,5 @@ class Bar extends Foo {
@dec #b; @dec #b;
} }
expect(Foo.prototype[Symbol.metadata][key].private).toEqual([123]); expect(Foo.prototype[Symbol.for("Symbol.metadata")][key].private).toEqual([123]);
expect(Bar.prototype[Symbol.metadata][key].private).toEqual([123, 123]); expect(Bar.prototype[Symbol.for("Symbol.metadata")][key].private).toEqual([123, 123]);

View File

@ -12,7 +12,7 @@ class Bar extends Foo {
@dec b; @dec b;
} }
expect(Foo.prototype[Symbol.metadata][key].public.a).toEqual(123); expect(Foo.prototype[Symbol.for("Symbol.metadata")][key].public.a).toEqual(123);
expect(Foo.prototype[Symbol.metadata][key].public.b).toEqual(undefined); expect(Foo.prototype[Symbol.for("Symbol.metadata")][key].public.b).toEqual(undefined);
expect(Bar.prototype[Symbol.metadata][key].public.a).toEqual(123); expect(Bar.prototype[Symbol.for("Symbol.metadata")][key].public.a).toEqual(123);
expect(Bar.prototype[Symbol.metadata][key].public.b).toEqual(123); expect(Bar.prototype[Symbol.for("Symbol.metadata")][key].public.b).toEqual(123);

View File

@ -8,4 +8,4 @@ class Foo {
@dec #a; @dec #a;
} }
expect(Foo.prototype[Symbol.metadata][key].private[0]).toBe(123); expect(Foo.prototype[Symbol.for("Symbol.metadata")][key].private[0]).toBe(123);

View File

@ -8,4 +8,4 @@ class Foo {
@dec a; @dec a;
} }
expect(Foo.prototype[Symbol.metadata][key].public.a).toBe(123); expect(Foo.prototype[Symbol.for("Symbol.metadata")][key].public.a).toBe(123);

View File

@ -8,4 +8,4 @@ class Foo {
@dec static #a; @dec static #a;
} }
expect(Foo[Symbol.metadata][key].private[0]).toBe(123); expect(Foo[Symbol.for("Symbol.metadata")][key].private[0]).toBe(123);

View File

@ -8,4 +8,4 @@ class Foo {
@dec static a; @dec static a;
} }
expect(Foo[Symbol.metadata][key].public.a).toBe(123); expect(Foo[Symbol.for("Symbol.metadata")][key].public.a).toBe(123);