forked from WebKit/WebKit
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathclass-names.js
47 lines (36 loc) · 2 KB
/
class-names.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
load("./driver/driver.js");
function MyES5ClassUgly() {};
MyES5ClassUgly.displayName = "MyES5ClassDisplayName";
MyES5ClassUgly.prototype = { constructor: MyES5ClassUgly };
class MyES6Class {};
class MyES6Subclass extends MyES6Class {};
let classInstances = [];
for (let i = 0; i < 5; ++i)
classInstances.push(new MyES5ClassUgly);
for (let i = 0; i < 10; ++i)
classInstances.push(new MyES6Class);
for (let i = 0; i < 20; ++i)
classInstances.push(new MyES6Subclass);
let myFunction = function() {};
let myMap = new Map;
(function() {
let nodes;
let snapshot = createCheapHeapSnapshot();
nodes = snapshot.nodesWithClassName("MyES5ClassDisplayName");
assert(nodes.length === 5, "Snapshot should contain 5 'MyES5ClassDisplayName' (MyES5ClassUgly) instances");
assert(nodes.every((x) => x.isObjectType), "Every MyES5Class instance should have had its ObjectType flag set");
nodes = snapshot.nodesWithClassName("MyES6Class");
assert(nodes.length === 10, "Snapshot should contain 10 'MyES6Class' instances");
assert(nodes.every((x) => x.isObjectType), "Every MyES6Class instance should have had its ObjectType flag set");
nodes = snapshot.nodesWithClassName("MyES6Subclass");
assert(nodes.length === 20, "Snapshot should contain 20 'MyES6Subclass' instances");
assert(nodes.every((x) => x.isObjectType), "Every MyES6Subclass instance should have its ObjectType flag set");
nodes = snapshot.nodesWithClassName("Function");
assert(nodes.length > 0, "Should be at least 1 Function instance");
assert(nodes.every((x) => !x.isObjectType), "No Function instance should have its ObjectType flag set");
nodes = snapshot.nodesWithClassName("Map");
assert(nodes.length > 0, "Should be at least 1 Map instance");
assert(nodes.every((x) => !x.isObjectType), "No Map instance should have its ObjectType flag set");
nodes = snapshot.nodesWithClassName("Object");
assert(nodes.every((x) => x.isObjectType), "Every Object should also have its ObjectType flag set");
})();