Closed
Description
TypeScript Version: 2.1.0-dev.20161107
Code
{
...
"compilerOptions": {
"target": "es5"
}
...
}
class WebpackOptionsValidationError extends Error {
constructor() {
super();
Error.captureStackTrace(this, WebpackOptionsValidationError);
this.name = 'WebpackOptionsValidationError';
}
}
Expected behavior:
const err = new WebpackOptionsValidationError()
err instanceof WebpackOptionsValidationError // true
transpiled:
__extends(WebpackOptionsValidationError, _super);
function WebpackOptionsValidationError() {
_super.call(this);
Error.captureStackTrace(this, WebpackOptionsValidationError);
this.name = 'WebpackOptionsValidationError';
return this;
// here return instance of WebpackOptionsValidationError
}
Actual behavior:
const err = new WebpackOptionsValidationError()
err instanceof WebpackOptionsValidationError
// false -- err is instanceof Error but not WebpackOptionsValidationError
transpiled:
__extends(WebpackOptionsValidationError, _super);
function WebpackOptionsValidationError() {
var _this = _super.call(this) || this;
Error.captureStackTrace(_this, WebpackOptionsValidationError);
_this.name = 'WebpackOptionsValidationError';
return _this;
// here return instance of Error,
// it refers to the prototype object of WebpackOptionsValidationError
}