utatane.tea@gmail.com | fccd136 | 2015-08-11 22:02:09 +0000 | [diff] [blame] | 1 | var symbol = Symbol(); |
2 | function Hello() { | ||||
3 | } | ||||
4 | |||||
5 | Object.defineProperty(Hello, symbol, { | ||||
6 | get: function () { | ||||
7 | return this; | ||||
8 | } | ||||
9 | }); | ||||
10 | |||||
11 | Hello.prototype.generate = function () { | ||||
12 | return new this.constructor[symbol](); | ||||
13 | }; | ||||
14 | |||||
15 | function ok() { | ||||
16 | var object = new Hello(); | ||||
17 | if (!(object.generate() instanceof Hello)) | ||||
18 | throw new Error("bad instance"); | ||||
19 | } | ||||
20 | noInline(ok); | ||||
21 | |||||
22 | for (var i = 0; i < 10000; ++i) | ||||
23 | ok(); |