blob: 8697e761d15e7d065ea0acea2496bf88d016c7d3 [file] [log] [blame]
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 true
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, '$_').get is RegExp$_Getter
PASS Object.getOwnPropertyDescriptor(RegExp, '$_').set is RegExp$_Setter
PASS Object.getOwnPropertyDescriptor(RegExp, '$_').hasOwnProperty('value') is false
PASS Object.getOwnPropertyDescriptor(RegExp, '$_').hasOwnProperty('writable') is false
PASS Object.getOwnPropertyDescriptor(RegExp, '$_').enumerable is false
PASS Object.getOwnPropertyDescriptor(RegExp, '$_').configurable is true
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 true
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 true
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 true
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').get is globalWindowGetter
PASS Object.getOwnPropertyDescriptor(global, 'window').set is undefined
PASS Object.getOwnPropertyDescriptor(global, 'window').hasOwnProperty('value') is false
PASS Object.getOwnPropertyDescriptor(global, 'window').hasOwnProperty('writable') 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, 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 true
PASS Object.getOwnPropertyDescriptor(global, 0).configurable is true
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 true
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 true
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 true
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 true
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: null is not an object (evaluating 'Object.getOwnPropertyDescriptor(null)').
PASS Object.getOwnPropertyDescriptor(undefined) threw exception TypeError: undefined is not an object (evaluating 'Object.getOwnPropertyDescriptor(undefined)').
PASS Object.getOwnPropertyDescriptor(1) is undefined
PASS Object.getOwnPropertyDescriptor('') is undefined
PASS Object.getOwnPropertyDescriptor(true) is undefined
PASS Object.getOwnPropertyDescriptor(false) is undefined
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 Object.getOwnPropertyDescriptor(RegExp.prototype, 'global').get is regexpPrototypeGlobalGetter
PASS Object.getOwnPropertyDescriptor(RegExp.prototype, 'global').set is undefined
PASS Object.getOwnPropertyDescriptor(RegExp.prototype, 'global').hasOwnProperty('value') is false
PASS Object.getOwnPropertyDescriptor(RegExp.prototype, 'global').hasOwnProperty('writable') is false
PASS Object.getOwnPropertyDescriptor(RegExp.prototype, 'global').enumerable is false
PASS Object.getOwnPropertyDescriptor(RegExp.prototype, 'global').configurable is true
PASS successfullyParsed is true
TEST COMPLETE