Home | History | Annotate | Download | only in mjsunit
      1 // Copyright 2015 the V8 project authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 Object.defineProperty(Number.prototype, "0",
      6     { set: function(v) { set = v; }});
      7 Object.defineProperty(String.prototype, "0",
      8     { set: function(v) { set = v; }});
      9 Object.defineProperty(String.prototype, "3",
     10     { set: function(v) { set = v; }});
     11 
     12 var set;
     13 var n = 1;
     14 set = 0;
     15 n[0] = 100;
     16 assertEquals(100, set);
     17 var s = "bla";
     18 s[0] = 200;
     19 assertEquals(100, set);
     20 s[3] = 300;
     21 assertEquals(300, set);
     22 
     23 assertThrows(function(){"use strict"; var o = "123"; o[1] = 10; });
     24 assertThrows(function(){"use strict"; var o = ""; o[1] = 10; });
     25 assertThrows(function(){"use strict"; var o = 1; o[1] = 10; });
     26 
     27 assertThrows(function() {
     28   "use strict";
     29   var sym = Symbol('66');
     30   sym.a = 0;
     31 });
     32 
     33 assertThrows(function() {
     34   "use strict";
     35   var sym = Symbol('66');
     36   sym['a' + 'b'] = 0;
     37 });
     38 
     39 assertThrows(function() {
     40   "use strict";
     41   var sym = Symbol('66');
     42   sym[62] = 0;
     43 });
     44 
     45 assertThrows(function() {
     46   "use strict";
     47   var o = "bla";
     48   o["0"] = 1;
     49 });
     50