diff --git a/libraries/ghc-internal/jsbits/base.js b/libraries/ghc-internal/jsbits/base.js index 62a5cb683e9982a532a7975cab6280f8cdfd445e..1b3112d5e4e06789d6fd4c63de79e2c1e93934e7 100644 --- a/libraries/ghc-internal/jsbits/base.js +++ b/libraries/ghc-internal/jsbits/base.js @@ -1077,3 +1077,12 @@ function h$mkdir(path, path_offset, mode) { } return 0; } + +// It is required by Google Closure Compiler to be at least defined if +// somewhere it is used +var h$stg_cloneMyStackzh, h$stg_decodeStackzh +h$stg_cloneMyStackzh + = h$stg_decodeStackzh + = function () { + throw new Error('Stack Cloning Decoding: Not Implemented Yet') + } diff --git a/rts/js/rts.js b/rts/js/rts.js index 993255022694cb2be4b1052f34838feb9384bab3..07fede78aa44ae6737e9befab13ac2ba3f2284e6 100644 --- a/rts/js/rts.js +++ b/rts/js/rts.js @@ -441,9 +441,7 @@ function h$throw(e, async) { if(async) { // async exceptions always propagate h$currentThread.transaction = null; } else if(!h$stmValidateTransaction()) { // restart transaction if invalid, don't propagate exception - h$sp++; - h$stack[h$sp] = h$checkInvariants_e; - return h$stmStartTransaction(h$stack[h$sp-1]); + return h$stmStartTransaction(h$stack[h$sp]); } } if(f === h$catchStm_e && !async) break; // catchSTM only catches sync @@ -723,3 +721,24 @@ function h$keepAlive(x, f) { h$r1 = f; return h$ap_1_0_fast(); } + +// It is required by Google Closure Compiler to be at least defined if +// somewhere it is used +var h$libdwLookupLocation, h$libdwPoolRelease, h$libdwPoolTake, + h$libdwGetBacktrace, h$backtraceFree +h$libdwLookupLocation + = h$libdwPoolRelease + = h$libdwPoolTake + = h$libdwGetBacktrace + = h$backtraceFree + = function() { + throw new Error('Libdw: Not Implemented Yet') + } + +// It is required by Google Closure Compiler to be at least defined if +// somewhere it is used +var h$lookupIPE +h$lookupIPE + = function () { + throw new Error('IPE: Not Implemented Yet') + } \ No newline at end of file