reflect-metadata
Advanced tools
Comparing version 0.1.14 to 0.2.0-pre.0
{ | ||
"name": "reflect-metadata", | ||
"version": "0.1.14", | ||
"version": "0.2.0-pre.0", | ||
"description": "Polyfill for Metadata Reflection API", | ||
"type": "commonjs", | ||
"main": "Reflect.js", | ||
"types": "index.d.ts", | ||
"typescript": { | ||
"definition": "Reflect.d.ts" | ||
"exports": { | ||
".": { | ||
"types": "./index.d.ts", | ||
"default": "./Reflect.js" | ||
}, | ||
"./lite": { | ||
"types": "./index.d.ts", | ||
"default": "./ReflectLite.js" | ||
}, | ||
"./no-conflict": { | ||
"types": "./no-conflict.d.ts", | ||
"default": "./ReflectNoConflict.js" | ||
} | ||
}, | ||
@@ -40,3 +52,3 @@ "scripts": { | ||
"@types/mocha": "^2.2.34", | ||
"@types/node": "^6.0.52", | ||
"@types/node": "^10.17.60", | ||
"chai": "^3.5.0", | ||
@@ -43,0 +55,0 @@ "del": "^2.2.2", |
# Metadata Reflection API | ||
NOTE: Now that both [Decorators](https://github.com/tc39/proposal-decorators) and | ||
[Decorator Metadata](https://github.com/tc39/proposal-decorator-metadata) have achieved Stage 3 within TC39, the API | ||
proposed below is no longer being considered for standardization. However, this package will continue to support | ||
projects that leverage TypeScript's legacy `--experimentalDecorators` option as some projects may not be able to migrate | ||
to use standard decorators. | ||
* [Detailed proposal][Metadata-Spec] | ||
@@ -11,2 +17,49 @@ | ||
## Usage | ||
### ES Modules in NodeJS/Browser, TypeScript/Babel, Bundlers | ||
```ts | ||
// - Modifies global `Reflect` object (or defines one in ES5 runtimes). | ||
// - Supports ESM and CommonJS. | ||
// - Contains internal polyfills for `Map`, `Set`, and `WeakMap` for older runtimes. | ||
import "reflect-metadata"; | ||
// - Modifies global `Reflect` object (or defines one in ES5 runtimes). | ||
// - Supports ESM and CommonJS. | ||
// - Requires runtime support for `"exports"` in `package.json`. | ||
// - Does not include internal polyfills. | ||
import "reflect-metadata/lite"; | ||
``` | ||
### CommonJS | ||
```ts | ||
// - Modifies global `Reflect` object (or defines one in ES5 runtimes). | ||
// - Contains internal polyfills for `Map`, `Set`, and `WeakMap` for older runtimes. | ||
require("reflect-metadata"); | ||
// - Modifies global `Reflect` object (or defines one in ES5 runtimes). | ||
// - Requires runtime support for `"exports"` in `package.json`. | ||
// - Does not include internal polyfills. | ||
require("reflect-metadata/lite"); | ||
``` | ||
### In the Browser via `<script>` | ||
**HTML** | ||
```html | ||
<!-- Modifies global `Reflect` object (or defines one in ES5 runtimes). --> | ||
<!-- Contains internal polyfills for `Map`, `Set`, and `WeakMap` for older runtimes. --> | ||
<script src="path/to/reflect-metadata/Reflect.js"></script> | ||
<!-- Modifies global `Reflect` object (or defines one in ES5 runtimes). --> | ||
<!-- Does not include internal polyfills. --> | ||
<script src="path/to/reflect-metadata/ReflectLite.js"></script> | ||
``` | ||
**Script** | ||
```js | ||
// - Makes types available in your editor. | ||
/// <reference path="path/to/reflect-metadata/standalone.d.ts" /> | ||
``` | ||
## Background | ||
@@ -13,0 +66,0 @@ |
455
Reflect.js
@@ -20,19 +20,18 @@ /*! ***************************************************************************** | ||
(function (factory) { | ||
var root = typeof global === "object" ? global : | ||
typeof self === "object" ? self : | ||
typeof this === "object" ? this : | ||
Function("return this;")(); | ||
var root = typeof globalThis === "object" ? globalThis : | ||
typeof global === "object" ? global : | ||
typeof self === "object" ? self : | ||
typeof this === "object" ? this : | ||
sloppyModeThis(); | ||
var exporter = makeExporter(Reflect); | ||
if (typeof root.Reflect !== "undefined") { | ||
exporter = makeExporter(root.Reflect, exporter); | ||
} | ||
factory(exporter, root); | ||
if (typeof root.Reflect === "undefined") { | ||
root.Reflect = Reflect; | ||
} | ||
else { | ||
exporter = makeExporter(root.Reflect, exporter); | ||
} | ||
factory(exporter); | ||
function makeExporter(target, previous) { | ||
return function (key, value) { | ||
if (typeof target[key] !== "function") { | ||
Object.defineProperty(target, key, { configurable: true, writable: true, value: value }); | ||
} | ||
Object.defineProperty(target, key, { configurable: true, writable: true, value: value }); | ||
if (previous) | ||
@@ -42,3 +41,18 @@ previous(key, value); | ||
} | ||
})(function (exporter) { | ||
function functionThis() { | ||
try { | ||
return Function("return this;")(); | ||
} | ||
catch (_) { } | ||
} | ||
function indirectEvalThis() { | ||
try { | ||
return (void 0, eval)("(function() { return this; })()"); | ||
} | ||
catch (_) { } | ||
} | ||
function sloppyModeThis() { | ||
return functionThis() || indirectEvalThis(); | ||
} | ||
})(function (exporter, root) { | ||
var hasOwn = Object.prototype.hasOwnProperty; | ||
@@ -68,9 +82,8 @@ // feature test for Symbol support | ||
var functionPrototype = Object.getPrototypeOf(Function); | ||
var usePolyfill = typeof process === "object" && process["env" + ""] && process["env" + ""]["REFLECT_METADATA_USE_MAP_POLYFILL"] === "true"; | ||
var _Map = !usePolyfill && typeof Map === "function" && typeof Map.prototype.entries === "function" ? Map : CreateMapPolyfill(); | ||
var _Set = !usePolyfill && typeof Set === "function" && typeof Set.prototype.entries === "function" ? Set : CreateSetPolyfill(); | ||
var _WeakMap = !usePolyfill && typeof WeakMap === "function" ? WeakMap : CreateWeakMapPolyfill(); | ||
// [[Metadata]] internal slot | ||
// https://rbuckton.github.io/reflect-metadata/#ordinary-object-internal-methods-and-internal-slots | ||
var Metadata = new _WeakMap(); | ||
var _Map = typeof Map === "function" && typeof Map.prototype.entries === "function" ? Map : CreateMapPolyfill(); | ||
var _Set = typeof Set === "function" && typeof Set.prototype.entries === "function" ? Set : CreateSetPolyfill(); | ||
var _WeakMap = typeof WeakMap === "function" ? WeakMap : CreateWeakMapPolyfill(); | ||
var registrySymbol = supportsSymbol ? Symbol.for("@reflect-metadata:registry") : undefined; | ||
var metadataRegistry = GetOrCreateMetadataRegistry(); | ||
var metadataProvider = CreateMetadataProvider(metadataRegistry); | ||
/** | ||
@@ -526,15 +539,10 @@ * Applies a set of decorators to a property of a target object. | ||
propertyKey = ToPropertyKey(propertyKey); | ||
var metadataMap = GetOrCreateMetadataMap(target, propertyKey, /*Create*/ false); | ||
if (IsUndefined(metadataMap)) | ||
if (!IsObject(target)) | ||
throw new TypeError(); | ||
if (!IsUndefined(propertyKey)) | ||
propertyKey = ToPropertyKey(propertyKey); | ||
var provider = GetMetadataProvider(target, propertyKey, /*Create*/ false); | ||
if (IsUndefined(provider)) | ||
return false; | ||
if (!metadataMap.delete(metadataKey)) | ||
return false; | ||
if (metadataMap.size > 0) | ||
return true; | ||
var targetMetadata = Metadata.get(target); | ||
targetMetadata.delete(propertyKey); | ||
if (targetMetadata.size > 0) | ||
return true; | ||
Metadata.delete(target); | ||
return true; | ||
return provider.OrdinaryDeleteMetadata(metadataKey, target, propertyKey); | ||
} | ||
@@ -566,19 +574,2 @@ exporter("deleteMetadata", deleteMetadata); | ||
} | ||
function GetOrCreateMetadataMap(O, P, Create) { | ||
var targetMetadata = Metadata.get(O); | ||
if (IsUndefined(targetMetadata)) { | ||
if (!Create) | ||
return undefined; | ||
targetMetadata = new _Map(); | ||
Metadata.set(O, targetMetadata); | ||
} | ||
var metadataMap = targetMetadata.get(P); | ||
if (IsUndefined(metadataMap)) { | ||
if (!Create) | ||
return undefined; | ||
metadataMap = new _Map(); | ||
targetMetadata.set(P, metadataMap); | ||
} | ||
return metadataMap; | ||
} | ||
// 3.1.1.1 OrdinaryHasMetadata(MetadataKey, O, P) | ||
@@ -598,6 +589,6 @@ // https://rbuckton.github.io/reflect-metadata/#ordinaryhasmetadata | ||
function OrdinaryHasOwnMetadata(MetadataKey, O, P) { | ||
var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ false); | ||
if (IsUndefined(metadataMap)) | ||
var provider = GetMetadataProvider(O, P, /*Create*/ false); | ||
if (IsUndefined(provider)) | ||
return false; | ||
return ToBoolean(metadataMap.has(MetadataKey)); | ||
return ToBoolean(provider.OrdinaryHasOwnMetadata(MetadataKey, O, P)); | ||
} | ||
@@ -618,6 +609,6 @@ // 3.1.3.1 OrdinaryGetMetadata(MetadataKey, O, P) | ||
function OrdinaryGetOwnMetadata(MetadataKey, O, P) { | ||
var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ false); | ||
if (IsUndefined(metadataMap)) | ||
return undefined; | ||
return metadataMap.get(MetadataKey); | ||
var provider = GetMetadataProvider(O, P, /*Create*/ false); | ||
if (IsUndefined(provider)) | ||
return; | ||
return provider.OrdinaryGetOwnMetadata(MetadataKey, O, P); | ||
} | ||
@@ -627,4 +618,4 @@ // 3.1.5.1 OrdinaryDefineOwnMetadata(MetadataKey, MetadataValue, O, P) | ||
function OrdinaryDefineOwnMetadata(MetadataKey, MetadataValue, O, P) { | ||
var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ true); | ||
metadataMap.set(MetadataKey, MetadataValue); | ||
var provider = GetMetadataProvider(O, P, /*Create*/ true); | ||
provider.OrdinaryDefineOwnMetadata(MetadataKey, MetadataValue, O, P); | ||
} | ||
@@ -666,29 +657,7 @@ // 3.1.6.1 OrdinaryMetadataKeys(O, P) | ||
function OrdinaryOwnMetadataKeys(O, P) { | ||
var keys = []; | ||
var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ false); | ||
if (IsUndefined(metadataMap)) | ||
return keys; | ||
var keysObj = metadataMap.keys(); | ||
var iterator = GetIterator(keysObj); | ||
var k = 0; | ||
while (true) { | ||
var next = IteratorStep(iterator); | ||
if (!next) { | ||
keys.length = k; | ||
return keys; | ||
} | ||
var nextValue = IteratorValue(next); | ||
try { | ||
keys[k] = nextValue; | ||
} | ||
catch (e) { | ||
try { | ||
IteratorClose(iterator); | ||
} | ||
finally { | ||
throw e; | ||
} | ||
} | ||
k++; | ||
var provider = GetMetadataProvider(O, P, /*create*/ false); | ||
if (!provider) { | ||
return []; | ||
} | ||
return provider.OrdinaryOwnMetadataKeys(O, P); | ||
} | ||
@@ -836,2 +805,5 @@ // 6 ECMAScript Data Typ0es and Values | ||
} | ||
function SameValueZero(x, y) { | ||
return x === y || x !== x && y !== y; | ||
} | ||
// 7.3 Operations on Objects | ||
@@ -910,2 +882,299 @@ // https://tc39.github.io/ecma262/#sec-operations-on-objects | ||
} | ||
// Global metadata registry | ||
// - Allows `import "reflect-metadata"` and `import "reflect-metadata/no-conflict"` to interoperate. | ||
// - Uses isolated metadata if `Reflect` is frozen before the registry can be installed. | ||
/** | ||
* Creates a registry used to allow multiple `reflect-metadata` providers. | ||
*/ | ||
function CreateMetadataRegistry() { | ||
var fallback; | ||
if (!IsUndefined(registrySymbol) && | ||
typeof root.Reflect !== "undefined" && | ||
!(registrySymbol in root.Reflect) && | ||
typeof root.Reflect.defineMetadata === "function") { | ||
// interoperate with older version of `reflect-metadata` that did not support a registry. | ||
fallback = CreateFallbackProvider(root.Reflect); | ||
} | ||
var first; | ||
var second; | ||
var rest; | ||
var targetProviderMap = new _WeakMap(); | ||
var registry = { | ||
registerProvider: registerProvider, | ||
getProvider: getProvider, | ||
setProvider: setProvider, | ||
}; | ||
return registry; | ||
function registerProvider(provider) { | ||
if (!Object.isExtensible(registry)) { | ||
throw new Error("Cannot add provider to a frozen registry."); | ||
} | ||
switch (true) { | ||
case fallback === provider: break; | ||
case IsUndefined(first): | ||
first = provider; | ||
break; | ||
case first === provider: break; | ||
case IsUndefined(second): | ||
second = provider; | ||
break; | ||
case second === provider: break; | ||
default: | ||
if (rest === undefined) | ||
rest = new _Set(); | ||
rest.add(provider); | ||
break; | ||
} | ||
} | ||
function getProviderNoCache(O, P) { | ||
if (!IsUndefined(first)) { | ||
if (first.isProviderFor(O, P)) | ||
return first; | ||
if (!IsUndefined(second)) { | ||
if (second.isProviderFor(O, P)) | ||
return first; | ||
if (!IsUndefined(rest)) { | ||
var iterator = GetIterator(rest); | ||
while (true) { | ||
var next = IteratorStep(iterator); | ||
if (!next) { | ||
return undefined; | ||
} | ||
var provider = IteratorValue(next); | ||
if (provider.isProviderFor(O, P)) { | ||
IteratorClose(iterator); | ||
return provider; | ||
} | ||
} | ||
} | ||
} | ||
} | ||
if (!IsUndefined(fallback) && fallback.isProviderFor(O, P)) { | ||
return fallback; | ||
} | ||
return undefined; | ||
} | ||
function getProvider(O, P) { | ||
var providerMap = targetProviderMap.get(O); | ||
var provider; | ||
if (!IsUndefined(providerMap)) { | ||
provider = providerMap.get(P); | ||
} | ||
if (!IsUndefined(provider)) { | ||
return provider; | ||
} | ||
provider = getProviderNoCache(O, P); | ||
if (!IsUndefined(provider)) { | ||
if (IsUndefined(providerMap)) { | ||
providerMap = new _Map(); | ||
targetProviderMap.set(O, providerMap); | ||
} | ||
providerMap.set(P, provider); | ||
} | ||
return provider; | ||
} | ||
function hasProvider(provider) { | ||
if (IsUndefined(provider)) | ||
throw new TypeError(); | ||
return first === provider || second === provider || !IsUndefined(rest) && rest.has(provider); | ||
} | ||
function setProvider(O, P, provider) { | ||
if (!hasProvider(provider)) { | ||
throw new Error("Metadata provider not registered."); | ||
} | ||
var existingProvider = getProvider(O, P); | ||
if (existingProvider !== provider) { | ||
if (!IsUndefined(existingProvider)) { | ||
return false; | ||
} | ||
var providerMap = targetProviderMap.get(O); | ||
if (IsUndefined(providerMap)) { | ||
providerMap = new _Map(); | ||
targetProviderMap.set(O, providerMap); | ||
} | ||
providerMap.set(P, provider); | ||
} | ||
return true; | ||
} | ||
} | ||
/** | ||
* Gets or creates the shared registry of metadata providers. | ||
*/ | ||
function GetOrCreateMetadataRegistry() { | ||
var metadataRegistry; | ||
if (!IsUndefined(registrySymbol) && IsObject(root.Reflect) && Object.isExtensible(root.Reflect)) { | ||
metadataRegistry = root.Reflect[registrySymbol]; | ||
} | ||
if (IsUndefined(metadataRegistry)) { | ||
metadataRegistry = CreateMetadataRegistry(); | ||
} | ||
if (!IsUndefined(registrySymbol) && IsObject(root.Reflect) && Object.isExtensible(root.Reflect)) { | ||
Object.defineProperty(root.Reflect, registrySymbol, { | ||
enumerable: false, | ||
configurable: false, | ||
writable: false, | ||
value: metadataRegistry | ||
}); | ||
} | ||
return metadataRegistry; | ||
} | ||
function CreateMetadataProvider(registry) { | ||
// [[Metadata]] internal slot | ||
// https://rbuckton.github.io/reflect-metadata/#ordinary-object-internal-methods-and-internal-slots | ||
var metadata = new _WeakMap(); | ||
var provider = { | ||
isProviderFor: function (O, P) { | ||
var targetMetadata = metadata.get(O); | ||
if (IsUndefined(targetMetadata)) | ||
return false; | ||
return targetMetadata.has(P); | ||
}, | ||
OrdinaryDefineOwnMetadata: OrdinaryDefineOwnMetadata, | ||
OrdinaryHasOwnMetadata: OrdinaryHasOwnMetadata, | ||
OrdinaryGetOwnMetadata: OrdinaryGetOwnMetadata, | ||
OrdinaryOwnMetadataKeys: OrdinaryOwnMetadataKeys, | ||
OrdinaryDeleteMetadata: OrdinaryDeleteMetadata, | ||
}; | ||
metadataRegistry.registerProvider(provider); | ||
return provider; | ||
function GetOrCreateMetadataMap(O, P, Create) { | ||
var targetMetadata = metadata.get(O); | ||
var createdTargetMetadata = false; | ||
if (IsUndefined(targetMetadata)) { | ||
if (!Create) | ||
return undefined; | ||
targetMetadata = new _Map(); | ||
metadata.set(O, targetMetadata); | ||
createdTargetMetadata = true; | ||
} | ||
var metadataMap = targetMetadata.get(P); | ||
if (IsUndefined(metadataMap)) { | ||
if (!Create) | ||
return undefined; | ||
metadataMap = new _Map(); | ||
targetMetadata.set(P, metadataMap); | ||
if (!registry.setProvider(O, P, provider)) { | ||
targetMetadata.delete(P); | ||
if (createdTargetMetadata) { | ||
metadata.delete(O); | ||
} | ||
throw new Error("Wrong provider for target."); | ||
} | ||
} | ||
return metadataMap; | ||
} | ||
// 3.1.2.1 OrdinaryHasOwnMetadata(MetadataKey, O, P) | ||
// https://rbuckton.github.io/reflect-metadata/#ordinaryhasownmetadata | ||
function OrdinaryHasOwnMetadata(MetadataKey, O, P) { | ||
var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ false); | ||
if (IsUndefined(metadataMap)) | ||
return false; | ||
return ToBoolean(metadataMap.has(MetadataKey)); | ||
} | ||
// 3.1.4.1 OrdinaryGetOwnMetadata(MetadataKey, O, P) | ||
// https://rbuckton.github.io/reflect-metadata/#ordinarygetownmetadata | ||
function OrdinaryGetOwnMetadata(MetadataKey, O, P) { | ||
var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ false); | ||
if (IsUndefined(metadataMap)) | ||
return undefined; | ||
return metadataMap.get(MetadataKey); | ||
} | ||
// 3.1.5.1 OrdinaryDefineOwnMetadata(MetadataKey, MetadataValue, O, P) | ||
// https://rbuckton.github.io/reflect-metadata/#ordinarydefineownmetadata | ||
function OrdinaryDefineOwnMetadata(MetadataKey, MetadataValue, O, P) { | ||
var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ true); | ||
metadataMap.set(MetadataKey, MetadataValue); | ||
} | ||
// 3.1.7.1 OrdinaryOwnMetadataKeys(O, P) | ||
// https://rbuckton.github.io/reflect-metadata/#ordinaryownmetadatakeys | ||
function OrdinaryOwnMetadataKeys(O, P) { | ||
var keys = []; | ||
var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ false); | ||
if (IsUndefined(metadataMap)) | ||
return keys; | ||
var keysObj = metadataMap.keys(); | ||
var iterator = GetIterator(keysObj); | ||
var k = 0; | ||
while (true) { | ||
var next = IteratorStep(iterator); | ||
if (!next) { | ||
keys.length = k; | ||
return keys; | ||
} | ||
var nextValue = IteratorValue(next); | ||
try { | ||
keys[k] = nextValue; | ||
} | ||
catch (e) { | ||
try { | ||
IteratorClose(iterator); | ||
} | ||
finally { | ||
throw e; | ||
} | ||
} | ||
k++; | ||
} | ||
} | ||
function OrdinaryDeleteMetadata(MetadataKey, O, P) { | ||
var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ false); | ||
if (IsUndefined(metadataMap)) | ||
return false; | ||
if (!metadataMap.delete(MetadataKey)) | ||
return false; | ||
if (metadataMap.size === 0) { | ||
var targetMetadata = metadata.get(O); | ||
if (!IsUndefined(targetMetadata)) { | ||
targetMetadata.delete(P); | ||
if (targetMetadata.size === 0) { | ||
metadata.delete(targetMetadata); | ||
} | ||
} | ||
} | ||
return true; | ||
} | ||
} | ||
function CreateFallbackProvider(reflect) { | ||
var metadataOwner = new _WeakMap(); | ||
var provider = { | ||
isProviderFor: function (O, P) { | ||
var metadataPropertySet = metadataOwner.get(O); | ||
if (!IsUndefined(metadataPropertySet)) { | ||
return metadataPropertySet.has(P); | ||
} | ||
if (reflect.getOwnMetadataKeys(O, P).length) { | ||
if (IsUndefined(metadataPropertySet)) { | ||
metadataPropertySet = new _Set(); | ||
metadataOwner.set(O, metadataPropertySet); | ||
} | ||
metadataPropertySet.add(P); | ||
return true; | ||
} | ||
return false; | ||
}, | ||
OrdinaryDefineOwnMetadata: reflect.defineMetadata, | ||
OrdinaryHasOwnMetadata: reflect.hasOwnMetadata, | ||
OrdinaryGetOwnMetadata: reflect.getOwnMetadata, | ||
OrdinaryOwnMetadataKeys: reflect.getOwnMetadataKeys, | ||
OrdinaryDeleteMetadata: reflect.deleteMetadata, | ||
}; | ||
return provider; | ||
} | ||
/** | ||
* Gets the metadata provider for an object. If the object has no metadata provider and this is for a create operation, | ||
* then this module's metadata provider is assigned to the object. | ||
*/ | ||
function GetMetadataProvider(O, P, Create) { | ||
var registeredProvider = metadataRegistry.getProvider(O, P); | ||
if (!IsUndefined(registeredProvider)) { | ||
return registeredProvider; | ||
} | ||
if (Create) { | ||
if (metadataRegistry.setProvider(O, P, metadataProvider)) { | ||
return metadataProvider; | ||
} | ||
throw new Error("Illegal state."); | ||
} | ||
return undefined; | ||
} | ||
// naive Map shim | ||
@@ -958,3 +1227,3 @@ function CreateMapPolyfill() { | ||
}()); | ||
return /** @class */ (function () { | ||
var Map = /** @class */ (function () { | ||
function Map() { | ||
@@ -991,3 +1260,3 @@ this._keys = []; | ||
this._values.length--; | ||
if (key === this._cacheKey) { | ||
if (SameValueZero(key, this._cacheKey)) { | ||
this._cacheKey = cacheSentinel; | ||
@@ -1012,4 +1281,10 @@ this._cacheIndex = -2; | ||
Map.prototype._find = function (key, insert) { | ||
if (this._cacheKey !== key) { | ||
this._cacheIndex = this._keys.indexOf(this._cacheKey = key); | ||
if (!SameValueZero(this._cacheKey, key)) { | ||
this._cacheIndex = -1; | ||
for (var i = 0; i < this._keys.length; i++) { | ||
if (SameValueZero(this._keys[i], key)) { | ||
this._cacheIndex = i; | ||
break; | ||
} | ||
} | ||
} | ||
@@ -1025,2 +1300,3 @@ if (this._cacheIndex < 0 && insert) { | ||
}()); | ||
return Map; | ||
function getKey(key, _) { | ||
@@ -1038,3 +1314,3 @@ return key; | ||
function CreateSetPolyfill() { | ||
return /** @class */ (function () { | ||
var Set = /** @class */ (function () { | ||
function Set() { | ||
@@ -1053,3 +1329,3 @@ this._map = new _Map(); | ||
Set.prototype.keys = function () { return this._map.keys(); }; | ||
Set.prototype.values = function () { return this._map.values(); }; | ||
Set.prototype.values = function () { return this._map.keys(); }; | ||
Set.prototype.entries = function () { return this._map.entries(); }; | ||
@@ -1060,2 +1336,3 @@ Set.prototype["@@iterator"] = function () { return this.keys(); }; | ||
}()); | ||
return Set; | ||
} | ||
@@ -1062,0 +1339,0 @@ // naive WeakMap shim |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
5109
231
241077
12
1