fix outlinings of return double; fixes #2278
This commit is contained in:
Родитель
e52c99365d
Коммит
f0817a3565
|
@ -4491,7 +4491,7 @@ function outline(ast) {
|
|||
for (var returnType in codeInfo.hasReturnType) {
|
||||
reps.push(makeIf(
|
||||
makeComparison(makeAsmCoercion(['name', 'tempValue'], ASM_INT), '==', ['num', controlFromAsmType(returnType)]),
|
||||
[['stat', ['return', makeAsmCoercion(['name', 'tempInt'], returnType | 0)]]]
|
||||
[['stat', ['return', makeAsmCoercion(['name', returnType == ASM_INT ? 'tempInt' : 'tempDouble'], returnType | 0)]]]
|
||||
));
|
||||
}
|
||||
if (codeInfo.hasBreak) {
|
||||
|
|
|
@ -446,6 +446,32 @@ function stackSet(x1, x2, x3, x4, x5) {
|
|||
HEAP32[sp + 62 >> 2] = 0;
|
||||
stackSet$0(sp);
|
||||
}
|
||||
function linf(d) {
|
||||
d = +d;
|
||||
var sp = 0;
|
||||
sp = STACKTOP;
|
||||
STACKTOP = STACKTOP + 160 | 0;
|
||||
while (1) {
|
||||
HEAP32[sp + 24 >> 2] = 0;
|
||||
HEAP32[sp + 28 >> 2] = 0;
|
||||
linf$1(sp);
|
||||
HEAPF32[sp + 8 >> 2] = d;
|
||||
HEAP32[sp + 16 >> 2] = 0;
|
||||
HEAP32[sp + 20 >> 2] = 0;
|
||||
linf$0(sp);
|
||||
tempValue = HEAP32[sp + 16 >> 2] | 0;
|
||||
tempInt = HEAP32[sp + 20 >> 2] | 0;
|
||||
tempDouble = +HEAPF32[sp + 20 >> 2];
|
||||
HEAP32[sp + 16 >> 2] = 0;
|
||||
HEAP32[sp + 20 >> 2] = 0;
|
||||
if ((tempValue | 0) == 7) {
|
||||
STACKTOP = sp;
|
||||
return +tempDouble;
|
||||
}
|
||||
}
|
||||
STACKTOP = sp;
|
||||
return +d;
|
||||
}
|
||||
function lin$0(sp) {
|
||||
sp = sp | 0;
|
||||
c(14);
|
||||
|
@ -955,4 +981,37 @@ function stackSet$1(sp) {
|
|||
c(5);
|
||||
c(6);
|
||||
}
|
||||
function linf$0(sp) {
|
||||
sp = sp | 0;
|
||||
var d = +0;
|
||||
d = +HEAPF32[sp + 8 >> 2];
|
||||
OL : do {
|
||||
c(16);
|
||||
c(17);
|
||||
c(18);
|
||||
c(19);
|
||||
c(20);
|
||||
HEAP32[sp + 16 >> 2] = 7;
|
||||
HEAPF32[sp + 20 >> 2] = +d;
|
||||
break OL;
|
||||
} while (0);
|
||||
}
|
||||
function linf$1(sp) {
|
||||
sp = sp | 0;
|
||||
c(1);
|
||||
c(2);
|
||||
c(3);
|
||||
c(4);
|
||||
c(5);
|
||||
c(6);
|
||||
c(7);
|
||||
c(8);
|
||||
c(9);
|
||||
c(10);
|
||||
c(11);
|
||||
c(12);
|
||||
c(13);
|
||||
c(14);
|
||||
c(15);
|
||||
}
|
||||
|
||||
|
|
|
@ -384,5 +384,32 @@ function stackSet(x1, x2, x3, x4, x5) {
|
|||
c(12);
|
||||
c(13);
|
||||
}
|
||||
function linf(d) {
|
||||
d = +d;
|
||||
while (1) {
|
||||
c(1);
|
||||
c(2);
|
||||
c(3);
|
||||
c(4);
|
||||
c(5);
|
||||
c(6);
|
||||
c(7);
|
||||
c(8);
|
||||
c(9);
|
||||
c(10);
|
||||
c(11);
|
||||
c(12);
|
||||
c(13);
|
||||
c(14);
|
||||
c(15);
|
||||
c(16);
|
||||
c(17);
|
||||
c(18);
|
||||
c(19);
|
||||
c(20);
|
||||
return +d;
|
||||
}
|
||||
return +d;
|
||||
}
|
||||
// EMSCRIPTEN_GENERATED_FUNCTIONS
|
||||
// EXTRA_INFO: { "sizeToOutline": 30, "allowCostlyOutlines": 1 }
|
||||
|
|
Загрузка…
Ссылка в новой задаче