diff options
author | Florian Dold <florian.dold@gmail.com> | 2019-03-27 21:01:33 +0100 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2019-03-27 21:01:33 +0100 |
commit | cc97a4dd2a967e1c2273bd5f4c5f49a5bf2e2585 (patch) | |
tree | 92c5d88706a6ffc654d1b133618d357890e7096b /node_modules/function-name-support/index.js | |
parent | 3771b4d6b67b34c130f3a9a1a15f42deefdb2eda (diff) |
remove node_modules
Diffstat (limited to 'node_modules/function-name-support/index.js')
-rw-r--r-- | node_modules/function-name-support/index.js | 163 |
1 files changed, 0 insertions, 163 deletions
diff --git a/node_modules/function-name-support/index.js b/node_modules/function-name-support/index.js deleted file mode 100644 index d42149961..000000000 --- a/node_modules/function-name-support/index.js +++ /dev/null @@ -1,163 +0,0 @@ -'use strict' - -const vm = require('vm') - -const context = vm.createContext() -function test (code) { - try { - return vm.runInContext(`(function () { - 'use strict' - ${code} - })()`, context) === true - } catch (err) { - return false - } -} - -const support = {} - -// Tests from <https://github.com/kangax/compat-table/blob/c0a3b882b27e4e9f4ef449a1c985ee7857326b94/data-es6.js#L12733:L13115>. -support.functionStatements = test(` - function foo(){}; - return foo.name === 'foo' && - (function(){}).name === ''; -`) - -support.functionExpressions = test(` - return (function foo(){}).name === 'foo' && - (function(){}).name === ''; -`) - -support.newFunction = test(` - return (new Function).name === "anonymous"; -`) - -support.boundFunctions = test(` - function foo() {}; - return foo.bind({}).name === "bound foo" && - (function(){}).bind({}).name === "bound "; -`) - -support.functionVariables = test(` - var foo = function() {}; - var bar = function baz() {}; - return foo.name === "foo" && bar.name === "baz"; -`) - -support.functionObjectMethods = test(` - var o = { foo: function(){}, bar: function baz(){}}; - o.qux = function(){}; - return o.foo.name === "foo" && - o.bar.name === "baz" && - o.qux.name === ""; -`) - -support.accessorProperties = test(` - var o = { get foo(){}, set foo(x){} }; - var descriptor = Object.getOwnPropertyDescriptor(o, "foo"); - return descriptor.get.name === "get foo" && - descriptor.set.name === "set foo"; -`) - -support.shorthandMethods = test(` - var o = { foo(){} }; - return o.foo.name === "foo" -`) - -support.symbolKeyedMethods = test(` - var sym1 = Symbol("foo"); - var sym2 = Symbol(); - var o = { - [sym1]: function(){}, - [sym2]: function(){} - }; - - return o[sym1].name === "[foo]" && - o[sym2].name === ""; -`) - -support.classStatements = test(` - class foo {}; - class bar { static name() {} }; - return foo.name === "foo" && - typeof bar.name === "function"; -`) - -support.classExpressions = test(` - return class foo {}.name === "foo" && - typeof class bar { static name() {} }.name === "function"; -`) - -support.classVariables = test(` - var foo = class {}; - var bar = class baz {}; - var qux = class { static name() {} }; - return foo.name === "foo" && - bar.name === "baz" && - typeof qux.name === "function"; -`) - -support.classObjectMethods = test(` - var o = { foo: class {}, bar: class baz {}}; - o.qux = class {}; - return o.foo.name === "foo" && - o.bar.name === "baz" && - o.qux.name === ""; -`) - -support.classPrototypeMethods = test(` - class C { foo(){} }; - return (new C).foo.name === "foo"; -`) - -support.classStaticMethods = test(` - class C { static foo(){} }; - return C.foo.name === "foo"; -`) - -exports.support = Object.freeze(support) - -const hasFullSupport = - support.functionStatements && - support.functionExpressions && - support.newFunction && - support.boundFunctions && - support.functionVariables && - support.functionObjectMethods && - support.accessorProperties && - support.shorthandMethods && - support.symbolKeyedMethods && - support.classStatements && - support.classExpressions && - support.classVariables && - support.classObjectMethods && - support.classPrototypeMethods && - support.classStaticMethods -exports.hasFullSupport = hasFullSupport - -const bitFlags = [ - 'functionStatements', - 'functionExpressions', - 'newFunction', - 'boundFunctions', - 'functionVariables', - 'functionObjectMethods', - 'accessorProperties', - 'shorthandMethods', - 'symbolKeyedMethods', - 'classStatements', - 'classExpressions', - 'classVariables', - 'classObjectMethods', - 'classPrototypeMethods', - 'classStaticMethods' - // Add new flags at the end. Reordering flags is a breaking change. -].reduce((acc, key, index) => { - return support[key] === true - ? acc + (1 << index) - : acc -}, 0b0) -exports.bitFlags = bitFlags - -exports.isSubsetOf = otherFlags => (bitFlags & otherFlags) === bitFlags -exports.isSupersetOf = otherFlags => (bitFlags & otherFlags) === otherFlags |