var symbol = "@@species"; | |
function Hello() { | |
} | |
Object.defineProperty(Hello, symbol, { | |
get: function () { | |
return this; | |
} | |
}); | |
Hello.prototype.generate = function () { | |
return new this.constructor[symbol](); | |
}; | |
function ok() { | |
var object = new Hello(); | |
if (!(object.generate() instanceof Hello)) | |
throw new Error("bad instance"); | |
} | |
noInline(ok); | |
for (var i = 0; i < 10000; ++i) | |
ok(); |