Home | History | Annotate | Download | only in es7
      1 // Copyright 2014 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 // Ported from
      6 // https://github.com/tc39/Array.prototype.includes/blob/master/test/number-this.js
      7 // using https://www.npmjs.org/package/test262-to-mjsunit
      8 
      9 // Array.prototype.includes should use ToObject on this, so that when called
     10 // with a number, it picks up numeric properties from Number.prototype
     11 (function() {
     12   Number.prototype[0] = "a";
     13   Number.prototype[1] = "b";
     14 
     15   Object.defineProperty(Number.prototype, 2, {
     16     get: function() {
     17       assertEquals("object", typeof this);
     18       return "c";
     19     }
     20   });
     21 
     22   Number.prototype.length = 3;
     23   assertTrue(Array.prototype.includes.call(5, "a"));
     24   assertTrue(Array.prototype.includes.call(5, "b"));
     25   assertTrue(Array.prototype.includes.call(5, "c"));
     26   assertFalse(Array.prototype.includes.call(5, "d"));
     27 })();
     28