30 lines
731 B
JavaScript
30 lines
731 B
JavaScript
var s = Symbol();
|
|
var object = {};
|
|
object[s] = 42;
|
|
expect(object[s]).toBe(42);
|
|
// Native Symbol throws for ToString.
|
|
// expect(object[s + '']).toBeUndefined();
|
|
expect(Object.getOwnPropertyNames(object)).toEqual([]);
|
|
expect(object).toHaveProperty(s);
|
|
|
|
expect(object[s] -= 10).toBe(32);
|
|
expect(object[s] /= 2).toBe(16);
|
|
expect(object[s]).toBe(16);
|
|
|
|
var n = Symbol();
|
|
expect(object[n] = 1).toBe(1);
|
|
expect(object[n] += 2).toBe(3);
|
|
|
|
expect(Object.getOwnPropertyDescriptor(object, n).enumerable).toBe(true);
|
|
|
|
expect(n in object).toBe(true);
|
|
expect(delete object[n]).toBe(true);
|
|
expect(n in object).toBe(false);
|
|
|
|
var keys = [];
|
|
for (var k in object) {
|
|
keys.push(k);
|
|
}
|
|
expect(keys).toHaveLength(0);
|
|
expect(Object.keys(object)).toBe(0);
|