diff options
-rw-r--r-- | src/jsifier.js | 2 | ||||
-rw-r--r-- | src/library.js | 9 | ||||
-rw-r--r-- | tests/runner.py | 7 |
3 files changed, 15 insertions, 3 deletions
diff --git a/src/jsifier.js b/src/jsifier.js index b5ac1262..aadc021c 100644 --- a/src/jsifier.js +++ b/src/jsifier.js @@ -699,7 +699,7 @@ function JSify(data, functionsOnly, givenTypes, givenFunctions) { makeFuncLineZyme('mathop', function(item) { with(item) { for (var i = 1; i <= 4; i++) { if (item['param'+i]) { - item['ident'+i] = finalizeLLVMParameter(item['param'+i]); + item['ident'+i] = indexizeFunctions(finalizeLLVMParameter(item['param'+i])); } } if (GUARD_SIGNS) { diff --git a/src/library.js b/src/library.js index 5ebd2c02..b4efd901 100644 --- a/src/library.js +++ b/src/library.js @@ -215,6 +215,9 @@ var Library = { var i = 0; do { IHEAP[pdest+len+i] = IHEAP[psrc+i]; +#if SAFE_HEAP + SAFE_HEAP_ACCESS(pdest+len+i, 'i8', true); +#endif i ++; } while (IHEAP[psrc+i-1] != 0); return pdest; @@ -224,7 +227,11 @@ var Library = { var len = Pointer_stringify(pdest).length; // TODO: use strlen, but need dependencies system var i = 0; while(1) { - if ((IHEAP[pdest+len+i] = IHEAP[psrc+i]) == 0) break; + IHEAP[pdest+len+i] = IHEAP[psrc+i]; +#if SAFE_HEAP + SAFE_HEAP_ACCESS(pdest+len+i, 'i8', true); +#endif + if (IHEAP[pdest+len+i] == 0) break; i ++; if (i == num) { IHEAP[pdest+len+i] = 0; diff --git a/tests/runner.py b/tests/runner.py index d8267d2e..a931ced9 100644 --- a/tests/runner.py +++ b/tests/runner.py @@ -606,10 +606,15 @@ if 'benchmark' not in sys.argv: void *vp2 = (void*)fp2; fp_t fpb2 = (fp_t)vp2; printf("*%d,%d,%d,%d,%d,%d*\\n", fp(), fpb(), fp2(), fpb2(), globally1(), globally2()); + + fp_t t = calc1; + printf("*%d,%d", t == calc1, t == calc2); + t = calc2; + printf(",%d,%d*\\n", t == calc1, t == calc2); return 0; } ''' - self.do_test(src, '*26,26,90,90,26,90*') + self.do_test(src, '*26,26,90,90,26,90*\n*1,0,0,1*') def test_emptyclass(self): src = ''' |