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, '$_').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(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 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 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

