blob: ffefa88f995acb442c51ef7a60e1e45aeb1b710e [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 (even in
11// strict mode)
12(function() {
13 "use strict";
14
15 Number.prototype[0] = "a";
16 Number.prototype[1] = "b";
17
18 Object.defineProperty(Number.prototype, 2, {
19 get: function() {
20 assertEquals("object", typeof this);
21 return "c";
22 }
23 });
24
25 Number.prototype.length = 3;
26 assertTrue(Array.prototype.includes.call(5, "a"));
27 assertTrue(Array.prototype.includes.call(5, "b"));
28 assertTrue(Array.prototype.includes.call(5, "c"));
29 assertFalse(Array.prototype.includes.call(5, "d"));
30})();