blob: 5cfaa7b557cc3ec1e41e65306609be314e66f33d [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
FAIL Object.getOwnPropertyDescriptor(RegExp, '$_').value should be (of type string). Was undefined (of type undefined).
FAIL Object.getOwnPropertyDescriptor(RegExp, '$_').hasOwnProperty('get') should be false. Was true.
FAIL Object.getOwnPropertyDescriptor(RegExp, '$_').hasOwnProperty('set') should be false. Was true.
PASS Object.getOwnPropertyDescriptor(RegExp, '$_').enumerable is false
PASS Object.getOwnPropertyDescriptor(RegExp, '$_').configurable is true
FAIL Object.getOwnPropertyDescriptor(/a/g, 'global').value should be true. Threw exception TypeError: Cannot read property 'value' of undefined
FAIL Object.getOwnPropertyDescriptor(/a/g, 'global').hasOwnProperty('get') should be false. Threw exception TypeError: Cannot read property 'hasOwnProperty' of undefined
FAIL Object.getOwnPropertyDescriptor(/a/g, 'global').hasOwnProperty('set') should be false. Threw exception TypeError: Cannot read property 'hasOwnProperty' of undefined
FAIL Object.getOwnPropertyDescriptor(/a/g, 'global').enumerable should be false. Threw exception TypeError: Cannot read property 'enumerable' of undefined
FAIL Object.getOwnPropertyDescriptor(/a/g, 'global').configurable should be false. Threw exception TypeError: Cannot read property 'configurable' of undefined
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, '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(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: Cannot convert undefined or null to object.
PASS Object.getOwnPropertyDescriptor(undefined) threw exception TypeError: Cannot convert undefined or null to object.
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 successfullyParsed is true
TEST COMPLETE