mirror of
				https://github.com/tc39/test262.git
				synced 2025-11-03 21:24:30 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			52 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
// Copyright (c) 2012 Ecma International.  All rights reserved.
 | 
						|
// This code is governed by the BSD license found in the LICENSE file.
 | 
						|
 | 
						|
/*---
 | 
						|
es5id: 10.6-11-b-1
 | 
						|
description: >
 | 
						|
    Arguments Object has index property '0' as its own property, it
 | 
						|
    shoulde be writable, enumerable, configurable and does not invoke
 | 
						|
    the setter defined on Object.prototype[0] (Step 11.b)
 | 
						|
---*/
 | 
						|
 | 
						|
            var data = "data";
 | 
						|
            var getFunc = function () {
 | 
						|
                return data;
 | 
						|
            };
 | 
						|
 | 
						|
            var setFunc = function (value) {
 | 
						|
                data = value;
 | 
						|
            };
 | 
						|
 | 
						|
            Object.defineProperty(Object.prototype, "0", {
 | 
						|
                get: getFunc,
 | 
						|
                set: setFunc,
 | 
						|
                configurable: true
 | 
						|
            });
 | 
						|
 | 
						|
            var argObj = (function () { return arguments })(1);
 | 
						|
 | 
						|
            var verifyValue = false;
 | 
						|
            verifyValue = (argObj[0] === 1);
 | 
						|
 | 
						|
            var verifyEnumerable = false;
 | 
						|
            for (var p in argObj) {
 | 
						|
                if (p === "0" && argObj.hasOwnProperty("0")) {
 | 
						|
                    verifyEnumerable = true;
 | 
						|
                }
 | 
						|
            }
 | 
						|
 | 
						|
            var verifyWritable = false;
 | 
						|
            argObj[0] = 1001;
 | 
						|
            verifyWritable = (argObj[0] === 1001);
 | 
						|
 | 
						|
            var verifyConfigurable = false;
 | 
						|
            delete argObj[0];
 | 
						|
            verifyConfigurable = argObj.hasOwnProperty("0");
 | 
						|
 | 
						|
assert(verifyValue, 'verifyValue !== true');
 | 
						|
assert(verifyWritable, 'verifyWritable !== true');
 | 
						|
assert(verifyEnumerable, 'verifyEnumerable !== true');
 | 
						|
assert.sameValue(verifyConfigurable, false, 'verifyConfigurable');
 | 
						|
assert.sameValue(data, "data", 'data');
 |