blob: f28eaae1576380db7b46e7e90c497b1ece19f090 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
/* Any copyright is dedicated to the Public Domain.
* http://creativecommons.org/licenses/publicdomain/ */
// Deleting .length from a variety of builtin functions works as expected.
for (var fun of [Math.sin, Array.prototype.map, eval]) {
assertEq(delete fun.length, true);
assertEq(fun.hasOwnProperty("length"), false);
assertEq("length" in fun, true); // still inheriting Function.prototype.length
assertEq(fun.length, 0);
// The inherited property is nonwritable, so assigning still fails
// (silently, in sloppy mode).
fun.length = Math.hypot;
assertEq(fun.length, 0);
// It can be shadowed via defineProperty.
Object.defineProperty(fun, "length", {value: Math.hypot});
assertEq(fun.length, Math.hypot);
}
reportCompare(0, 0, 'ok');
|