| Index: test/mjsunit/harmony/typedarrays.js | 
| diff --git a/test/mjsunit/harmony/typedarrays.js b/test/mjsunit/harmony/typedarrays.js | 
| index 5b75874cd40685897393613ab693a521318eb828..c70d8e5ea4b82371d7570bafdac12585885ccf6c 100644 | 
| --- a/test/mjsunit/harmony/typedarrays.js | 
| +++ b/test/mjsunit/harmony/typedarrays.js | 
| @@ -481,6 +481,89 @@ function TestTypedArraySet() { | 
|  | 
| TestTypedArraySet(); | 
|  | 
| +function TestTypedArraysWithIllegalIndices() { | 
| +  var a = new Int32Array(100); | 
| + | 
| +  a[-10] = 10; | 
| +  assertEquals(undefined, a[-10]); | 
| +  a["-10"] = 10; | 
| +  assertEquals(undefined, a["-10"]); | 
| + | 
| +  var s = "    -10"; | 
| +  a[s] = 10; | 
| +  assertEquals(10, a[s]); | 
| +  var s1 = "    -10   "; | 
| +  a[s] = 10; | 
| +  assertEquals(10, a[s]); | 
| + | 
| +  a["-1e2"] = 10; | 
| +  assertEquals(10, a["-1e2"]); | 
| +  assertEquals(undefined, a[-1e2]); | 
| + | 
| +  /* Chromium bug: 424619 | 
| +   * a[-Infinity] = 50; | 
| +   * assertEquals(undefined, a[-Infinity]); | 
| +   */ | 
| +  a[1.5] = 10; | 
| +  assertEquals(undefined, a[1.5]); | 
| +  var nan = Math.sqrt(-1); | 
| +  a[nan] = 5; | 
| +  assertEquals(5, a[nan]); | 
| + | 
| +  var x = 0; | 
| +  var y = -0; | 
| +  assertEquals(Infinity, 1/x); | 
| +  assertEquals(-Infinity, 1/y); | 
| +  a[x] = 5; | 
| +  a[y] = 27; | 
| +  assertEquals(27, a[x]); | 
| +  assertEquals(27, a[y]); | 
| +} | 
| + | 
| +TestTypedArraysWithIllegalIndices(); | 
| + | 
| +function TestTypedArraysWithIllegalIndicesStrict() { | 
| +  'use strict'; | 
| +  var a = new Int32Array(100); | 
| + | 
| +  a[-10] = 10; | 
| +  assertEquals(undefined, a[-10]); | 
| +  a["-10"] = 10; | 
| +  assertEquals(undefined, a["-10"]); | 
| + | 
| +  var s = "    -10"; | 
| +  a[s] = 10; | 
| +  assertEquals(10, a[s]); | 
| +  var s1 = "    -10   "; | 
| +  a[s] = 10; | 
| +  assertEquals(10, a[s]); | 
| + | 
| +  a["-1e2"] = 10; | 
| +  assertEquals(10, a["-1e2"]); | 
| +  assertEquals(undefined, a[-1e2]); | 
| + | 
| +  /* Chromium bug: 424619 | 
| +   * a[-Infinity] = 50; | 
| +   * assertEquals(undefined, a[-Infinity]); | 
| +   */ | 
| +  a[1.5] = 10; | 
| +  assertEquals(undefined, a[1.5]); | 
| +  var nan = Math.sqrt(-1); | 
| +  a[nan] = 5; | 
| +  assertEquals(5, a[nan]); | 
| + | 
| +  var x = 0; | 
| +  var y = -0; | 
| +  assertEquals(Infinity, 1/x); | 
| +  assertEquals(-Infinity, 1/y); | 
| +  a[x] = 5; | 
| +  a[y] = 27; | 
| +  assertEquals(27, a[x]); | 
| +  assertEquals(27, a[y]); | 
| +} | 
| + | 
| +TestTypedArraysWithIllegalIndicesStrict(); | 
| + | 
| // DataView | 
| function TestDataViewConstructor() { | 
| var ab = new ArrayBuffer(256); | 
|  |