arguments-on-proto.js (776B)
1 function create() { 2 return Object.create(arguments, {2: {value: "shadowed"}}); 3 } 4 5 function createStrict() { 6 "use strict"; 7 return Object.create(arguments, {40: {value: "shadowed2"}}); 8 } 9 10 function f() { 11 var args = [createStrict(10, 20, 30, 40), create(1, 2, 3)]; 12 13 var threshold = getJitCompilerOptions()["ion.warmup.trigger"] + 101; 14 15 for (var i = 0; i < threshold; i++) { 16 // We switch between different arguments objects, to make 17 // sure the right IC is triggered. 18 var a = args[i % 2]; 19 assertEq(a.length, (i % 2) ? 3 : 4); 20 assertEq(a[0], (i % 2) ? 1 : 10); 21 assertEq(a[1], (i % 2) ? 2 : 20); 22 assertEq(a[2], (i % 2) ? "shadowed" : 30); 23 assertEq(a[3], (i % 2) ? undefined : 40); 24 } 25 } 26 27 f();