Fix super nested class bugs (#7691)
* Properly traverse nested class for supers * Add object nested in class cases * Add object nested object cases * Test class properties * Undo changes to lerna.json * Add tests arournd prefix/postfix super increment * tmp * Use sets
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
"use strict";
|
||||
class Hello {
|
||||
constructor() {
|
||||
return {
|
||||
toString() {
|
||||
return 'hello';
|
||||
},
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
class Outer extends Hello {
|
||||
constructor() {
|
||||
class Inner {
|
||||
[super()]() {
|
||||
return 'hello';
|
||||
}
|
||||
}
|
||||
|
||||
return new Inner();
|
||||
}
|
||||
}
|
||||
|
||||
assert.equal(new Outer().hello(), 'hello');
|
||||
@@ -0,0 +1,24 @@
|
||||
"use strict";
|
||||
class Hello {
|
||||
constructor() {
|
||||
return {
|
||||
toString() {
|
||||
return 'hello';
|
||||
},
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
class Outer extends Hello {
|
||||
constructor() {
|
||||
class Inner {
|
||||
[super()]() {
|
||||
return 'hello';
|
||||
}
|
||||
}
|
||||
|
||||
return new Inner();
|
||||
}
|
||||
}
|
||||
|
||||
assert.equal(new Outer().hello(), 'hello');
|
||||
@@ -0,0 +1,47 @@
|
||||
"use strict";
|
||||
|
||||
var Hello = function Hello() {
|
||||
babelHelpers.classCallCheck(this, Hello);
|
||||
return {
|
||||
toString() {
|
||||
return 'hello';
|
||||
}
|
||||
|
||||
};
|
||||
};
|
||||
|
||||
var Outer =
|
||||
/*#__PURE__*/
|
||||
function (_Hello) {
|
||||
babelHelpers.inherits(Outer, _Hello);
|
||||
|
||||
function Outer() {
|
||||
var _this2 = this;
|
||||
|
||||
var _this;
|
||||
|
||||
babelHelpers.classCallCheck(this, Outer);
|
||||
|
||||
var Inner =
|
||||
/*#__PURE__*/
|
||||
function () {
|
||||
function Inner() {
|
||||
babelHelpers.classCallCheck(this, Inner);
|
||||
}
|
||||
|
||||
babelHelpers.createClass(Inner, [{
|
||||
key: _this = babelHelpers.possibleConstructorReturn(_this2, babelHelpers.getPrototypeOf(Outer).call(_this2)),
|
||||
value: function value() {
|
||||
return 'hello';
|
||||
}
|
||||
}]);
|
||||
return Inner;
|
||||
}();
|
||||
|
||||
return babelHelpers.possibleConstructorReturn(_this, new Inner());
|
||||
}
|
||||
|
||||
return Outer;
|
||||
}(Hello);
|
||||
|
||||
assert.equal(new Outer().hello(), 'hello');
|
||||
@@ -0,0 +1,21 @@
|
||||
"use strict";
|
||||
class Hello {
|
||||
toString() {
|
||||
return 'hello';
|
||||
}
|
||||
}
|
||||
|
||||
class Outer extends Hello {
|
||||
constructor() {
|
||||
super();
|
||||
class Inner {
|
||||
[super.toString()]() {
|
||||
return 'hello';
|
||||
}
|
||||
}
|
||||
|
||||
return new Inner();
|
||||
}
|
||||
}
|
||||
|
||||
assert.equal(new Outer().hello(), 'hello');
|
||||
@@ -0,0 +1,21 @@
|
||||
"use strict";
|
||||
class Hello {
|
||||
toString() {
|
||||
return 'hello';
|
||||
}
|
||||
}
|
||||
|
||||
class Outer extends Hello {
|
||||
constructor() {
|
||||
super();
|
||||
class Inner {
|
||||
[super.toString()]() {
|
||||
return 'hello';
|
||||
}
|
||||
}
|
||||
|
||||
return new Inner();
|
||||
}
|
||||
}
|
||||
|
||||
assert.equal(new Outer().hello(), 'hello');
|
||||
@@ -0,0 +1,54 @@
|
||||
"use strict";
|
||||
|
||||
var Hello =
|
||||
/*#__PURE__*/
|
||||
function () {
|
||||
function Hello() {
|
||||
babelHelpers.classCallCheck(this, Hello);
|
||||
}
|
||||
|
||||
babelHelpers.createClass(Hello, [{
|
||||
key: "toString",
|
||||
value: function toString() {
|
||||
return 'hello';
|
||||
}
|
||||
}]);
|
||||
return Hello;
|
||||
}();
|
||||
|
||||
var Outer =
|
||||
/*#__PURE__*/
|
||||
function (_Hello) {
|
||||
babelHelpers.inherits(Outer, _Hello);
|
||||
|
||||
function Outer() {
|
||||
var _this2 = this;
|
||||
|
||||
var _this;
|
||||
|
||||
babelHelpers.classCallCheck(this, Outer);
|
||||
_this = babelHelpers.possibleConstructorReturn(this, babelHelpers.getPrototypeOf(Outer).call(this));
|
||||
|
||||
var Inner =
|
||||
/*#__PURE__*/
|
||||
function () {
|
||||
function Inner() {
|
||||
babelHelpers.classCallCheck(this, Inner);
|
||||
}
|
||||
|
||||
babelHelpers.createClass(Inner, [{
|
||||
key: babelHelpers.get(babelHelpers.getPrototypeOf(Outer.prototype), "toString", babelHelpers.assertThisInitialized(_this2)).call(_this2),
|
||||
value: function value() {
|
||||
return 'hello';
|
||||
}
|
||||
}]);
|
||||
return Inner;
|
||||
}();
|
||||
|
||||
return babelHelpers.possibleConstructorReturn(_this, new Inner());
|
||||
}
|
||||
|
||||
return Outer;
|
||||
}(Hello);
|
||||
|
||||
assert.equal(new Outer().hello(), 'hello');
|
||||
@@ -0,0 +1,24 @@
|
||||
"use strict";
|
||||
class Hello {
|
||||
constructor() {
|
||||
return {
|
||||
toString() {
|
||||
return 'hello';
|
||||
},
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
class Outer extends Hello {
|
||||
constructor() {
|
||||
const Inner = {
|
||||
[super()]() {
|
||||
return 'hello';
|
||||
},
|
||||
};
|
||||
|
||||
return Inner;
|
||||
}
|
||||
}
|
||||
|
||||
assert.equal(new Outer().hello(), 'hello');
|
||||
@@ -0,0 +1,24 @@
|
||||
"use strict";
|
||||
class Hello {
|
||||
constructor() {
|
||||
return {
|
||||
toString() {
|
||||
return 'hello';
|
||||
},
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
class Outer extends Hello {
|
||||
constructor() {
|
||||
const Inner = {
|
||||
[super()]() {
|
||||
return 'hello';
|
||||
},
|
||||
};
|
||||
|
||||
return Inner;
|
||||
}
|
||||
}
|
||||
|
||||
assert.equal(new Outer().hello(), 'hello');
|
||||
@@ -0,0 +1,34 @@
|
||||
"use strict";
|
||||
|
||||
var Hello = function Hello() {
|
||||
babelHelpers.classCallCheck(this, Hello);
|
||||
return {
|
||||
toString() {
|
||||
return 'hello';
|
||||
}
|
||||
|
||||
};
|
||||
};
|
||||
|
||||
var Outer =
|
||||
/*#__PURE__*/
|
||||
function (_Hello) {
|
||||
babelHelpers.inherits(Outer, _Hello);
|
||||
|
||||
function Outer() {
|
||||
var _this;
|
||||
|
||||
babelHelpers.classCallCheck(this, Outer);
|
||||
var Inner = {
|
||||
[_this = babelHelpers.possibleConstructorReturn(this, babelHelpers.getPrototypeOf(Outer).call(this))]() {
|
||||
return 'hello';
|
||||
}
|
||||
|
||||
};
|
||||
return babelHelpers.possibleConstructorReturn(_this, Inner);
|
||||
}
|
||||
|
||||
return Outer;
|
||||
}(Hello);
|
||||
|
||||
assert.equal(new Outer().hello(), 'hello');
|
||||
@@ -0,0 +1,21 @@
|
||||
"use strict";
|
||||
class Hello {
|
||||
toString() {
|
||||
return 'hello';
|
||||
}
|
||||
}
|
||||
|
||||
class Outer extends Hello {
|
||||
constructor() {
|
||||
super();
|
||||
const Inner = {
|
||||
[super.toString()]() {
|
||||
return 'hello';
|
||||
},
|
||||
};
|
||||
|
||||
return Inner;
|
||||
}
|
||||
}
|
||||
|
||||
assert.equal(new Outer().hello(), 'hello');
|
||||
@@ -0,0 +1,21 @@
|
||||
"use strict";
|
||||
class Hello {
|
||||
toString() {
|
||||
return 'hello';
|
||||
}
|
||||
}
|
||||
|
||||
class Outer extends Hello {
|
||||
constructor() {
|
||||
super();
|
||||
const Inner = {
|
||||
[super.toString()]() {
|
||||
return 'hello';
|
||||
},
|
||||
};
|
||||
|
||||
return Inner;
|
||||
}
|
||||
}
|
||||
|
||||
assert.equal(new Outer().hello(), 'hello');
|
||||
@@ -0,0 +1,41 @@
|
||||
"use strict";
|
||||
|
||||
var Hello =
|
||||
/*#__PURE__*/
|
||||
function () {
|
||||
function Hello() {
|
||||
babelHelpers.classCallCheck(this, Hello);
|
||||
}
|
||||
|
||||
babelHelpers.createClass(Hello, [{
|
||||
key: "toString",
|
||||
value: function toString() {
|
||||
return 'hello';
|
||||
}
|
||||
}]);
|
||||
return Hello;
|
||||
}();
|
||||
|
||||
var Outer =
|
||||
/*#__PURE__*/
|
||||
function (_Hello) {
|
||||
babelHelpers.inherits(Outer, _Hello);
|
||||
|
||||
function Outer() {
|
||||
var _this;
|
||||
|
||||
babelHelpers.classCallCheck(this, Outer);
|
||||
_this = babelHelpers.possibleConstructorReturn(this, babelHelpers.getPrototypeOf(Outer).call(this));
|
||||
var Inner = {
|
||||
[babelHelpers.get(babelHelpers.getPrototypeOf(Outer.prototype), "toString", babelHelpers.assertThisInitialized(this)).call(this)]() {
|
||||
return 'hello';
|
||||
}
|
||||
|
||||
};
|
||||
return babelHelpers.possibleConstructorReturn(_this, Inner);
|
||||
}
|
||||
|
||||
return Outer;
|
||||
}(Hello);
|
||||
|
||||
assert.equal(new Outer().hello(), 'hello');
|
||||
Reference in New Issue
Block a user