5ee9cf874f
On-heap TypedArrays have empty ArrayBuffers that are not supposed to be accessed directly. Such ArrayBuffers materialize properly when accessed via their TypedArrays. The queryObjects() sidesteps the bottleneck and finds empty ArrayBuffers by iterating the heap. When preview TypedArrays are constructed for the found ArrayBuffers, they get nullptr data pointers. This CL converts all on-heap TypedArrays into off-heap TypedArrays in queryObjects to make sure that all found ArrayBuffers are valid. Bug: chromium:992442 Change-Id: Ie77d1e75aa2007b4a976c72206b9a4e215c9ef53 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2150601 Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Simon Zünd <szuend@chromium.org> Cr-Commit-Position: refs/heads/master@{#67174}
112 lines
2.3 KiB
Plaintext
112 lines
2.3 KiB
Plaintext
Checks Runtime.queryObjects
|
|
|
|
Running test: testClass
|
|
Declare class Foo & store its constructor.
|
|
Create object with class Foo.
|
|
Query objects with Foo prototype.
|
|
Dump each object constructor name.
|
|
[
|
|
[0] : Foo,object
|
|
]
|
|
Create object with class Foo.
|
|
Query objects with Foo prototype.
|
|
Dump each object constructor name.
|
|
[
|
|
[0] : Foo,object
|
|
[1] : Foo,object
|
|
]
|
|
|
|
Running test: testDerivedNewClass
|
|
Declare class Foo & store its constructor.
|
|
Declare class Boo extends Foo & store its constructor.
|
|
Query objects with Foo prototype.
|
|
Dump each object constructor name.
|
|
[
|
|
[0] : Boo,object
|
|
]
|
|
Query objects with Boo prototype.
|
|
Dump each object constructor name.
|
|
[
|
|
]
|
|
Create object with class Foo
|
|
Query objects with Foo prototype.
|
|
Dump each object constructor name.
|
|
[
|
|
[0] : Boo,object
|
|
[1] : Foo,object
|
|
]
|
|
Create object with class Boo
|
|
Query objects with Foo prototype.
|
|
Dump each object constructor name.
|
|
[
|
|
[0] : Boo,object
|
|
[1] : Boo,object
|
|
[2] : Foo,object
|
|
]
|
|
Query objects with Boo prototype.
|
|
Dump each object constructor name.
|
|
[
|
|
[0] : Boo,object
|
|
]
|
|
|
|
Running test: testNewFunction
|
|
Declare Foo & store it.
|
|
Create object using Foo.
|
|
Query objects with Foo prototype.
|
|
Dump each object constructor name.
|
|
[
|
|
[0] : Foo,object
|
|
]
|
|
Create object using Foo.
|
|
Query objects with Foo prototype.
|
|
Dump each object constructor name.
|
|
[
|
|
[0] : Foo,object
|
|
[1] : Foo,object
|
|
]
|
|
|
|
Running test: testNonInspectable
|
|
Declare Foo & store it.
|
|
Create object using Foo.
|
|
Query objects with Foo prototype.
|
|
Dump each object constructor name.
|
|
[
|
|
[0] : Foo,object
|
|
]
|
|
Mark object as not inspectable.
|
|
Query objects with Foo prototype.
|
|
Dump each object constructor name.
|
|
[
|
|
]
|
|
|
|
Running test: testObjectCreate
|
|
Declare Object p & store it.
|
|
Create object using Object.create(p).
|
|
Query objects with p prototype.
|
|
Dump each object constructor name.
|
|
[
|
|
[0] : Object,object
|
|
]
|
|
Create object using Object.create(p).
|
|
Query objects with p prototype.
|
|
Dump each object constructor name.
|
|
[
|
|
[0] : Object,object
|
|
[1] : Object,object
|
|
]
|
|
|
|
Running test: testQueryObjectsWithFeedbackVector
|
|
Before/After difference: 1
|
|
|
|
Running test: testQueryObjectsWithArrayBuffer
|
|
Test that queryObjects does not crash for on-heap TypedArrays
|
|
|
|
Running test: testWithObjectGroup
|
|
Query for Array.prototype 3 times
|
|
Results since initial: 0
|
|
Results since initial: 1
|
|
Results since initial: 2
|
|
|
|
Released object group.
|
|
Results since initial: 0
|