Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1)

Side by Side Diff: test/mjsunit/es6/built-in-accessor-names.js

Issue 1186733002: Add %TypedArray% to proto chain (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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, indirect) {
10 var descr = Object.getOwnPropertyDescriptor(object, name); 10 if (!indirect)
11 return Object.getOwnPropertyDescriptor(object, field);
12 var descriptor;
13 while (descriptor === undefined && object !== Object.prototype) {
14 descriptor = Object.getOwnPropertyDescriptor(object, field);
15 object = object.__proto__;
16 }
17 return descriptor;
18 }
19
20 function assertGetterName(expected, object, name, indirect) {
21 var descr = GetPropertyDescriptor(object, name, indirect);
11 assertSame(expected, descr.get.name); 22 assertSame(expected, descr.get.name);
12 } 23 }
13 24
14 25
15 function assertSetterName(expected, object, name) { 26 function assertSetterName(expected, object, name, indirect) {
16 var descr = Object.getOwnPropertyDescriptor(object, name); 27 var descr = GetPropertyDescriptor(object, name);
17 assertSame(expected, descr.set.name); 28 assertSame(expected, descr.set.name);
18 } 29 }
19 30
20 31
21 assertGetterName('get byteLength', ArrayBuffer.prototype, 'byteLength'); 32 assertGetterName('get byteLength', ArrayBuffer.prototype, 'byteLength');
22 assertGetterName('get size', Set.prototype, 'size'); 33 assertGetterName('get size', Set.prototype, 'size');
23 assertGetterName('get size', Map.prototype, 'size'); 34 assertGetterName('get size', Map.prototype, 'size');
24 35
25 36
26 let typedArrays = [ 37 let typedArrays = [
27 Uint8Array, 38 Uint8Array,
28 Int8Array, 39 Int8Array,
29 Uint16Array, 40 Uint16Array,
30 Int16Array, 41 Int16Array,
31 Uint32Array, 42 Uint32Array,
32 Int32Array, 43 Int32Array,
33 Float32Array, 44 Float32Array,
34 Float64Array, 45 Float64Array,
35 Uint8ClampedArray 46 Uint8ClampedArray
36 ]; 47 ];
37 48
38 for (let f of typedArrays) { 49 for (let f of typedArrays) {
39 assertGetterName('get buffer', f.prototype, 'buffer'); 50 assertGetterName('get buffer', f.prototype, 'buffer', true);
adamk 2015/06/13 00:49:38 Wouldn't this work with the old code just changed
Dan Ehrenberg 2015/06/13 05:54:09 I thought it was nicer to do the proto walk becaus
40 assertGetterName('get byteOffset', f.prototype, 'byteOffset'); 51 assertGetterName('get byteOffset', f.prototype, 'byteOffset', true);
41 assertGetterName('get byteLength', f.prototype, 'byteLength'); 52 assertGetterName('get byteLength', f.prototype, 'byteLength', true);
42 assertGetterName('get length', f.prototype, 'length'); 53 assertGetterName('get length', f.prototype, 'length', true);
43 assertGetterName('get [Symbol.toStringTag]', f.prototype, Symbol.toStringTag); 54 assertGetterName('get [Symbol.toStringTag]', f.prototype, Symbol.toStringTag, true);
44 } 55 }
45 56
46 57
47 assertGetterName('get buffer', DataView.prototype, 'buffer'); 58 assertGetterName('get buffer', DataView.prototype, 'buffer');
48 assertGetterName('get byteOffset', DataView.prototype, 'byteOffset'); 59 assertGetterName('get byteOffset', DataView.prototype, 'byteOffset');
49 assertGetterName('get byteLength', DataView.prototype, 'byteLength'); 60 assertGetterName('get byteLength', DataView.prototype, 'byteLength');
50 61
51 62
52 assertGetterName('get __proto__', Object.prototype, '__proto__'); 63 assertGetterName('get __proto__', Object.prototype, '__proto__');
53 assertSetterName('set __proto__', Object.prototype, '__proto__'); 64 assertSetterName('set __proto__', Object.prototype, '__proto__');
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698