| Test to ensure correct behaviour of Object.getOwnPropertyDescriptor |
| |
| On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". |
| |
| |
| PASS Object.getOwnPropertyDescriptor({}, 'undefinedProperty') is undefined. |
| PASS Object.getOwnPropertyDescriptor({definedProperty:'defined'}, 'definedProperty').value is "defined" |
| PASS Object.getOwnPropertyDescriptor({definedProperty:'defined'}, 'definedProperty').hasOwnProperty('get') is false |
| PASS Object.getOwnPropertyDescriptor({definedProperty:'defined'}, 'definedProperty').hasOwnProperty('set') is false |
| PASS Object.getOwnPropertyDescriptor({definedProperty:'defined'}, 'definedProperty').enumerable is true |
| PASS Object.getOwnPropertyDescriptor({definedProperty:'defined'}, 'definedProperty').configurable is true |
| PASS Object.getOwnPropertyDescriptor(Array.prototype, 'concat').value is Array.prototype.concat |
| PASS Object.getOwnPropertyDescriptor(Array.prototype, 'concat').hasOwnProperty('get') is false |
| PASS Object.getOwnPropertyDescriptor(Array.prototype, 'concat').hasOwnProperty('set') is false |
| PASS Object.getOwnPropertyDescriptor(Array.prototype, 'concat').enumerable is false |
| PASS Object.getOwnPropertyDescriptor(Array.prototype, 'concat').configurable is true |
| PASS Object.getOwnPropertyDescriptor(Date.prototype, 'toISOString').value is Date.prototype.toISOString |
| PASS Object.getOwnPropertyDescriptor(Date.prototype, 'toISOString').hasOwnProperty('get') is false |
| PASS Object.getOwnPropertyDescriptor(Date.prototype, 'toISOString').hasOwnProperty('set') is false |
| PASS Object.getOwnPropertyDescriptor(Date.prototype, 'toISOString').enumerable is false |
| PASS Object.getOwnPropertyDescriptor(Date.prototype, 'toISOString').configurable is true |
| PASS Object.getOwnPropertyDescriptor(String.prototype, 'concat').value is String.prototype.concat |
| PASS Object.getOwnPropertyDescriptor(String.prototype, 'concat').hasOwnProperty('get') is false |
| PASS Object.getOwnPropertyDescriptor(String.prototype, 'concat').hasOwnProperty('set') is false |
| PASS Object.getOwnPropertyDescriptor(String.prototype, 'concat').enumerable is false |
| PASS Object.getOwnPropertyDescriptor(String.prototype, 'concat').configurable is true |
| PASS Object.getOwnPropertyDescriptor(RegExp.prototype, 'exec').value is RegExp.prototype.exec |
| PASS Object.getOwnPropertyDescriptor(RegExp.prototype, 'exec').hasOwnProperty('get') is false |
| PASS Object.getOwnPropertyDescriptor(RegExp.prototype, 'exec').hasOwnProperty('set') is false |
| PASS Object.getOwnPropertyDescriptor(RegExp.prototype, 'exec').enumerable is false |
| PASS Object.getOwnPropertyDescriptor(RegExp.prototype, 'exec').configurable is true |
| PASS Object.getOwnPropertyDescriptor(document.__proto__.__proto__, 'createElement').value is document.createElement |
| PASS Object.getOwnPropertyDescriptor(document.__proto__.__proto__, 'createElement').hasOwnProperty('get') is false |
| PASS Object.getOwnPropertyDescriptor(document.__proto__.__proto__, 'createElement').hasOwnProperty('set') is false |
| PASS Object.getOwnPropertyDescriptor(document.__proto__.__proto__, 'createElement').enumerable is true |
| PASS Object.getOwnPropertyDescriptor(document.__proto__.__proto__, 'createElement').configurable is false |
| PASS Object.getOwnPropertyDescriptor(Number, 'NEGATIVE_INFINITY').value is Number.NEGATIVE_INFINITY |
| PASS Object.getOwnPropertyDescriptor(Number, 'NEGATIVE_INFINITY').hasOwnProperty('get') is false |
| PASS Object.getOwnPropertyDescriptor(Number, 'NEGATIVE_INFINITY').hasOwnProperty('set') is false |
| PASS Object.getOwnPropertyDescriptor(Number, 'NEGATIVE_INFINITY').enumerable is false |
| PASS Object.getOwnPropertyDescriptor(Number, 'NEGATIVE_INFINITY').configurable is false |
| PASS Object.getOwnPropertyDescriptor(RegExp, '$_').value is RegExp.$_ |
| PASS Object.getOwnPropertyDescriptor(RegExp, '$_').hasOwnProperty('get') is false |
| PASS Object.getOwnPropertyDescriptor(RegExp, '$_').hasOwnProperty('set') is false |
| PASS Object.getOwnPropertyDescriptor(RegExp, '$_').enumerable is false |
| PASS Object.getOwnPropertyDescriptor(RegExp, '$_').configurable is true |
| PASS Object.getOwnPropertyDescriptor(/a/g, 'global').value is true |
| PASS Object.getOwnPropertyDescriptor(/a/g, 'global').hasOwnProperty('get') is false |
| PASS Object.getOwnPropertyDescriptor(/a/g, 'global').hasOwnProperty('set') is false |
| PASS Object.getOwnPropertyDescriptor(/a/g, 'global').enumerable is false |
| PASS Object.getOwnPropertyDescriptor(/a/g, 'global').configurable is false |
| PASS Object.getOwnPropertyDescriptor(Node, 'DOCUMENT_POSITION_DISCONNECTED').value is Node.DOCUMENT_POSITION_DISCONNECTED |
| PASS Object.getOwnPropertyDescriptor(Node, 'DOCUMENT_POSITION_DISCONNECTED').hasOwnProperty('get') is false |
| PASS Object.getOwnPropertyDescriptor(Node, 'DOCUMENT_POSITION_DISCONNECTED').hasOwnProperty('set') is false |
| PASS Object.getOwnPropertyDescriptor(Node, 'DOCUMENT_POSITION_DISCONNECTED').enumerable is true |
| PASS Object.getOwnPropertyDescriptor(Node, 'DOCUMENT_POSITION_DISCONNECTED').configurable is false |
| PASS Object.getOwnPropertyDescriptor(Math, 'sin').value is Math.sin |
| PASS Object.getOwnPropertyDescriptor(Math, 'sin').hasOwnProperty('get') is false |
| PASS Object.getOwnPropertyDescriptor(Math, 'sin').hasOwnProperty('set') is false |
| PASS Object.getOwnPropertyDescriptor(Math, 'sin').enumerable is false |
| PASS Object.getOwnPropertyDescriptor(Math, 'sin').configurable is true |
| PASS Object.getOwnPropertyDescriptor([1,2,3], 0).value is 1 |
| PASS Object.getOwnPropertyDescriptor([1,2,3], 0).hasOwnProperty('get') is false |
| PASS Object.getOwnPropertyDescriptor([1,2,3], 0).hasOwnProperty('set') is false |
| PASS Object.getOwnPropertyDescriptor([1,2,3], 0).enumerable is true |
| PASS Object.getOwnPropertyDescriptor([1,2,3], 0).configurable is true |
| PASS Object.getOwnPropertyDescriptor([1,2,3], 'length').value is 3 |
| PASS Object.getOwnPropertyDescriptor([1,2,3], 'length').hasOwnProperty('get') is false |
| PASS Object.getOwnPropertyDescriptor([1,2,3], 'length').hasOwnProperty('set') is false |
| PASS Object.getOwnPropertyDescriptor([1,2,3], 'length').enumerable is false |
| PASS Object.getOwnPropertyDescriptor([1,2,3], 'length').configurable is false |
| PASS Object.getOwnPropertyDescriptor([1,2,3], 'length').value is 3 |
| PASS Object.getOwnPropertyDescriptor([1,2,3], 'length').hasOwnProperty('get') is false |
| PASS Object.getOwnPropertyDescriptor([1,2,3], 'length').hasOwnProperty('set') is false |
| PASS Object.getOwnPropertyDescriptor([1,2,3], 'length').enumerable is false |
| PASS Object.getOwnPropertyDescriptor([1,2,3], 'length').configurable is false |
| PASS Object.getOwnPropertyDescriptor(/(a)*/g.exec('a'), 0).value is 'a' |
| PASS Object.getOwnPropertyDescriptor(/(a)*/g.exec('a'), 0).hasOwnProperty('get') is false |
| PASS Object.getOwnPropertyDescriptor(/(a)*/g.exec('a'), 0).hasOwnProperty('set') is false |
| PASS Object.getOwnPropertyDescriptor(/(a)*/g.exec('a'), 0).enumerable is true |
| PASS Object.getOwnPropertyDescriptor(/(a)*/g.exec('a'), 0).configurable is true |
| PASS Object.getOwnPropertyDescriptor(/(a)*/g.exec('a'), 'length').value is 2 |
| PASS Object.getOwnPropertyDescriptor(/(a)*/g.exec('a'), 'length').hasOwnProperty('get') is false |
| PASS Object.getOwnPropertyDescriptor(/(a)*/g.exec('a'), 'length').hasOwnProperty('set') is false |
| PASS Object.getOwnPropertyDescriptor(/(a)*/g.exec('a'), 'length').enumerable is false |
| PASS Object.getOwnPropertyDescriptor(/(a)*/g.exec('a'), 'length').configurable is false |
| PASS Object.getOwnPropertyDescriptor(function(){}, 'length').value is 0 |
| PASS Object.getOwnPropertyDescriptor(function(){}, 'length').hasOwnProperty('get') is false |
| PASS Object.getOwnPropertyDescriptor(function(){}, 'length').hasOwnProperty('set') is false |
| PASS Object.getOwnPropertyDescriptor(function(){}, 'length').enumerable is false |
| PASS Object.getOwnPropertyDescriptor(function(){}, 'length').configurable is false |
| PASS Object.getOwnPropertyDescriptor(Math.sin, 'length').value is 1 |
| PASS Object.getOwnPropertyDescriptor(Math.sin, 'length').hasOwnProperty('get') is false |
| PASS Object.getOwnPropertyDescriptor(Math.sin, 'length').hasOwnProperty('set') is false |
| PASS Object.getOwnPropertyDescriptor(Math.sin, 'length').enumerable is false |
| PASS Object.getOwnPropertyDescriptor(Math.sin, 'length').configurable is false |
| PASS Object.getOwnPropertyDescriptor(Math.sin, 'name').value is 'sin' |
| PASS Object.getOwnPropertyDescriptor(Math.sin, 'name').hasOwnProperty('get') is false |
| PASS Object.getOwnPropertyDescriptor(Math.sin, 'name').hasOwnProperty('set') is false |
| PASS Object.getOwnPropertyDescriptor(Math.sin, 'name').enumerable is false |
| PASS Object.getOwnPropertyDescriptor(Math.sin, 'name').configurable is false |
| PASS Object.getOwnPropertyDescriptor(global, 'global').value is global |
| PASS Object.getOwnPropertyDescriptor(global, 'global').hasOwnProperty('get') is false |
| PASS Object.getOwnPropertyDescriptor(global, 'global').hasOwnProperty('set') is false |
| PASS Object.getOwnPropertyDescriptor(global, 'global').enumerable is true |
| PASS Object.getOwnPropertyDescriptor(global, 'global').configurable is false |
| PASS Object.getOwnPropertyDescriptor(global, 'undefined').value is undefined |
| PASS Object.getOwnPropertyDescriptor(global, 'undefined').hasOwnProperty('get') is false |
| PASS Object.getOwnPropertyDescriptor(global, 'undefined').hasOwnProperty('set') is false |
| PASS Object.getOwnPropertyDescriptor(global, 'undefined').enumerable is false |
| PASS Object.getOwnPropertyDescriptor(global, 'undefined').configurable is false |
| PASS Object.getOwnPropertyDescriptor(global, 'NaN').value is NaN |
| PASS Object.getOwnPropertyDescriptor(global, 'NaN').hasOwnProperty('get') is false |
| PASS Object.getOwnPropertyDescriptor(global, 'NaN').hasOwnProperty('set') is false |
| PASS Object.getOwnPropertyDescriptor(global, 'NaN').enumerable is false |
| PASS Object.getOwnPropertyDescriptor(global, 'NaN').configurable is false |
| PASS Object.getOwnPropertyDescriptor(global, 'Infinity').value is Infinity |
| PASS Object.getOwnPropertyDescriptor(global, 'Infinity').hasOwnProperty('get') is false |
| PASS Object.getOwnPropertyDescriptor(global, 'Infinity').hasOwnProperty('set') is false |
| PASS Object.getOwnPropertyDescriptor(global, 'Infinity').enumerable is false |
| PASS Object.getOwnPropertyDescriptor(global, 'Infinity').configurable is false |
| PASS Object.getOwnPropertyDescriptor(global, 'window').value is global |
| PASS Object.getOwnPropertyDescriptor(global, 'window').hasOwnProperty('get') is false |
| PASS Object.getOwnPropertyDescriptor(global, 'window').hasOwnProperty('set') is false |
| PASS Object.getOwnPropertyDescriptor(global, 'window').enumerable is true |
| PASS Object.getOwnPropertyDescriptor(global, 'window').configurable is false |
| PASS Object.getOwnPropertyDescriptor(global, 'XMLHttpRequest').value is XMLHttpRequest |
| PASS Object.getOwnPropertyDescriptor(global, 'XMLHttpRequest').hasOwnProperty('get') is false |
| PASS Object.getOwnPropertyDescriptor(global, 'XMLHttpRequest').hasOwnProperty('set') is false |
| PASS Object.getOwnPropertyDescriptor(global, 'XMLHttpRequest').enumerable is false |
| PASS Object.getOwnPropertyDescriptor(global, 'XMLHttpRequest').configurable is true |
| PASS Object.getOwnPropertyDescriptor(global, 'length').value is global.length |
| PASS Object.getOwnPropertyDescriptor(global, 'length').hasOwnProperty('get') is false |
| PASS Object.getOwnPropertyDescriptor(global, 'length').hasOwnProperty('set') is false |
| PASS Object.getOwnPropertyDescriptor(global, 'length').enumerable is true |
| PASS Object.getOwnPropertyDescriptor(global, 'length').configurable is false |
| PASS Object.getOwnPropertyDescriptor(global, 0).value is global[0] |
| PASS Object.getOwnPropertyDescriptor(global, 0).hasOwnProperty('get') is false |
| PASS Object.getOwnPropertyDescriptor(global, 0).hasOwnProperty('set') is false |
| PASS Object.getOwnPropertyDescriptor(global, 0).enumerable is false |
| PASS Object.getOwnPropertyDescriptor(global, 0).configurable is false |
| PASS Object.getOwnPropertyDescriptor(document.getElementsByTagName('div'), 'length').value is 1 |
| PASS Object.getOwnPropertyDescriptor(document.getElementsByTagName('div'), 'length').hasOwnProperty('get') is false |
| PASS Object.getOwnPropertyDescriptor(document.getElementsByTagName('div'), 'length').hasOwnProperty('set') is false |
| PASS Object.getOwnPropertyDescriptor(document.getElementsByTagName('div'), 'length').enumerable is true |
| PASS Object.getOwnPropertyDescriptor(document.getElementsByTagName('div'), 'length').configurable is false |
| PASS Object.getOwnPropertyDescriptor(document.getElementsByTagName('div'), 0).value is document.getElementsByTagName('div')[0] |
| PASS Object.getOwnPropertyDescriptor(document.getElementsByTagName('div'), 0).hasOwnProperty('get') is false |
| PASS Object.getOwnPropertyDescriptor(document.getElementsByTagName('div'), 0).hasOwnProperty('set') is false |
| PASS Object.getOwnPropertyDescriptor(document.getElementsByTagName('div'), 0).enumerable is true |
| PASS Object.getOwnPropertyDescriptor(document.getElementsByTagName('div'), 0).configurable is false |
| PASS Object.getOwnPropertyDescriptor(document.getElementsByClassName('pass'), 0).value is document.getElementsByClassName('pass')[0] |
| PASS Object.getOwnPropertyDescriptor(document.getElementsByClassName('pass'), 0).hasOwnProperty('get') is false |
| PASS Object.getOwnPropertyDescriptor(document.getElementsByClassName('pass'), 0).hasOwnProperty('set') is false |
| PASS Object.getOwnPropertyDescriptor(document.getElementsByClassName('pass'), 0).enumerable is true |
| PASS Object.getOwnPropertyDescriptor(document.getElementsByClassName('pass'), 0).configurable is false |
| PASS Object.getOwnPropertyDescriptor(document.getElementsByClassName('pass'), 'length').value is document.getElementsByClassName('pass').length |
| PASS Object.getOwnPropertyDescriptor(document.getElementsByClassName('pass'), 'length').hasOwnProperty('get') is false |
| PASS Object.getOwnPropertyDescriptor(document.getElementsByClassName('pass'), 'length').hasOwnProperty('set') is false |
| PASS Object.getOwnPropertyDescriptor(document.getElementsByClassName('pass'), 'length').enumerable is true |
| PASS Object.getOwnPropertyDescriptor(document.getElementsByClassName('pass'), 'length').configurable is false |
| PASS Object.getOwnPropertyDescriptor(canvasPixelArray, 'length').value is canvasPixelArray.length |
| PASS Object.getOwnPropertyDescriptor(canvasPixelArray, 'length').hasOwnProperty('get') is false |
| PASS Object.getOwnPropertyDescriptor(canvasPixelArray, 'length').hasOwnProperty('set') is false |
| PASS Object.getOwnPropertyDescriptor(canvasPixelArray, 'length').enumerable is true |
| PASS Object.getOwnPropertyDescriptor(canvasPixelArray, 'length').configurable is false |
| PASS Object.getOwnPropertyDescriptor(canvasPixelArray, 0).value is canvasPixelArray[0] |
| PASS Object.getOwnPropertyDescriptor(canvasPixelArray, 0).hasOwnProperty('get') is false |
| PASS Object.getOwnPropertyDescriptor(canvasPixelArray, 0).hasOwnProperty('set') is false |
| PASS Object.getOwnPropertyDescriptor(canvasPixelArray, 0).enumerable is true |
| PASS Object.getOwnPropertyDescriptor(canvasPixelArray, 0).configurable is false |
| PASS Object.getOwnPropertyDescriptor(select, 'length').value is select.length |
| PASS Object.getOwnPropertyDescriptor(select, 'length').hasOwnProperty('get') is false |
| PASS Object.getOwnPropertyDescriptor(select, 'length').hasOwnProperty('set') is false |
| PASS Object.getOwnPropertyDescriptor(select, 'length').enumerable is true |
| PASS Object.getOwnPropertyDescriptor(select, 'length').configurable is false |
| PASS Object.getOwnPropertyDescriptor(select, 0).value is select[0] |
| PASS Object.getOwnPropertyDescriptor(select, 0).hasOwnProperty('get') is false |
| PASS Object.getOwnPropertyDescriptor(select, 0).hasOwnProperty('set') is false |
| PASS Object.getOwnPropertyDescriptor(select, 0).enumerable is true |
| PASS Object.getOwnPropertyDescriptor(select, 0).configurable is false |
| PASS Object.getOwnPropertyDescriptor(objectWithGetter, 'getter').get is getterFunc |
| PASS Object.getOwnPropertyDescriptor(objectWithGetter, 'getter').set is undefined |
| PASS Object.getOwnPropertyDescriptor(objectWithGetter, 'getter').hasOwnProperty('value') is false |
| PASS Object.getOwnPropertyDescriptor(objectWithGetter, 'getter').hasOwnProperty('writable') is false |
| PASS Object.getOwnPropertyDescriptor(objectWithGetter, 'getter').enumerable is true |
| PASS Object.getOwnPropertyDescriptor(objectWithGetter, 'getter').configurable is true |
| PASS Object.getOwnPropertyDescriptor(objectWithSetter, 'setter').get is undefined |
| PASS Object.getOwnPropertyDescriptor(objectWithSetter, 'setter').set is setterFunc |
| PASS Object.getOwnPropertyDescriptor(objectWithSetter, 'setter').hasOwnProperty('value') is false |
| PASS Object.getOwnPropertyDescriptor(objectWithSetter, 'setter').hasOwnProperty('writable') is false |
| PASS Object.getOwnPropertyDescriptor(objectWithSetter, 'setter').enumerable is true |
| PASS Object.getOwnPropertyDescriptor(objectWithSetter, 'setter').configurable is true |
| PASS Object.getOwnPropertyDescriptor(objectWithAccessor, 'accessor').get is getterFunc |
| PASS Object.getOwnPropertyDescriptor(objectWithAccessor, 'accessor').set is setterFunc |
| PASS Object.getOwnPropertyDescriptor(objectWithAccessor, 'accessor').hasOwnProperty('value') is false |
| PASS Object.getOwnPropertyDescriptor(objectWithAccessor, 'accessor').hasOwnProperty('writable') is false |
| PASS Object.getOwnPropertyDescriptor(objectWithAccessor, 'accessor').enumerable is true |
| PASS Object.getOwnPropertyDescriptor(objectWithAccessor, 'accessor').configurable is true |
| PASS Object.getOwnPropertyDescriptor(null) threw exception TypeError: Requested property descriptor of a value that is not an object.. |
| PASS Object.getOwnPropertyDescriptor(undefined) threw exception TypeError: Requested property descriptor of a value that is not an object.. |
| PASS Object.getOwnPropertyDescriptor(1) threw exception TypeError: Requested property descriptor of a value that is not an object.. |
| PASS Object.getOwnPropertyDescriptor('') threw exception TypeError: Requested property descriptor of a value that is not an object.. |
| PASS Object.getOwnPropertyDescriptor(true) threw exception TypeError: Requested property descriptor of a value that is not an object.. |
| PASS Object.getOwnPropertyDescriptor(false) threw exception TypeError: Requested property descriptor of a value that is not an object.. |
| Checking property ordering |
| PASS property is 'value' |
| PASS property is 'writable' |
| PASS property is 'enumerable' |
| PASS property is 'configurable' |
| PASS property is 'get' |
| PASS property is 'set' |
| PASS property is 'enumerable' |
| PASS property is 'configurable' |
| PASS property is 'get' |
| PASS property is 'set' |
| PASS property is 'enumerable' |
| PASS property is 'configurable' |
| PASS property is 'get' |
| PASS property is 'set' |
| PASS property is 'enumerable' |
| PASS property is 'configurable' |
| PASS successfullyParsed is true |
| |
| TEST COMPLETE |
| |