]> git.saurik.com Git - apple/javascriptcore.git/blame - tests/stress/object-get-own-property-symbols.js
JavaScriptCore-7601.1.46.3.tar.gz
[apple/javascriptcore.git] / tests / stress / object-get-own-property-symbols.js
CommitLineData
ed1e77d3
A
1// This tests Object.getOwnPropertySymbols.
2
3var global = (Function("return this")());
4
5// private names for privileged code should not be exposed.
6if (Object.getOwnPropertySymbols(global).length !== 0)
7 throw "Error: bad value " + Object.getOwnPropertySymbols(global).length;
8
9var object = {};
10var symbol = Symbol("Cocoa");
11object[symbol] = "Cappuccino";
12if (Object.getOwnPropertyNames(object).length !== 0)
13 throw "Error: bad value " + Object.getOwnPropertyNames(object).length;
14if (Object.getOwnPropertySymbols(object).length !== 1)
15 throw "Error: bad value " + Object.getOwnPropertySymbols(object).length;
16if (Object.getOwnPropertySymbols(object)[0] !== symbol)
17 throw "Error: bad value " + String(Object.getOwnPropertySymbols(object)[0]);
18
19function forIn(obj) {
20 var array = [];
21 // Symbol should not be enumerated.
22 for (var key in obj) array.push(key);
23 return array;
24}
25
26if (forIn(object).length !== 0)
27 throw "Error: bad value " + forIn(object).length;
28if (Object.keys(object).length !== 0)
29 throw "Error: bad value " + Object.keys(object).length;
30
31delete object[symbol];
32if (Object.getOwnPropertyNames(object).length !== 0)
33 throw "Error: bad value " + Object.getOwnPropertyNames(object).length;
34if (Object.getOwnPropertySymbols(object).length !== 0)
35 throw "Error: bad value " + Object.getOwnPropertySymbols(object).length;