]> git.saurik.com Git - apple/javascriptcore.git/blame - tests/stress/symbol-seal-and-freeze.js
JavaScriptCore-7601.1.46.3.tar.gz
[apple/javascriptcore.git] / tests / stress / symbol-seal-and-freeze.js
CommitLineData
ed1e77d3
A
1// This tests Object.seal and Object.freeze affect on Symbol properties.
2
3var object = {
4 [Symbol.iterator]: 42
5};
6
7if (!object.hasOwnProperty(Symbol.iterator))
8 throw "Error: object doesn't have Symbol.iterator";
9if (JSON.stringify(Object.getOwnPropertyDescriptor(object, Symbol.iterator)) !== '{"value":42,"writable":true,"enumerable":true,"configurable":true}')
10 throw "Error: bad property descriptor " + JSON.stringify(Object.getOwnPropertyDescriptor(object, Symbol.iterator));
11if (Object.getOwnPropertySymbols(object).length !== 1)
12 throw "Error: bad value " + Object.getOwnPropertySymbols(object).length;
13if (Object.getOwnPropertySymbols(object)[0] !== Symbol.iterator)
14 throw "Error: bad value " + String(Object.getOwnPropertySymbols(object)[0]);
15
16Object.seal(object);
17if (!object.hasOwnProperty(Symbol.iterator))
18 throw "Error: object doesn't have Symbol.iterator";
19if (JSON.stringify(Object.getOwnPropertyDescriptor(object, Symbol.iterator)) !== '{"value":42,"writable":true,"enumerable":true,"configurable":false}')
20 throw "Error: bad property descriptor " + JSON.stringify(Object.getOwnPropertyDescriptor(object, Symbol.iterator));
21
22Object.freeze(object);
23if (!object.hasOwnProperty(Symbol.iterator))
24 throw "Error: object doesn't have Symbol.iterator";
25if (JSON.stringify(Object.getOwnPropertyDescriptor(object, Symbol.iterator)) !== '{"value":42,"writable":false,"enumerable":true,"configurable":false}')
26 throw "Error: bad property descriptor " + JSON.stringify(Object.getOwnPropertyDescriptor(object, Symbol.iterator));