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