Importing this module from your project will tell nitc
to compile
to JavaScript for the emscripten framework.
emscripten :: emscripten $ Text
High-level abstraction for all text representationsemscripten :: emscripten $ Text
High-level abstraction for all text representationscore :: union_find
union–find algorithm using an efficient disjoint-set data structure
# Platform for the _emscripten_ framework
#
# Importing this module from your project will tell `nitc` to compile
# to JavaScript for the _emscripten_ framework.
module emscripten is platform
`{
#include <emscripten.h>
#include <gc.h>
`}
redef class Text
# Run `self` as JavaScript code
fun run_js do run_js_native(self.escape_to_js.to_cstring)
private fun run_js_native(script: CString) `{ emscripten_run_script(script); `}
# Escape the content of `self` to pass to JavaScript code
fun escape_to_js: Text do return replace('\n', "\\n")
# Raise a JavaScript alert
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
lib/emscripten/emscripten.nit:17,1--46,3