Release 2.0.13 and update bazel toolchain (#694)

This change comes with fairly major change to the bazel toolchain.

- Use pre-built cache that comes with emsdk
- Mark cache as readonly using FROZEN_CACHE
- Pass `--sysroot` to match upstream emscripten change
diff --git a/bazel/WORKSPACE b/bazel/WORKSPACE
index d7c68a4..e8c0225 100644
--- a/bazel/WORKSPACE
+++ b/bazel/WORKSPACE
@@ -8,12 +8,12 @@
 
 load("@build_bazel_rules_nodejs//:index.bzl", "npm_install")
 
-# emscripten 2.0.12
+# emscripten 2.0.13
 http_archive(
     name = "emscripten",
-    sha256 = "bfff9fb0326363c12e19b542f27a5f12cedbfc310f30621dc497c9af51d2d2e3",
+    sha256 = "8986ed886e111c661099c5147126b8a379a4040aab6a1f572fe01f0f9b99a343",
     strip_prefix = "install",
-    url = "https://storage.googleapis.com/webassembly/emscripten-releases-builds/linux/dcf819a7821f8db0c8f15ac336fea8960ec204f5/wasm-binaries.tbz2",
+    url = "https://storage.googleapis.com/webassembly/emscripten-releases-builds/linux/ce0e4a4d1cab395ee5082a60ebb4f3891a94b256/wasm-binaries.tbz2",
     build_file = "//emscripten_toolchain:emscripten.BUILD",
     type = "tar.bz2",
 )
diff --git a/bazel/emscripten_toolchain/crosstool.bzl b/bazel/emscripten_toolchain/crosstool.bzl
index 31b516e..82c5ce1 100644
--- a/bazel/emscripten_toolchain/crosstool.bzl
+++ b/bazel/emscripten_toolchain/crosstool.bzl
@@ -70,9 +70,8 @@
 
     cc_target_os = "emscripten"
     emscripten_version = ctx.attr.emscripten_version
-    emscripten_root = "external/emscripten/" + emscripten_version
 
-    builtin_sysroot = None
+    builtin_sysroot = "external/emscripten/emscripten/cache/sysroot"
 
     ################################################################
     # Tools
@@ -513,14 +512,7 @@
         # Language Features
         flag_set(
             actions = all_cpp_compile_actions,
-            flags = [
-                "-std=gnu++17",
-                "-nostdinc",
-                "-Xclang",
-                "-nobuiltininc",
-                "-Xclang",
-                "-nostdsysteminc",
-            ],
+            flags = ["-std=gnu++17", "-nostdinc", "-nostdinc++",],
         ),
 
         # Emscripten-specific settings:
@@ -904,30 +896,10 @@
             actions = preprocessor_compile_actions +
                       [ACTION_NAMES.cc_flags_make_variable],
             flags = [
-                "-isystem",
-                emscripten_root + "/system/lib/libc/musl/arch/emscripten",
-                "-isystem",
-                emscripten_root + "/system/lib/libc/musl/arch/js",
-                "-isystem",
-                emscripten_root + "/system/local/include",
-                "-isystem",
-                emscripten_root + "/system/include/compat",
-                "-isystem",
-                emscripten_root + "/system/include",
-                "-isystem",
-                emscripten_root + "/system/include/libcxx",
-                "-isystem",
-                emscripten_root + "/system/lib/libcxxabi/include",
-                "-isystem",
-                emscripten_root + "/system/lib/compiler-rt/include",
-                "-isystem",
-                emscripten_root + "/system/include/libc",
-                "-isystem",
-                emscripten_root + "/system/include/gfx",
-                "-isystem",
-                emscripten_root + "/system/include/SDL",
-                "-isystem",
-                emscripten_root + "/lib/clang/12.0.0/include",
+                "-iwithsysroot" + "/include/c++/v1",
+                "-iwithsysroot" + "/include/compat",
+                "-iwithsysroot" + "/include",
+                "-isystem", "external/emscripten/lib/clang/12.0.0/include",
             ],
         ),
         # Inputs and outputs
