diff options
Diffstat (limited to 'test/built-ins/Array/prototype/reduce/15.4.4.21-9-c-i-11.js')
-rw-r--r-- | test/built-ins/Array/prototype/reduce/15.4.4.21-9-c-i-11.js | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/test/built-ins/Array/prototype/reduce/15.4.4.21-9-c-i-11.js b/test/built-ins/Array/prototype/reduce/15.4.4.21-9-c-i-11.js new file mode 100644 index 000000000..f9a7c0201 --- /dev/null +++ b/test/built-ins/Array/prototype/reduce/15.4.4.21-9-c-i-11.js @@ -0,0 +1,44 @@ +// Copyright (c) 2012 Ecma International. All rights reserved. +// Ecma International makes this code available under the terms and conditions set +// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +// "Use Terms"). Any redistribution of this code must retain the above +// copyright and this notice and otherwise comply with the Use Terms. + +/*--- +es5id: 15.4.4.21-9-c-i-11 +description: > + Array.prototype.reduce - element to be retrieved is own accessor + property that overrides an inherited data property on an + Array-like object +includes: [runTestCase.js] +---*/ + +function testcase() { + + var testResult = false; + var initialValue = 0; + function callbackfn(prevVal, curVal, idx, obj) { + if (idx === 1) { + testResult = (curVal === "11"); + } + } + + var proto = { 0: 0, 1: 1, 2: 2 }; + + var Con = function () { }; + Con.prototype = proto; + + var child = new Con(); + child.length = 3; + + Object.defineProperty(child, "1", { + get: function () { + return "11"; + }, + configurable: true + }); + + Array.prototype.reduce.call(child, callbackfn, initialValue); + return testResult; + } +runTestCase(testcase); |