blob: a5f8ca8d885b850e271a79feb01b1b06ebaf0722 (
plain)
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
|
//#OPTIONS: CPP
// some Enum conversion things
// an array of generic enums
var h$enums = [];
function h$initEnums() {
for(var i=0;i<256;i++) {
h$enums[i] = h$makeEnum(i);
}
}
h$initStatic.push(h$initEnums);
function h$makeEnum(tag) {
var f = function() {
return h$stack[h$sp];
}
h$setObjInfo(f, 2, "Enum", [], tag+1, 0, [1], null);
#ifdef GHCJS_PROF
return h$c0(f, h$CCS_SYSTEM);
#else
return h$c0(f);
#endif
}
// used for all non-Bool enums
function h$tagToEnum(tag) {
if(tag >= h$enums.length) {
return h$makeEnum(tag);
} else {
return h$enums[tag];
}
}
function h$dataTag(e) {
return (e===true)?1:((typeof e !== 'object')?0:(e.f.a-1));
}
|