@@ -1070,18 +1042,10 @@
     features.append(crosstool_default_flags_feature)
 
     cxx_builtin_include_directories = [
-        emscripten_version + "/system/lib/libc/musl/arch/emscripten",
-        emscripten_version + "/system/lib/libc/musl/arch/js",
-        emscripten_version + "/system/local/include",
-        emscripten_version + "/system/include/compat",
-        emscripten_version + "/system/include",
-        emscripten_version + "/system/include/libcxx",
-        emscripten_version + "/system/lib/compiler-rt/include",
-        emscripten_version + "/system/lib/libcxxabi/include",
-        emscripten_version + "/system/include/libc",
-        emscripten_version + "/system/include/gfx",
-        emscripten_version + "/system/include/SDL",
-        emscripten_version + "/lib/clang/12.0.0/include",
+        "external/emscripten/emscripten/cache/sysroot/include/c++/v1",
+        "external/emscripten/emscripten/cache/sysroot/include/compat",
+        "external/emscripten/emscripten/cache/sysroot/include",
+        "external/emscripten/lib/clang/12.0.0/include",
     ]
 
     artifact_name_patterns = []
diff --git a/bazel/emscripten_toolchain/emscripten_config b/bazel/emscripten_toolchain/emscripten_config
index 02a1a54..b7948ac 100644
--- a/bazel/emscripten_toolchain/emscripten_config
+++ b/bazel/emscripten_toolchain/emscripten_config
@@ -3,11 +3,10 @@
 
 ROOT_DIR = os.environ["ROOT_DIR"]
 EMSCRIPTEN_ROOT = os.environ["EMSCRIPTEN"]
-
 LLVM_ROOT = ROOT_DIR + "/external/emscripten/bin"
-EMSCRIPTEN_NATIVE_OPTIMIZER = LLVM_ROOT + "/optimizer"
+BINARYEN_ROOT = ROOT_DIR + "/external/emscripten"
+FROZEN_CACHE = True
 
 system = platform.system()
 nodejs_binary = "node.exe" if(system =="Windows") else "bin/node"
 NODE_JS = ROOT_DIR + "/external/nodejs_{}_amd64/{}".format(system.lower(), nodejs_binary)
-BINARYEN_ROOT = ROOT_DIR + "/external/emscripten"
\ No newline at end of file
diff --git a/bazel/emscripten_toolchain/env.sh b/bazel/emscripten_toolchain/env.sh
index 005fa87..dfb4ddc 100755
--- a/bazel/emscripten_toolchain/env.sh
+++ b/bazel/emscripten_toolchain/env.sh
@@ -2,6 +2,4 @@
 
 export ROOT_DIR=`(pwd -P)`
 export EMSCRIPTEN=${ROOT_DIR}/external/emscripten/emscripten
-
 export EM_CONFIG=${ROOT_DIR}/emscripten_toolchain/emscripten_config
-export EM_CACHE=${ROOT_DIR}/emscripten_toolchain/cache
diff --git a/emscripten-releases-tags.txt b/emscripten-releases-tags.txt
index a48f06b..61a3456 100644
--- a/emscripten-releases-tags.txt
+++ b/emscripten-releases-tags.txt
@@ -1,6 +1,7 @@
 {
-  "latest": "2.0.12",
+  "latest": "2.0.13",
   "releases": {
+    "2.0.13":  "ce0e4a4d1cab395ee5082a60ebb4f3891a94b256",
     "2.0.12":  "dcf819a7821f8db0c8f15ac336fea8960ec204f5",
     "2.0.11":  "4764c5c323a474f7ba28ae991b0c9024fccca43c",
     "2.0.10":  "37fc7647c754ac9a28ad588c143b82286de0ef71",
diff --git a/scripts/test_bazel.sh b/scripts/test_bazel.sh
index f1ba3c9..67145c4 100755
--- a/scripts/test_bazel.sh
+++ b/scripts/test_bazel.sh
@@ -13,7 +13,7 @@
 HASH=$(grep "${VER}" emscripten-releases-tags.txt \
       | grep -v latest \
       | cut -f4 -d\")
-      
+
 FAILMSG="!!! scripts/update_bazel_toolchain.sh needs to be run !!!"
 
 # Ensure the WORKSPACE file is up to date with the latest version.