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 // Array's toString should call the object's own join method, if one exists and | 5 // Array's toString should call the object's own join method, if one exists and |
6 // is callable. Otherwise, just use the original Object.toString function. | 6 // is callable. Otherwise, just use the original Object.toString function. |
7 | 7 |
8 var typedArrayConstructors = [ | 8 var typedArrayConstructors = [ |
9 Uint8Array, | 9 Uint8Array, |
10 Int8Array, | 10 Int8Array, |
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
76 | 76 |
77 // Redefining length does not change result | 77 // Redefining length does not change result |
78 var a5 = new constructor([1, 2, 3]) | 78 var a5 = new constructor([1, 2, 3]) |
79 Object.defineProperty(a5, 'length', { value: 2 }); | 79 Object.defineProperty(a5, 'length', { value: 2 }); |
80 assertEquals("1,2,3", a5.join()); | 80 assertEquals("1,2,3", a5.join()); |
81 assertEquals("1,2,3", a5.toString()); | 81 assertEquals("1,2,3", a5.toString()); |
82 assertEquals("1,2,3", a5.toLocaleString()); | 82 assertEquals("1,2,3", a5.toLocaleString()); |
83 assertEquals("1,2", Array.prototype.join.call(a5)); | 83 assertEquals("1,2", Array.prototype.join.call(a5)); |
84 assertEquals("1,2,3", Array.prototype.toString.call(a5)); | 84 assertEquals("1,2,3", Array.prototype.toString.call(a5)); |
85 assertEquals("1,2", Array.prototype.toLocaleString.call(a5)); | 85 assertEquals("1,2", Array.prototype.toLocaleString.call(a5)); |
86 | |
87 (function TestToLocaleStringCalls() { | |
88 let log = []; | |
89 let pushArgs = (label) => (...args) => log.push(label, args); | |
90 | |
91 let NumberToLocaleString = Number.prototype.toLocaleString; | |
92 Number.prototype.toLocaleString = pushArgs("Number"); | |
93 | |
94 (new constructor([1, 2])).toLocaleString(); | |
95 assertEquals(["Number", [], "Number", []], log); | |
96 | |
97 Number.prototype.toLocaleString = NumberToLocaleString; | |
98 })(); | |
99 } | 86 } |
OLD | NEW |