| // Copyright 2016 the V8 project authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| (function testSmiArrayConcat() { |
| var result = [].concat([-12]); |
| |
| assertEquals(1, result.length); |
| assertEquals([-12], result); |
| })(); |
| |
| (function testDoubleArrayConcat() { |
| var result = [].concat([-1073741825]); |
| |
| assertEquals(1, result.length); |
| assertEquals([-1073741825], result); |
| })(); |
| |
| (function testSmiArrayNonConcatSpreadable() { |
| var array = [-10]; |
| array[Symbol.isConcatSpreadable] = false; |
| var result = [].concat(array); |
| |
| assertEquals(1, result.length); |
| assertEquals(1, result[0].length); |
| assertEquals([-10], result[0]); |
| })(); |
| |
| (function testDoubleArrayNonConcatSpreadable() { |
| var array = [-1073741825]; |
| array[Symbol.isConcatSpreadable] = false; |
| var result = [].concat(array); |
| |
| assertEquals(1, result.length); |
| assertEquals(1, result[0].length); |
| assertEquals([-1073741825], result[0]); |
| })(); |
| |
| Array.prototype[Symbol.isConcatSpreadable] = false; |
| |
| |
| (function testSmiArray() { |
| var result = [].concat([-12]); |
| |
| assertEquals(2, result.length); |
| assertEquals(0, result[0].length); |
| assertEquals(1, result[1].length); |
| assertEquals([-12], result[1]); |
| })(); |
| |
| (function testDoubleArray() { |
| var result = [].concat([-1073741825]); |
| |
| assertEquals(2, result.length); |
| assertEquals(0, result[0].length); |
| assertEquals(1, result[1].length); |
| assertEquals([-1073741825], result[1]); |
| })(); |