Skip to content

Commit 7501666

Browse files
committed
Fix scala-js/scala-js#2877: Internal JS envs config amenable to bincompat evolution.
The internal configuration of (abstract) classes in the JS env API is now `protected def`-based, rather than based on constructor parameters. This can be evolved in binary-compatible ways, as we can add new `protected def`s with default implementations in the superclasses.
1 parent c354793 commit 7501666

File tree

1 file changed

+12
-3
lines changed

1 file changed

+12
-3
lines changed

js-envs/src/main/scala/org/scalajs/jsenv/jsdomnodejs/JSDOMNodeJSEnv.scala

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88

99
package org.scalajs.jsenv.jsdomnodejs
1010

11+
import scala.collection.immutable
12+
1113
import java.io.OutputStream
1214

1315
import org.scalajs.core.tools.io._
@@ -16,14 +18,21 @@ import org.scalajs.jsenv.nodejs.AbstractNodeJSEnv
1618

1719
import org.scalajs.core.ir.Utils.escapeJS
1820

19-
class JSDOMNodeJSEnv(config: JSDOMNodeJSEnv.Config)
20-
extends AbstractNodeJSEnv(config.executable, config.args, config.env,
21-
sourceMap = false) {
21+
class JSDOMNodeJSEnv(config: JSDOMNodeJSEnv.Config) extends AbstractNodeJSEnv {
2222

2323
def this() = this(JSDOMNodeJSEnv.Config())
2424

2525
protected def vmName: String = "Node.js with JSDOM"
2626

27+
protected def executable: String = config.executable
28+
29+
override protected def args: immutable.Seq[String] = config.args
30+
31+
override protected def env: Map[String, String] = config.env
32+
33+
// TODO We might want to make this configurable - not sure why it isn't
34+
override protected def wantSourceMap: Boolean = false
35+
2736
override def jsRunner(files: Seq[VirtualJSFile]): JSRunner =
2837
new DOMNodeRunner(files)
2938

0 commit comments

Comments
 (0)