OLD | NEW |
1 // Copyright 2015 the V8 project authors. All rights reserved. | 1 // Copyright 2015 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 // Flags: --allow-natives-syntax --harmony-reflect --harmony-regexp-subclass | 5 // Flags: --allow-natives-syntax --harmony-regexp-subclass |
6 // Flags: --expose-gc | 6 // Flags: --expose-gc |
7 | 7 |
8 "use strict"; | 8 "use strict"; |
9 | 9 |
10 | 10 |
11 function checkPrototypeChain(object, constructors) { | 11 function checkPrototypeChain(object, constructors) { |
12 var proto = object.__proto__; | 12 var proto = object.__proto__; |
13 for (var i = 0; i < constructors.length; i++) { | 13 for (var i = 0; i < constructors.length; i++) { |
14 assertEquals(constructors[i].prototype, proto); | 14 assertEquals(constructors[i].prototype, proto); |
15 assertEquals(constructors[i], proto.constructor); | 15 assertEquals(constructors[i], proto.constructor); |
(...skipping 900 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
916 | 916 |
917 Object.defineProperty(pattern, Symbol.match, { | 917 Object.defineProperty(pattern, Symbol.match, { |
918 get() { log.push("match"); f.prototype = p2; return false; }}); | 918 get() { log.push("match"); f.prototype = p2; return false; }}); |
919 | 919 |
920 var o = Reflect.construct(RegExp, [pattern], f); | 920 var o = Reflect.construct(RegExp, [pattern], f); |
921 assertEquals(["match", "tostring"], log); | 921 assertEquals(["match", "tostring"], log); |
922 assertEquals(/biep/, o); | 922 assertEquals(/biep/, o); |
923 assertTrue(o.__proto__ === p2); | 923 assertTrue(o.__proto__ === p2); |
924 assertTrue(f.prototype === p3); | 924 assertTrue(f.prototype === p3); |
925 })(); | 925 })(); |
OLD | NEW |