Chromium Code Reviews| Index: test/mjsunit/arguments.js |
| diff --git a/test/mjsunit/arguments.js b/test/mjsunit/arguments.js |
| index 26eb38912a0e552dc6d61243ccb8b3480ae892ed..f179c7e8872594aa27a6743afc5940be2ff734dc 100644 |
| --- a/test/mjsunit/arguments.js |
| +++ b/test/mjsunit/arguments.js |
| @@ -26,7 +26,6 @@ |
| // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| // Flags: --allow-natives-syntax |
| - |
|
Igor Sheludko
2016/04/08 07:36:15
Spurious change?
|
| function argc0() { |
| return arguments.length; |
| } |
| @@ -204,3 +203,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); |
| +})(); |