summaryrefslogtreecommitdiffstats
path: root/js/src/tests/non262/Function/arguments-extra-property.js
blob: 017734382d9d394dc48bbbd5e745d5b526779eb1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
var BUGNUMBER = 1263811;
var summary = "GetElem for modified arguments shouldn't be optimized to get original argument.";

print(BUGNUMBER + ": " + summary);

function testModifyFirst() {
    function f() {
        Object.defineProperty(arguments, 1, { value: 30 });
        assertEq(arguments[1], 30);
    }
    for (let i = 0; i < 10; i++)
        f(10, 20);
}
testModifyFirst();

function testModifyLater() {
    function f() {
        var ans = 20;
        for (let i = 0; i < 10; i++) {
            if (i == 5) {
                Object.defineProperty(arguments, 1, { value: 30 });
                ans = 30;
            }
            assertEq(arguments[1], ans);
        }
    }
    for (let i = 0; i < 10; i++)
        f(10, 20);
}
testModifyLater();

if (typeof reportCompare === "function")
    reportCompare(true, true);