Skip to content

Commit

Permalink
Fix operator processing in object super.
Browse files Browse the repository at this point in the history
  • Loading branch information
aickin authored and loganfsmyth committed Apr 27, 2017
1 parent 8895828 commit 925b644
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 2 deletions.
4 changes: 2 additions & 2 deletions packages/babel-helper-replace-supers/src/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -227,7 +227,7 @@ export default class ReplaceSupers {
t.variableDeclarator(ref, node.left),
]),
t.expressionStatement(t.assignmentExpression("=", node.left,
t.binaryExpression(node.operator[0], ref, node.right))),
t.binaryExpression(node.operator.slice(0, -1), ref, node.right))),
];
}
}
Expand Down Expand Up @@ -263,7 +263,7 @@ export default class ReplaceSupers {
property = node.property;
computed = node.computed;
} else if (t.isUpdateExpression(node) && isMemberExpressionSuper(node.argument)) {
const binary = t.binaryExpression(node.operator[0], node.argument, t.numericLiteral(1));
const binary = t.assignmentExpression(node.operator[0] + "=", node.argument, t.numericLiteral(1));
if (node.prefix) {
// ++super.foo;
// to
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
foo = {
bar() {
return super.baz **= 12;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
var _obj;

var _set = function set(object, property, value, receiver) { var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent !== null) { set(parent, property, value, receiver); } } else if ("value" in desc && desc.writable) { desc.value = value; } else { var setter = desc.set; if (setter !== undefined) { setter.call(receiver, value); } } return value; };

var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };

foo = _obj = {
bar: function () {
var _ref;

return _ref = _get(_obj.__proto__ || Object.getPrototypeOf(_obj), "baz", this), _set(_obj.__proto__ || Object.getPrototypeOf(_obj), "baz", _ref ** 12, this);
}
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"plugins": ["transform-es2015-object-super"]
}

0 comments on commit 925b644

Please sign in to comment.