Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Latest commit

 

History

History
History
106 lines (88 loc) · 2.39 KB

File metadata and controls

106 lines (88 loc) · 2.39 KB
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
var tempNum;
function tempFunc() {
}
function rootedFunc1() {
}
Module['rootedFunc1'] = rootedFunc1;
function rootedFunc2() {
}
var use = rootedFunc2();
function user() {
used();
}
function used() {
}
function useExportA() {
expI3();
}
function useExportB() {
Module['expI3']();
}
function useManySorted() {
Module['expI4']();
expI3();
expI1();
Module['expI2']();
}
var asmLibraryArg = {
'tempNum': tempNum,
'tempFunc': tempFunc,
'rootedFunc1': rootedFunc1,
'rootedFunc2': rootedFunc2,
'user': user,
'used': used,
'useExportA': useExportA,
'useExportB': useExportB,
'useManySorted': useManySorted,
};
// exports gotten directly
var expD1 = Module['expD1'] = asm['expD1'];
var expD2 = Module['expD2'] = asm['expD2'];
var expD3 = Module['expD3'] = asm['expD3'];
var expD4 = Module['expD4'] = asm['expD4'];
// exports gotten indirectly (async compilation
var expI1 = Module['expI1'] = (function() {
return Module['asm']['expI1'].apply(null, arguments);
});
var expI2 = Module['expI2'] = (function() {
return Module['asm']['expI2'].apply(null, arguments);
});
var expI3 = Module['expI3'] = (function() {
return Module['asm']['expI3'].apply(null, arguments);
});
var expI4 = Module['expI4'] = (function() {
return Module['asm']['expI4'].apply(null, arguments);
});
// add uses for some of them
expD1;
Module['expD2'];
asm['expD3'];
expI1;
Module['expI2'];
Module['asm']['expI3'];
// deep uses, that we can't scan
function usedFromDeep() {
}
var Something = {
property: function() {
usedFromDeep();
},
};
function usedFromDeep2() {
}
var func = function() {
usedFromDeep2();
};
// dyncalls
var dynCall_v = Module["dynCall_v"] = function() { return Module["asm"]["dynCall_v"].apply(null, arguments) };
var dynCall_vi = Module["dynCall_vi"] = function() { return Module["asm"]["dynCall_vi"].apply(null, arguments) };
var dynCall_vii = Module["dynCall_vii"] = function() { return Module["asm"]["dynCall_vii"].apply(null, arguments) };
var dynCall_viii = Module["dynCall_viii"] = function() { return Module["asm"]["dynCall_viii"].apply(null, arguments) };
dynCall_v(ptr); // use directly
Module['dynCall_vi'](ptr, 1); // use on module
dynCall('vii', ptr, [2, 3]); // use indirectly, depending on analysis of dynCall(string, )
// and viii is never used, so definitely legitimately eliminatable
// Don't crash on this code pattern, which regressed in #10724
(function(output) {
x++;
});
Morty Proxy This is a proxified and sanitized view of the page, visit original site.