From f4ce216d1c18cbdad92e1e95446d3eb6f76f5925 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Sat, 14 Mar 2015 03:00:41 +1100 Subject: [PATCH] remove es7.abstractReferences, playground.methodBinding and playground.objectGetterMemoisation --- .../transformers/es7/abstract-references.js | 111 ------------------ .../transformation/transformers/index.js | 3 - .../transformers/playground/method-binding.js | 43 ------- .../playground/object-getter-memoization.js | 43 ------- .../es7-abstract-references/call/actual.js | 6 - .../es7-abstract-references/call/expected.js | 10 -- .../es7-abstract-references/delete/actual.js | 3 - .../delete/expected.js | 5 - .../es7-abstract-references/get/actual.js | 1 - .../es7-abstract-references/get/expected.js | 3 - .../es7-abstract-references/options.json | 3 - .../es7-abstract-references/private/actual.js | 12 -- .../private/expected.js | 30 ----- .../es7-abstract-references/set/actual.js | 3 - .../es7-abstract-references/set/expected.js | 5 - .../playground/method-binding/actual.js | 13 -- .../playground/method-binding/exec.js | 30 ----- .../playground/method-binding/expected.js | 23 ---- .../playground/method-binding/options.json | 3 - .../object-getter-memoization/actual.js | 19 --- .../object-getter-memoization/expected.js | 36 ------ 21 files changed, 405 deletions(-) delete mode 100644 src/babel/transformation/transformers/es7/abstract-references.js delete mode 100644 src/babel/transformation/transformers/playground/method-binding.js delete mode 100644 src/babel/transformation/transformers/playground/object-getter-memoization.js delete mode 100644 test/fixtures/transformation/es7-abstract-references/call/actual.js delete mode 100644 test/fixtures/transformation/es7-abstract-references/call/expected.js delete mode 100644 test/fixtures/transformation/es7-abstract-references/delete/actual.js delete mode 100644 test/fixtures/transformation/es7-abstract-references/delete/expected.js delete mode 100644 test/fixtures/transformation/es7-abstract-references/get/actual.js delete mode 100644 test/fixtures/transformation/es7-abstract-references/get/expected.js delete mode 100644 test/fixtures/transformation/es7-abstract-references/options.json delete mode 100644 test/fixtures/transformation/es7-abstract-references/private/actual.js delete mode 100644 test/fixtures/transformation/es7-abstract-references/private/expected.js delete mode 100644 test/fixtures/transformation/es7-abstract-references/set/actual.js delete mode 100644 test/fixtures/transformation/es7-abstract-references/set/expected.js delete mode 100644 test/fixtures/transformation/playground/method-binding/actual.js delete mode 100644 test/fixtures/transformation/playground/method-binding/exec.js delete mode 100644 test/fixtures/transformation/playground/method-binding/expected.js delete mode 100644 test/fixtures/transformation/playground/method-binding/options.json delete mode 100644 test/fixtures/transformation/playground/object-getter-memoization/actual.js delete mode 100644 test/fixtures/transformation/playground/object-getter-memoization/expected.js diff --git a/src/babel/transformation/transformers/es7/abstract-references.js b/src/babel/transformation/transformers/es7/abstract-references.js deleted file mode 100644 index 7713b41444..0000000000 --- a/src/babel/transformation/transformers/es7/abstract-references.js +++ /dev/null @@ -1,111 +0,0 @@ -// https://github.com/zenparsing/es-abstract-refs - -import * as util from "../../../util"; -import * as t from "../../../types"; - -export var experimental = true; - -var container = function (parent, call, ret, file) { - if (t.isExpressionStatement(parent) && !file.isConsequenceExpressionStatement(parent)) { - // we don't need to worry about return values - return call; - } else { - var exprs = []; - if (t.isSequenceExpression(call)) { - exprs = call.expressions; - } else { - exprs.push(call); - } - exprs.push(ret); - return t.sequenceExpression(exprs); - } -}; - -export function AssignmentExpression(node, parent, scope, file) { - var left = node.left; - if (!t.isVirtualPropertyExpression(left)) return; - - var value = node.right; - var temp; - - // we need to return `node.right` - if (!t.isExpressionStatement(parent)) { - temp = scope.generateTempBasedOnNode(node.right); - if (temp) value = temp; - } - - if (node.operator !== "=") { - value = t.binaryExpression( - node.operator[0], - util.template("abstract-expression-get", { - PROPERTY: node.property, - OBJECT: node.object - }), - value - ); - } - - var call = util.template("abstract-expression-set", { - PROPERTY: left.property, - OBJECT: left.object, - VALUE: value - }); - - if (temp) { - call = t.sequenceExpression([ - t.assignmentExpression("=", temp, node.right), - call - ]); - } - - return container(parent, call, value, file); -} - -export function UnaryExpression(node, parent, scope, file) { - var arg = node.argument; - if (!t.isVirtualPropertyExpression(arg)) return; - if (node.operator !== "delete") return; - - var call = util.template("abstract-expression-delete", { - PROPERTY: arg.property, - OBJECT: arg.object - }); - - return container(parent, call, t.literal(true), file); -} - -export function CallExpression(node, parent, scope) { - var callee = node.callee; - if (!t.isVirtualPropertyExpression(callee)) return; - - var temp = scope.generateTempBasedOnNode(callee.object); - - var call = util.template("abstract-expression-call", { - PROPERTY: callee.property, - OBJECT: temp || callee.object - }); - - call.arguments = call.arguments.concat(node.arguments); - - if (temp) { - return t.sequenceExpression([ - t.assignmentExpression("=", temp, callee.object), - call - ]); - } else { - return call; - } -} - -export function VirtualPropertyExpression(node) { - return util.template("abstract-expression-get", { - PROPERTY: node.property, - OBJECT: node.object - }); -} - -export function PrivateDeclaration(node) { - return t.variableDeclaration("const", node.declarations.map(function (id) { - return t.variableDeclarator(id, t.newExpression(t.identifier("WeakMap"), [])); - })); -} diff --git a/src/babel/transformation/transformers/index.js b/src/babel/transformation/transformers/index.js index 9b008d23c6..7a24cfd438 100644 --- a/src/babel/transformation/transformers/index.js +++ b/src/babel/transformation/transformers/index.js @@ -15,9 +15,7 @@ export default { "es6.arrowFunctions": require("./es6/arrow-functions"), "playground.malletOperator": require("./playground/mallet-operator"), - "playground.methodBinding": require("./playground/method-binding"), "playground.memoizationOperator": require("./playground/memoization-operator"), - "playground.objectGetterMemoization": require("./playground/object-getter-memoization"), reactCompat: require("./other/react-compat"), react: require("./other/react"), @@ -49,7 +47,6 @@ export default { "es6.regex.sticky": require("./es6/regex.sticky"), "es6.regex.unicode": require("./es6/regex.unicode"), - "es7.abstractReferences": require("./es7/abstract-references"), "es6.constants": require("./es6/constants"), diff --git a/src/babel/transformation/transformers/playground/method-binding.js b/src/babel/transformation/transformers/playground/method-binding.js deleted file mode 100644 index 5d4ddff3c7..0000000000 --- a/src/babel/transformation/transformers/playground/method-binding.js +++ /dev/null @@ -1,43 +0,0 @@ -import * as t from "../../../types"; - -export var playground = true; - -export function BindMemberExpression(node, parent, scope) { - var object = node.object; - var prop = node.property; - - var temp = scope.generateTempBasedOnNode(node.object); - if (temp) object = temp; - - var call = t.callExpression( - t.memberExpression(t.memberExpression(object, prop), t.identifier("bind")), - [object, ...node.arguments] - ); - - if (temp) { - return t.sequenceExpression([ - t.assignmentExpression("=", temp, node.object), - call - ]); - } else { - return call; - } -} - -export function BindFunctionExpression(node, parent, scope) { - var buildCall = function (args) { - var param = scope.generateUidIdentifier("val"); - return t.functionExpression(null, [param], t.blockStatement([ - t.returnStatement(t.callExpression(t.memberExpression(param, node.callee), args)) - ])); - }; - - var temp = scope.generateTemp("args"); - - return t.sequenceExpression([ - t.assignmentExpression("=", temp, t.arrayExpression(node.arguments)), - buildCall(node.arguments.map(function (node, i) { - return t.memberExpression(temp, t.literal(i), true); - })) - ]); -} diff --git a/src/babel/transformation/transformers/playground/object-getter-memoization.js b/src/babel/transformation/transformers/playground/object-getter-memoization.js deleted file mode 100644 index dbbd3a065e..0000000000 --- a/src/babel/transformation/transformers/playground/object-getter-memoization.js +++ /dev/null @@ -1,43 +0,0 @@ -import * as t from "../../../types"; - -export var playground = true; - -var visitor = { - enter(node, parent, scope, state) { - if (this.isFunction()) return this.skip(); - - if (this.isReturnStatement() && node.argument) { - node.argument = t.memberExpression(t.callExpression(state.file.addHelper("define-property"), [ - t.thisExpression(), - state.key, - node.argument - ]), state.key, true); - } - } -}; - -export function MethodDefinition(node, parent, scope, file) { - if (node.kind !== "memo") return; - node.kind = "get"; - - console.error("Object getter memoization is deprecated and will be removed in 5.0.0"); - - t.ensureBlock(node.value); - - var key = node.key; - - if (t.isIdentifier(key) && !node.computed) { - key = t.literal(key.name); - } - - var state = { - key: key, - file: file - }; - - this.get("value").traverse(visitor, state); - - return node; -} - -export { MethodDefinition as Property }; diff --git a/test/fixtures/transformation/es7-abstract-references/call/actual.js b/test/fixtures/transformation/es7-abstract-references/call/actual.js deleted file mode 100644 index 51355b9a69..0000000000 --- a/test/fixtures/transformation/es7-abstract-references/call/actual.js +++ /dev/null @@ -1,6 +0,0 @@ -foo::bar(); -foo::bar("arg"); - -var test = "test"; -test::bar(); -test::bar("arg"); diff --git a/test/fixtures/transformation/es7-abstract-references/call/expected.js b/test/fixtures/transformation/es7-abstract-references/call/expected.js deleted file mode 100644 index 55bdecc949..0000000000 --- a/test/fixtures/transformation/es7-abstract-references/call/expected.js +++ /dev/null @@ -1,10 +0,0 @@ -"use strict"; - -var _foo, _foo2; - -_foo = foo, bar[Symbol.referenceGet](_foo).call(_foo); -_foo2 = foo, bar[Symbol.referenceGet](_foo2).call(_foo2, "arg"); - -var test = "test"; -bar[Symbol.referenceGet](test).call(test); -bar[Symbol.referenceGet](test).call(test, "arg"); diff --git a/test/fixtures/transformation/es7-abstract-references/delete/actual.js b/test/fixtures/transformation/es7-abstract-references/delete/actual.js deleted file mode 100644 index af9f86c23c..0000000000 --- a/test/fixtures/transformation/es7-abstract-references/delete/actual.js +++ /dev/null @@ -1,3 +0,0 @@ -delete foo::bar; - -if (delete foo::bar) {} diff --git a/test/fixtures/transformation/es7-abstract-references/delete/expected.js b/test/fixtures/transformation/es7-abstract-references/delete/expected.js deleted file mode 100644 index 489c0b7863..0000000000 --- a/test/fixtures/transformation/es7-abstract-references/delete/expected.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict"; - -bar[Symbol.referenceDelete](foo); - -if ((bar[Symbol.referenceDelete](foo), true)) {} diff --git a/test/fixtures/transformation/es7-abstract-references/get/actual.js b/test/fixtures/transformation/es7-abstract-references/get/actual.js deleted file mode 100644 index d6a275fb29..0000000000 --- a/test/fixtures/transformation/es7-abstract-references/get/actual.js +++ /dev/null @@ -1 +0,0 @@ -foo::bar; diff --git a/test/fixtures/transformation/es7-abstract-references/get/expected.js b/test/fixtures/transformation/es7-abstract-references/get/expected.js deleted file mode 100644 index 70419d5d74..0000000000 --- a/test/fixtures/transformation/es7-abstract-references/get/expected.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; - -bar[Symbol.referenceGet](foo); diff --git a/test/fixtures/transformation/es7-abstract-references/options.json b/test/fixtures/transformation/es7-abstract-references/options.json deleted file mode 100644 index 252f473a73..0000000000 --- a/test/fixtures/transformation/es7-abstract-references/options.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "experimental": true -} diff --git a/test/fixtures/transformation/es7-abstract-references/private/actual.js b/test/fixtures/transformation/es7-abstract-references/private/actual.js deleted file mode 100644 index 9643ff19c2..0000000000 --- a/test/fixtures/transformation/es7-abstract-references/private/actual.js +++ /dev/null @@ -1,12 +0,0 @@ -private A; -private B, C; - -class D { - private E; - private F, G; -} - -var H = class { - private I; - private J, K; -}; diff --git a/test/fixtures/transformation/es7-abstract-references/private/expected.js b/test/fixtures/transformation/es7-abstract-references/private/expected.js deleted file mode 100644 index 53ef631e1d..0000000000 --- a/test/fixtures/transformation/es7-abstract-references/private/expected.js +++ /dev/null @@ -1,30 +0,0 @@ -"use strict"; - -var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }; - -var A = new WeakMap(); -var B = new WeakMap(), - C = new WeakMap(); - -var D = (function () { - var F = new WeakMap(), - G = new WeakMap(); - var E = new WeakMap(); - - function D() { - _classCallCheck(this, D); - } - - return D; -})(); - -var H = (function () { - var _class = function H() { - _classCallCheck(this, _class); - }; - - var J = new WeakMap(), - K = new WeakMap(); - var I = new WeakMap(); - return _class; -})(); \ No newline at end of file diff --git a/test/fixtures/transformation/es7-abstract-references/set/actual.js b/test/fixtures/transformation/es7-abstract-references/set/actual.js deleted file mode 100644 index 8abf694209..0000000000 --- a/test/fixtures/transformation/es7-abstract-references/set/actual.js +++ /dev/null @@ -1,3 +0,0 @@ -var baz = "foo"; -foo::bar = baz; -if (foo::bar = baz) {} diff --git a/test/fixtures/transformation/es7-abstract-references/set/expected.js b/test/fixtures/transformation/es7-abstract-references/set/expected.js deleted file mode 100644 index be9e6ef9f3..0000000000 --- a/test/fixtures/transformation/es7-abstract-references/set/expected.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict"; - -var baz = "foo"; -bar[Symbol.referenceSet](foo, baz); -if ((bar[Symbol.referenceSet](foo, baz), baz)) {} diff --git a/test/fixtures/transformation/playground/method-binding/actual.js b/test/fixtures/transformation/playground/method-binding/actual.js deleted file mode 100644 index 12185e1a7c..0000000000 --- a/test/fixtures/transformation/playground/method-binding/actual.js +++ /dev/null @@ -1,13 +0,0 @@ -var fn = obj#method; -var fn = obj#method("foob"); -var fn = obj[foo]#method; -var fn = obj.foo#method; -var fn = obj[foo()]#method; - -["foo", "bar"].map(#toUpperCase); -[1.1234, 23.53245, 3].map(#toFixed(2)); - -var get = function () { - return 2; -}; -[1.1234, 23.53245, 3].map(#toFixed(get())); diff --git a/test/fixtures/transformation/playground/method-binding/exec.js b/test/fixtures/transformation/playground/method-binding/exec.js deleted file mode 100644 index b83e4b49aa..0000000000 --- a/test/fixtures/transformation/playground/method-binding/exec.js +++ /dev/null @@ -1,30 +0,0 @@ -var obj = { - foo: "foo", - bar: "bar", - getFoo: function () { - return this.foo; - }, - getBar: function (arg) { - return arg + " " + this.bar; - }, - getZoo: function (a, b) { - return this.foo + " " + this.bar + " " + a + " " + b; - } -}; - -var foo = obj#getFoo; -assert.equal(foo(), "foo"); - -var bar = obj#getBar("foo"); -assert.equal(bar(), "foo bar"); - -var zoo = obj#getZoo("foo"); -assert.equal(zoo("bar"), "foo bar foo bar"); - -assert.deepEqual(["foo", "bar"].map(#toUpperCase), ["FOO", "BAR"]); -assert.deepEqual([1.1234, 23.53245, 3].map(#toFixed(2)), ["1.12", "23.53", "3.00"]); - -var get = function () { - return 2; -} -assert.deepEqual([1.1234, 23.53245, 3].map(#toFixed(get())), ["1.12", "23.53", "3.00"]); diff --git a/test/fixtures/transformation/playground/method-binding/expected.js b/test/fixtures/transformation/playground/method-binding/expected.js deleted file mode 100644 index 6f76e45d89..0000000000 --- a/test/fixtures/transformation/playground/method-binding/expected.js +++ /dev/null @@ -1,23 +0,0 @@ -"use strict"; - -var _obj, _obj2, _obj$foo, _obj$foo2, _obj$foo3, _args, _args2, _args3; - -var fn = (_obj = obj, _obj.method.bind(_obj)); -var fn = (_obj2 = obj, _obj2.method.bind(_obj2, "foob")); -var fn = (_obj$foo = obj[foo], _obj$foo.method.bind(_obj$foo)); -var fn = (_obj$foo2 = obj.foo, _obj$foo2.method.bind(_obj$foo2)); -var fn = (_obj$foo3 = obj[foo()], _obj$foo3.method.bind(_obj$foo3)); - -["foo", "bar"].map((_args = [], function (_val) { - return _val.toUpperCase(); -})); -[1.1234, 23.53245, 3].map((_args2 = [2], function (_val2) { - return _val2.toFixed(_args2[0]); -})); - -var get = function get() { - return 2; -}; -[1.1234, 23.53245, 3].map((_args3 = [get()], function (_val3) { - return _val3.toFixed(_args3[0]); -})); diff --git a/test/fixtures/transformation/playground/method-binding/options.json b/test/fixtures/transformation/playground/method-binding/options.json deleted file mode 100644 index b8b90ecb11..0000000000 --- a/test/fixtures/transformation/playground/method-binding/options.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "blacklist": ["es6.tailCall"] -} diff --git a/test/fixtures/transformation/playground/object-getter-memoization/actual.js b/test/fixtures/transformation/playground/object-getter-memoization/actual.js deleted file mode 100644 index 9b0d317c04..0000000000 --- a/test/fixtures/transformation/playground/object-getter-memoization/actual.js +++ /dev/null @@ -1,19 +0,0 @@ -class Foo { - memo bar() { - return complex(); - } - - memo [bar]() { - return complex(); - } -} - -var foo = { - memo bar() { - return complex(); - }, - - memo [bar]() { - return complex(); - } -}; diff --git a/test/fixtures/transformation/playground/object-getter-memoization/expected.js b/test/fixtures/transformation/playground/object-getter-memoization/expected.js deleted file mode 100644 index 214f9235f5..0000000000 --- a/test/fixtures/transformation/playground/object-getter-memoization/expected.js +++ /dev/null @@ -1,36 +0,0 @@ -"use strict"; - -var Foo = (function () { - function Foo() { - babelHelpers.classCallCheck(this, Foo); - } - - babelHelpers.createComputedClass(Foo, [{ - key: "bar", - get: function () { - return babelHelpers.defineProperty(this, "bar", complex()).bar; - } - }, { - key: bar, - get: function () { - return babelHelpers.defineProperty(this, bar, complex())[bar]; - } - }]); - return Foo; -})(); - -var foo = Object.defineProperties({}, babelHelpers.defineProperty({ - bar: { - get: function () { - return babelHelpers.defineProperty(this, "bar", complex()).bar; - }, - configurable: true, - enumerable: true - } -}, bar, { - get: function () { - return babelHelpers.defineProperty(this, bar, complex())[bar]; - }, - configurable: true, - enumerable: true -})); \ No newline at end of file