get-intrinsic
Advanced tools
Comparing version 1.2.0 to 1.2.1
@@ -8,2 +8,9 @@ # Changelog | ||
## [v1.2.1](https://github.com/ljharb/get-intrinsic/compare/v1.2.0...v1.2.1) - 2023-05-13 | ||
### Commits | ||
- [Fix] avoid a crash in envs without `__proto__` [`7bad8d0`](https://github.com/ljharb/get-intrinsic/commit/7bad8d061bf8721733b58b73a2565af2b6756b64) | ||
- [Dev Deps] update `es-abstract` [`c60e6b7`](https://github.com/ljharb/get-intrinsic/commit/c60e6b7b4cf9660c7f27ed970970fd55fac48dc5) | ||
## [v1.2.0](https://github.com/ljharb/get-intrinsic/compare/v1.1.3...v1.2.0) - 2023-01-19 | ||
@@ -10,0 +17,0 @@ |
35
index.js
@@ -46,8 +46,13 @@ 'use strict'; | ||
var hasSymbols = require('has-symbols')(); | ||
var hasProto = require('has-proto')(); | ||
var getProto = Object.getPrototypeOf || function (x) { return x.__proto__; }; // eslint-disable-line no-proto | ||
var getProto = Object.getPrototypeOf || ( | ||
hasProto | ||
? function (x) { return x.__proto__; } // eslint-disable-line no-proto | ||
: null | ||
); | ||
var needsEval = {}; | ||
var TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array); | ||
var TypedArray = typeof Uint8Array === 'undefined' || !getProto ? undefined : getProto(Uint8Array); | ||
@@ -58,3 +63,3 @@ var INTRINSICS = { | ||
'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer, | ||
'%ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined, | ||
'%ArrayIteratorPrototype%': hasSymbols && getProto ? getProto([][Symbol.iterator]()) : undefined, | ||
'%AsyncFromSyncIteratorPrototype%': undefined, | ||
@@ -89,6 +94,6 @@ '%AsyncFunction%': needsEval, | ||
'%isNaN%': isNaN, | ||
'%IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined, | ||
'%IteratorPrototype%': hasSymbols && getProto ? getProto(getProto([][Symbol.iterator]())) : undefined, | ||
'%JSON%': typeof JSON === 'object' ? JSON : undefined, | ||
'%Map%': typeof Map === 'undefined' ? undefined : Map, | ||
'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()), | ||
'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Map()[Symbol.iterator]()), | ||
'%Math%': Math, | ||
@@ -106,6 +111,6 @@ '%Number%': Number, | ||
'%Set%': typeof Set === 'undefined' ? undefined : Set, | ||
'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()), | ||
'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Set()[Symbol.iterator]()), | ||
'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer, | ||
'%String%': String, | ||
'%StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined, | ||
'%StringIteratorPrototype%': hasSymbols && getProto ? getProto(''[Symbol.iterator]()) : undefined, | ||
'%Symbol%': hasSymbols ? Symbol : undefined, | ||
@@ -126,8 +131,10 @@ '%SyntaxError%': $SyntaxError, | ||
try { | ||
null.error; // eslint-disable-line no-unused-expressions | ||
} catch (e) { | ||
// https://github.com/tc39/proposal-shadowrealm/pull/384#issuecomment-1364264229 | ||
var errorProto = getProto(getProto(e)); | ||
INTRINSICS['%Error.prototype%'] = errorProto; | ||
if (getProto) { | ||
try { | ||
null.error; // eslint-disable-line no-unused-expressions | ||
} catch (e) { | ||
// https://github.com/tc39/proposal-shadowrealm/pull/384#issuecomment-1364264229 | ||
var errorProto = getProto(getProto(e)); | ||
INTRINSICS['%Error.prototype%'] = errorProto; | ||
} | ||
} | ||
@@ -150,3 +157,3 @@ | ||
var gen = doEval('%AsyncGenerator%'); | ||
if (gen) { | ||
if (gen && getProto) { | ||
value = getProto(gen.prototype); | ||
@@ -153,0 +160,0 @@ } |
{ | ||
"name": "get-intrinsic", | ||
"version": "1.2.0", | ||
"version": "1.2.1", | ||
"description": "Get and robustly cache all JS language-level intrinsics at first require time", | ||
@@ -55,3 +55,3 @@ "main": "index.js", | ||
"call-bind": "^1.0.2", | ||
"es-abstract": "^1.21.1", | ||
"es-abstract": "^1.21.2", | ||
"es-value-fixtures": "^1.4.2", | ||
@@ -83,2 +83,3 @@ "eslint": "=8.8.0", | ||
"has": "^1.0.3", | ||
"has-proto": "^1.0.1", | ||
"has-symbols": "^1.0.3" | ||
@@ -85,0 +86,0 @@ }, |
39285
542
4
+ Addedhas-proto@^1.0.1
+ Addedhas-proto@1.0.3(transitive)