blob: eb7ccf8723a9b1f3bdd703b43655f804aadec8b9 [file] [log] [blame]
Ben Murdoch4a90d5f2016-03-22 12:00:34 +00001// 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})();