add optional protoToAssign transformer

This commit is contained in:
Sebastian McKenzie
2015-01-04 07:38:36 +11:00
parent 8b2788e930
commit 324a0b408a
15 changed files with 189 additions and 6 deletions

View File

@@ -0,0 +1,5 @@
console.log(foo.__proto__ = bar);
console.log(foo[bar].__proto__ = bar);
console.log(foo[bar()].__proto__ = bar);

View File

@@ -0,0 +1,18 @@
"use strict";
var _foo, _foo$bar, _foo2;
var _defaults = function (obj, defaults) {
for (var key in defaults) {
if (obj[key] === undefined) {
obj[key] = defaults[key];
}
}
return obj;
};
console.log((_foo = foo, _defaults(_foo, bar), _foo));
console.log((_foo$bar = foo[bar], _defaults(_foo$bar, bar), _foo$bar));
console.log((_foo2 = foo[bar()], _defaults(_foo2, bar), _foo2));

View File

@@ -0,0 +1 @@
obj.__proto__ = bar;

View File

@@ -0,0 +1,13 @@
"use strict";
var _defaults = function (obj, defaults) {
for (var key in defaults) {
if (obj[key] === undefined) {
obj[key] = defaults[key];
}
}
return obj;
};
_defaults(obj, bar);

View File

@@ -0,0 +1,3 @@
class Foo extends Bar {
}

View File

@@ -0,0 +1,36 @@
"use strict";
var _defaults = function (obj, defaults) {
for (var key in defaults) {
if (obj[key] === undefined) {
obj[key] = defaults[key];
}
}
return obj;
};
var _inherits = function (child, parent) {
child.prototype = Object.create(parent && parent.prototype, {
constructor: {
value: child,
enumerable: false,
writable: true,
configurable: true
}
});
if (parent) _defaults(child, parent);
};
var Foo = (function () {
var _Bar = Bar;
var Foo = function Foo() {
if (_Bar) {
_Bar.apply(this, arguments);
}
};
_inherits(Foo, _Bar);
return Foo;
})();

View File

@@ -0,0 +1,13 @@
var foo = {
__proto__: bar
};
var foo = {
bar: "foo",
__proto__: bar
};
var foo = {
__proto__: bar,
bar: "foo"
};

View File

@@ -0,0 +1,10 @@
"use strict";
var foo = Object.assign({}, bar);
var foo = Object.assign({}, bar, {
bar: "foo" });
var foo = Object.assign({}, bar, {
bar: "foo"
});

View File

@@ -0,0 +1,3 @@
{
"optional": ["protoToAssign"]
}