Test:index constraint check on js class expression

This commit is contained in:
Nathan Shively-Sanders 2017-05-04 10:12:49 -07:00
parent a17f16ded8
commit 53c1caaf60
4 changed files with 81 additions and 0 deletions

View File

@ -0,0 +1,32 @@
//// [weird.js]
someFunction(function(BaseClass) {
class Hello extends BaseClass {
constructor() {
this.foo = "bar";
}
}
});
//// [foo.js]
var __extends = (this && this.__extends) || (function () {
var extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
someFunction(function (BaseClass) {
var Hello = (function (_super) {
__extends(Hello, _super);
function Hello() {
var _this = this;
_this.foo = "bar";
return _this;
}
return Hello;
}(BaseClass));
});

View File

@ -0,0 +1,17 @@
=== tests/cases/compiler/weird.js ===
someFunction(function(BaseClass) {
>BaseClass : Symbol(BaseClass, Decl(weird.js, 0, 22))
class Hello extends BaseClass {
>Hello : Symbol(Hello, Decl(weird.js, 0, 34))
>BaseClass : Symbol(BaseClass, Decl(weird.js, 0, 22))
constructor() {
this.foo = "bar";
>this.foo : Symbol(Hello.foo, Decl(weird.js, 2, 17))
>this : Symbol(Hello, Decl(weird.js, 0, 34))
>foo : Symbol(Hello.foo, Decl(weird.js, 2, 17))
}
}
});

View File

@ -0,0 +1,22 @@
=== tests/cases/compiler/weird.js ===
someFunction(function(BaseClass) {
>someFunction(function(BaseClass) { class Hello extends BaseClass { constructor() { this.foo = "bar"; } }}) : any
>someFunction : any
>function(BaseClass) { class Hello extends BaseClass { constructor() { this.foo = "bar"; } }} : (BaseClass: any) => void
>BaseClass : any
class Hello extends BaseClass {
>Hello : Hello
>BaseClass : any
constructor() {
this.foo = "bar";
>this.foo = "bar" : "bar"
>this.foo : string
>this : this
>foo : string
>"bar" : "bar"
}
}
});

View File

@ -0,0 +1,10 @@
// @Filename: weird.js
// @allowJs: true
// @out: foo.js
someFunction(function(BaseClass) {
class Hello extends BaseClass {
constructor() {
this.foo = "bar";
}
}
});