您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
nitowa 270c41a3dc 0.1 release, add .on(...) and .once(...) to RJSVM, add tests 1年前
..
.github init 1年前
test 0.1 release, add .on(...) and .once(...) to RJSVM, add tests 1年前
.eslintrc 0.1 release, add .on(...) and .once(...) to RJSVM, add tests 1年前
.nycrc init 1年前
CHANGELOG.md 0.1 release, add .on(...) and .once(...) to RJSVM, add tests 1年前
LICENSE init 1年前
README.md init 1年前
index.js 0.1 release, add .on(...) and .once(...) to RJSVM, add tests 1年前
package.json 0.1 release, add .on(...) and .once(...) to RJSVM, add tests 1年前

README.md

get-intrinsic Version Badge

github actions coverage dependency status dev dependency status License Downloads

npm badge

Get and robustly cache all JS language-level intrinsics at first require time.

See the syntax described in the JS spec for reference.

Example

var GetIntrinsic = require('get-intrinsic');
var assert = require('assert');

// static methods
assert.equal(GetIntrinsic('%Math.pow%'), Math.pow);
assert.equal(Math.pow(2, 3), 8);
assert.equal(GetIntrinsic('%Math.pow%')(2, 3), 8);
delete Math.pow;
assert.equal(GetIntrinsic('%Math.pow%')(2, 3), 8);

// instance methods
var arr = [1];
assert.equal(GetIntrinsic('%Array.prototype.push%'), Array.prototype.push);
assert.deepEqual(arr, [1]);

arr.push(2);
assert.deepEqual(arr, [1, 2]);

GetIntrinsic('%Array.prototype.push%').call(arr, 3);
assert.deepEqual(arr, [1, 2, 3]);

delete Array.prototype.push;
GetIntrinsic('%Array.prototype.push%').call(arr, 4);
assert.deepEqual(arr, [1, 2, 3, 4]);

// missing features
delete JSON.parse; // to simulate a real intrinsic that is missing in the environment
assert.throws(() => GetIntrinsic('%JSON.parse%'));
assert.equal(undefined, GetIntrinsic('%JSON.parse%', true));

Tests

Simply clone the repo, npm install, and run npm test

Security

Please email @ljharb or see https://tidelift.com/security if you have a potential security vulnerability to report.