Fallback to Symbol.for("Symbol.metadata")
This commit is contained in:
parent
2fc8ad9539
commit
0876e7a160
File diff suppressed because one or more lines are too long
@ -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) {
|
||||||
|
|||||||
@ -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);
|
||||||
|
|||||||
@ -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);
|
||||||
|
|||||||
@ -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]);
|
||||||
|
|||||||
@ -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);
|
||||||
|
|||||||
@ -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);
|
||||||
|
|||||||
@ -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);
|
||||||
|
|||||||
@ -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);
|
||||||
|
|||||||
@ -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);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user