对不起这里的基本问题。我试图围绕Emscripten,ASM.js,并将低级语言编译为javascript。
这是我不明白的。您可以在本机C程序中执行您不能(也不应该)在基于浏览器的js中执行的操作。例如,在本机应用程序中,您可以访问或文件系统或关闭计算机。
假设我编写了一个读取/ etc / passwd的C程序,然后关闭计算机。然后,我将该程序编译为js并将其弹出<script>
标记。当我访问包含<script>
标记的网页时会发生什么?显然,它不会关闭计算机,但它会编译吗?
在我看来,与低级语言相比,在浏览器中运行的javascript是如此有限,以至于我无法看到如何将任何有意义的应用程序简单地编译为js而不会完全破坏它。
答案 0 :(得分:2)
检查Emscripten docs。例如,它说:
使用Emscripten编译的应用程序通常需要同步I / O, 所以Emscripten本身提供了完全同步的文件系统 接口
但是,由于JavaScript的事件驱动性,最持久 存储选项仅提供异步接口。 Emscripten提供 多个文件系统,可以使用FS.mount()挂载以帮助处理 持久性取决于执行上下文。
如果你向下滚动,你会发现这个:
MEMFS
这是在运行时/当时安装的默认文件系统 初始化。所有文件都严格存在于内存中,并且所有文件都已写入 重新加载页面时会丢失它们。
我相信这应该回答你的问题。在一天结束时,Emscripten / ASM将尝试使用基于JavaScript的polyfill模拟低级细节。