blob: d2264bfa2ae961d2c0630dfa8ad5ef56116e632e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
/* Any copyright is dedicated to the Public Domain.
* http://creativecommons.org/licenses/publicdomain/ */
"use strict";
// Primitive values should never be tried to spread
let primitives = [
10,
false,
Symbol()
// Can't change String.prototype.length
];
for (let value of primitives) {
let prototype = Object.getPrototypeOf(value);
prototype[Symbol.isConcatSpreadable] = true;
Object.defineProperty(prototype, "length", {
configurable: true,
get() {
// Should never invoke length getter
assertEq(true, false);
},
});
let x = [1, 2].concat(value);
assertDeepEq(x, [1, 2, value]);
delete prototype[Symbol.isConcatSpreadable];
delete prototype.length;
prototype.length;
}
reportCompare(true, true);
|