是否可以将Scala编译传输到浏览器,同时保持解释用户动态提供的Scala代码的能力?

问题描述

我知道Scala.js可以转换为JS,但是它不支持反射。 有什么方法可以解释用户提供的Scala代码而又不会重复到服务器端?

如果无法以这种方式解释Scala,是否可以从Scala代码(即从将要编译的Scala代码)运行用户提供的JavaScript代码

解决方法

第一个问题:不,那是不可能的。出于多种原因,Scala编译器无法编译为JavaScript,这使得无法在浏览器中编译用户提供的代码。

对于第二个问题:是,使用js.eval(dynamicJSCodeString)。有关eval和安全性的标准警告。

,

第一个问题:是的,这绝对是可能的。您只需要用ECMAScript或存在ECMAScript编译器的语言(例如TypeScript,CoffeeScript,Python,Ruby,Kotlin或当然是Scala)编写Scala解释器,或使用存在该解释器的语言来编写用ECMAScript或存在ECMAScript编译器的语言来编写……当然,您也可以链接这些方法。