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: --harmony-tostring | 5 // Flags: --harmony-tostring |
6 | 6 |
7 'use strict'; | 7 'use strict'; |
8 | 8 |
9 function assertGetterName(expected, object, name) { | 9 function GetPropertyDescriptor(object, field, expectedDepth) { |
arv (Not doing code reviews)
2015/06/15 16:23:12
getP...
| |
10 var descr = Object.getOwnPropertyDescriptor(object, name); | 10 for (var depth = 0; depth < expectedDepth; depth++) { |
11 assertFalse(Object.hasOwnProperty(object, field)); | |
12 object = object.__proto__; | |
13 } | |
14 return Object.getOwnPropertyDescriptor(object, field); | |
15 } | |
16 | |
17 function assertGetterName(expected, object, name, expectedDepth) { | |
18 var descr = GetPropertyDescriptor(object, name, expectedDepth); | |
11 assertSame(expected, descr.get.name); | 19 assertSame(expected, descr.get.name); |
12 } | 20 } |
13 | 21 |
14 | 22 |
15 function assertSetterName(expected, object, name) { | 23 function assertSetterName(expected, object, name, indirect) { |
16 var descr = Object.getOwnPropertyDescriptor(object, name); | 24 var descr = GetPropertyDescriptor(object, name); |
17 assertSame(expected, descr.set.name); | 25 assertSame(expected, descr.set.name); |
18 } | 26 } |
19 | 27 |
20 | 28 |
21 assertGetterName('get byteLength', ArrayBuffer.prototype, 'byteLength'); | 29 assertGetterName('get byteLength', ArrayBuffer.prototype, 'byteLength'); |
22 assertGetterName('get size', Set.prototype, 'size'); | 30 assertGetterName('get size', Set.prototype, 'size'); |
23 assertGetterName('get size', Map.prototype, 'size'); | 31 assertGetterName('get size', Map.prototype, 'size'); |
24 | 32 |
25 | 33 |
26 let typedArrays = [ | 34 let typedArrays = [ |
27 Uint8Array, | 35 Uint8Array, |
28 Int8Array, | 36 Int8Array, |
29 Uint16Array, | 37 Uint16Array, |
30 Int16Array, | 38 Int16Array, |
31 Uint32Array, | 39 Uint32Array, |
32 Int32Array, | 40 Int32Array, |
33 Float32Array, | 41 Float32Array, |
34 Float64Array, | 42 Float64Array, |
35 Uint8ClampedArray | 43 Uint8ClampedArray |
36 ]; | 44 ]; |
37 | 45 |
38 for (let f of typedArrays) { | 46 for (let f of typedArrays) { |
39 assertGetterName('get buffer', f.prototype, 'buffer'); | 47 assertGetterName('get buffer', f.prototype, 'buffer', 1); |
arv (Not doing code reviews)
2015/06/15 16:23:12
I would probably just change this to `f.prototype.
Dan Ehrenberg
2015/06/15 23:28:34
Where are those tests?
arv (Not doing code reviews)
2015/06/16 16:24:49
I assume you have added tests that asserts that f.
Dan Ehrenberg
2015/06/16 22:38:22
I'm not sure how I could add that test, as there's
arv (Not doing code reviews)
2015/06/16 22:48:42
The way to do it is something like this:
var Type
| |
40 assertGetterName('get byteOffset', f.prototype, 'byteOffset'); | 48 assertGetterName('get byteOffset', f.prototype, 'byteOffset', 1); |
41 assertGetterName('get byteLength', f.prototype, 'byteLength'); | 49 assertGetterName('get byteLength', f.prototype, 'byteLength', 1); |
42 assertGetterName('get length', f.prototype, 'length'); | 50 assertGetterName('get length', f.prototype, 'length', 1); |
43 assertGetterName('get [Symbol.toStringTag]', f.prototype, Symbol.toStringTag); | 51 assertGetterName('get [Symbol.toStringTag]', f.prototype, Symbol.toStringTag, 1); |
44 } | 52 } |
45 | 53 |
46 | 54 |
47 assertGetterName('get buffer', DataView.prototype, 'buffer'); | 55 assertGetterName('get buffer', DataView.prototype, 'buffer'); |
48 assertGetterName('get byteOffset', DataView.prototype, 'byteOffset'); | 56 assertGetterName('get byteOffset', DataView.prototype, 'byteOffset'); |
49 assertGetterName('get byteLength', DataView.prototype, 'byteLength'); | 57 assertGetterName('get byteLength', DataView.prototype, 'byteLength'); |
50 | 58 |
51 | 59 |
52 assertGetterName('get __proto__', Object.prototype, '__proto__'); | 60 assertGetterName('get __proto__', Object.prototype, '__proto__'); |
53 assertSetterName('set __proto__', Object.prototype, '__proto__'); | 61 assertSetterName('set __proto__', Object.prototype, '__proto__'); |
OLD | NEW |