Placate exception check validation in constructJSWebAssemblyLinkError().
[WebKit-https.git] / JSTests / typeProfiler / captured.js
1 var findTypeForExpression = $vm.findTypeForExpression;
2
3 load("./driver/driver.js");
4
5 var changeFoo;
6 function wrapper() {
7
8 var foo=20;
9 changeFoo = function(arg) { foo = arg; }
10
11 }
12 wrapper();
13
14 // ====== End test cases ======
15
16 var types = findTypeForExpression(wrapper, "foo=20;"); 
17 assert(types.instructionTypeSet.primitiveTypeNames.indexOf(T.Integer) !== -1, "Primitive type names should contain 'Integer'");
18 assert(types.globalTypeSet.primitiveTypeNames.indexOf(T.Integer) !== -1, "Primitive type names should contain 'Integer'");
19 assert(types.globalTypeSet.primitiveTypeNames.length === 1, "Primitive type names should contain exactly only one item globally");
20 assert(types.instructionTypeSet.primitiveTypeNames.length === 1, "Primitive type names should contain exactly only one item on the instruction");
21 assert(types.globalTypeSet.displayTypeName === T.Integer, "global display name should be Integer");
22 assert(types.instructionTypeSet.displayTypeName === T.Integer, "instruction display name should be Integer");
23
24 changeFoo(20.5);
25 types = findTypeForExpression(wrapper, "foo=20;"); 
26 assert(types.instructionTypeSet.primitiveTypeNames.indexOf(T.Integer) !== -1, "Primitive type names should contain 'Integer'");
27 assert(types.instructionTypeSet.primitiveTypeNames.length === 1, "Primitive type names should contain STILL only contain exactly one item on the instruction");
28 assert(types.globalTypeSet.primitiveTypeNames.indexOf(T.Integer) !== -1, "Global primitive type names should now still contain 'Integer'");
29 assert(types.globalTypeSet.primitiveTypeNames.indexOf(T.Number) !== -1, "Global primitive type names should now contain 'Number'");
30 assert(types.globalTypeSet.primitiveTypeNames.length === 2, "Global primitive type names should contain exactly two items globally");
31 assert(types.globalTypeSet.displayTypeName === T.Number, "global display name should be Number");
32
33 changeFoo(null);
34