Chromium Code Reviews| Index: test/mjsunit/es6/built-in-accessor-names.js |
| diff --git a/test/mjsunit/es6/built-in-accessor-names.js b/test/mjsunit/es6/built-in-accessor-names.js |
| index d902ae6700aa52a93cadaa783f45d254085aec33..1f9573d09c80c655ae7fbeba5979311b0f10af19 100644 |
| --- a/test/mjsunit/es6/built-in-accessor-names.js |
| +++ b/test/mjsunit/es6/built-in-accessor-names.js |
| @@ -6,14 +6,25 @@ |
| 'use strict'; |
| -function assertGetterName(expected, object, name) { |
| - var descr = Object.getOwnPropertyDescriptor(object, name); |
| +function GetPropertyDescriptor(object, field, indirect) { |
| + if (!indirect) |
| + return Object.getOwnPropertyDescriptor(object, field); |
| + var descriptor; |
| + while (descriptor === undefined && object !== Object.prototype) { |
| + descriptor = Object.getOwnPropertyDescriptor(object, field); |
| + object = object.__proto__; |
| + } |
| + return descriptor; |
| +} |
| + |
| +function assertGetterName(expected, object, name, indirect) { |
| + var descr = GetPropertyDescriptor(object, name, indirect); |
| assertSame(expected, descr.get.name); |
| } |
| -function assertSetterName(expected, object, name) { |
| - var descr = Object.getOwnPropertyDescriptor(object, name); |
| +function assertSetterName(expected, object, name, indirect) { |
| + var descr = GetPropertyDescriptor(object, name); |
| assertSame(expected, descr.set.name); |
| } |
| @@ -36,11 +47,11 @@ let typedArrays = [ |
| ]; |
| for (let f of typedArrays) { |
| - assertGetterName('get buffer', f.prototype, 'buffer'); |
| - assertGetterName('get byteOffset', f.prototype, 'byteOffset'); |
| - assertGetterName('get byteLength', f.prototype, 'byteLength'); |
| - assertGetterName('get length', f.prototype, 'length'); |
| - assertGetterName('get [Symbol.toStringTag]', f.prototype, Symbol.toStringTag); |
| + 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
|
| + assertGetterName('get byteOffset', f.prototype, 'byteOffset', true); |
| + assertGetterName('get byteLength', f.prototype, 'byteLength', true); |
| + assertGetterName('get length', f.prototype, 'length', true); |
| + assertGetterName('get [Symbol.toStringTag]', f.prototype, Symbol.toStringTag, true); |
| } |