| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- *** Running test #1 (0): Test Object.prototype.__proto__ attributes
- get: function() {
- [native code]
- }
- set: function() {
- [native code]
- }
- enumerable: false
- configurable: true
- PASSED
- *** Running test #2 (1): Read built-in __proto__
- PASSED
- *** Running test #3 (2): Change built-in's __proto__ chain
- Number.prototype -> Array.prototype -> Object.prototype
- Boolean.prototype -> "abc" -> String.prototype -> Object.prototype
- PASSED
- *** Running test #4 (3): Change __proto__ to null/undefined
- PASSED
- *** Running test #5 (4): Change __proto__ to neither Object nor null, should throw
- PASSED
- *** Running test #6 (5): Change object.__proto__ to an object
- b: 200
- c: 200
- a (inherited): 100
- -- delete b.b --
- c: 200
- a (inherited): 100
- b (inherited): 100
- PASSED
- *** Running test #7 (6): Change object.__proto__ to an array
- b: 200
- 0 (inherited): 8
- 1 (inherited): 3
- 2 (inherited): 9
- 3 (inherited): 5
- -- a.sort --
- b: 200
- 0 (inherited): 3
- 1 (inherited): 5
- 2 (inherited): 8
- 3 (inherited): 9
- -- b.sort --
- 0: 3
- 1: 5
- 2: 8
- 3: 9
- b: 200
- PASSED
- *** Running test #8 (7): Change array.__proto__ to an object
- 0: 8
- 1: 3
- 2: 9
- 3: 5
- a (inherited): 100
- -- sort.apply --
- 0: 3
- 1: 5
- 2: 8
- 3: 9
- a (inherited): 100
- PASSED
- *** Running test #9 (8): Attempt to change DOM object __proto__
- PASSED
- *** Running test #10 (9): __proto__ and instanceof/isPrototypeOf
- PASSED
- *** Running test #11 (10): Verify we reject simple __proto__ cycle
- PASSED
- *** Running test #12 (11): Verify proto cache is discarded
- Before change
- 1, 2
- After change
- 3, 4
- PASSED
- *** Running test #13 (12): Verify proto getter cache is discarded
- Before change
- 1, 7
- After change
- 3, 4
- PASSED
- *** Running test #14 (13): Verify the new proto object is marked as proto, so that changing the proto object invalidates related proto cache
- Before change
- undefined, undefined
- After change
- 3, 4
- After change proto property
- 9, 4
- PASSED
- *** Running test #15 (14): Verify changing __proto__ works safely with ObjTypeSpec
- PASSED
- *** Running test #16 (15): Verify PathTypeHandler successor Types continue to work, case 1
- PASSED
- *** Running test #17 (16): Verify PathTypeHandler successor Types continue to work, case 2
- PASSED
- *** Running test #18 (17): Verify that we can shadow __proto__ property
- PASSED
- *** Running test #19 (18): Test fast path o[i] with changed prototype
- PASSED
- *** Running test #20 (19): Test fast path o[i] when o.__proto__ == null
- PASSED
- *** Running test #21 (20): Test fast path o[i] when o.__proto__.__proto__ == null
- PASSED
- *** Running test #22 (21): Test Array methods with changed prototype
- PASSED
- *** Running test #23 (22): Test cross-site change prototype
- PASSED
- *** Running test #24 (23): Test change prototype of global object
- PASSED
- *** Running test #25 (24): Blue 62526: __proto__: ArrayElementEnumerator does not expect non-TypeIds_Object on prototype
- PASSED
- *** Running test #26 (25): Blue 114364: __proto__: Object.preventExtensions should make [[prototype]] immutable
- PASSED
- *** Running test #27 (26): Blue 245453: __proto__: Invalid has-only-writable-data-property cache
- PASSED
- *** Running test #28 (27): Blue 245453: __proto__: Invalid has-only-writable-data-property cache -- verify cross-context
- PASSED
- Summary of tests: total executed: 28; passed: 28; failed: 0
|