X-Git-Url: http://nitlanguage.org diff --git a/lib/emscripten.nit b/lib/emscripten.nit index 65fe1f4..d46f4d1 100644 --- a/lib/emscripten.nit +++ b/lib/emscripten.nit @@ -15,3 +15,24 @@ # limitations under the License. module emscripten is platform + +`{ + #include + #include +`} + +redef class String + fun run_js do run_js_native(self.escape_to_js.to_cstring) + private fun run_js_native(script: NativeString) `{ emscripten_run_script(script); `} + + fun escape_to_js: String do return self.replace('\n', "\\n") + + fun alert do "alert('{self.escape_to_js}')".run_js +end + +redef class Sys + redef fun force_garbage_collection `{ GC_FORCE_COLLECT(); `} + + # The emscripten GC *must* be manually invoked, it will not act by itself + fun suggest_garbage_collection `{ GC_MAYBE_COLLECT(); `} +end