diff options
Diffstat (limited to 'deps/v8/test/mjsunit/arguments.js')
-rw-r--r-- | deps/v8/test/mjsunit/arguments.js | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/deps/v8/test/mjsunit/arguments.js b/deps/v8/test/mjsunit/arguments.js index 26eb38912a..97ec7cca6d 100644 --- a/deps/v8/test/mjsunit/arguments.js +++ b/deps/v8/test/mjsunit/arguments.js @@ -204,3 +204,70 @@ assertEquals(117, arg_set(0xFFFFFFFF)); } assertTrue(%HasSloppyArgumentsElements(a)); })(); + +(function testDeleteArguments() { + function f() { return arguments }; + var args = f(1, 2); + assertEquals(1, args[0]); + assertEquals(2, args[1]); + assertEquals(2, args.length); + + delete args[0]; + assertEquals(undefined, args[0]); + assertEquals(2, args[1]); + assertEquals(2, args.length); + + delete args[1]; + assertEquals(undefined, args[0]); + assertEquals(undefined, args[1]); + assertEquals(2, args.length); +})(); + +(function testDeleteFastSloppyArguments() { + function f(a) { return arguments }; + var args = f(1, 2); + assertEquals(1, args[0]); + assertEquals(2, args[1]); + assertEquals(2, args.length); + + delete args[0]; + assertEquals(undefined, args[0]); + assertEquals(2, args[1]); + assertEquals(2, args.length); + + delete args[1]; + assertEquals(undefined, args[0]); + assertEquals(undefined, args[1]); + assertEquals(2, args.length); +})(); + +(function testDeleteSlowSloppyArguments() { + var key = 10000; + function f(a) { + arguments[key] = key; + return arguments + }; + var args = f(1, 2); + assertEquals(1, args[0]); + assertEquals(2, args[1]); + assertEquals(key, args[key]); + assertEquals(2, args.length); + + delete args[0]; + assertEquals(undefined, args[0]); + assertEquals(2, args[1]); + assertEquals(key, args[key]); + assertEquals(2, args.length); + + delete args[1]; + assertEquals(undefined, args[0]); + assertEquals(undefined, args[1]); + assertEquals(key, args[key]); + assertEquals(2, args.length); + + delete args[key]; + assertEquals(undefined, args[0]); + assertEquals(undefined, args[1]); + assertEquals(undefined, args[key]); + assertEquals(2, args.length); +})(); |