2014-07-22 01:09:02 +02:00
// Copyright (c) 2012 Ecma International. All rights reserved.
2015-07-17 17:42:45 +02:00
// This code is governed by the BSD license found in the LICENSE file.
2014-07-22 01:09:02 +02:00
/ * - - -
2014-07-25 00:41:42 +02:00
es5id : 15.2 . 3.6 - 4 - 171
2014-07-22 01:09:02 +02:00
description : >
Object . defineProperty - 'O' is an Array , 'name' is the length
property of 'O' , the [ [ Value ] ] field of 'desc' is less than value
of the length property , test the [ [ Configurable ] ] attribute of an
inherited data property with large index named in 'O' can ' t stop
deleting index named properties ( 15.4 . 5.1 step 3. l . ii )
includes : [ runTestCase . js ]
-- - * /
function testcase ( ) {
var arrObj = [ 0 , 1 ] ;
try {
Array . prototype [ 1 ] = 2 ; // Not setting the [[Configurable]] attribute of property "1" to false here, since Array.prototype is a global object, and non-configurbale property can't revert to configurable
Object . defineProperty ( arrObj , "length" , {
value : 1
} ) ;
return arrObj . length === 1 && ! arrObj . hasOwnProperty ( "1" ) ;
} finally {
delete Array . prototype [ 1 ] ;
}
}
runTestCase ( testcase ) ;