Skip to content

Commit 94dd5da

Browse files
committed
wip
1 parent 030865f commit 94dd5da

File tree

2 files changed

+31
-7
lines changed

2 files changed

+31
-7
lines changed

project/Build.scala

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1259,6 +1259,7 @@ object Build {
12591259

12601260
++ conditionally(!hasModules, "js/src/test/require-no-modules")
12611261
++ conditionally(hasModules, "js/src/test/require-modules")
1262+
++ conditionally(hasModules && !linkerConfig.closureCompiler, "js/src/test/require-multi-modules")
12621263
++ conditionally(moduleKind == ModuleKind.ESModule, "js/src/test/require-dynamic-import")
12631264
++ conditionally(moduleKind == ModuleKind.ESModule, "js/src/test/require-esmodule")
12641265
)

sandbox/scalajs/src/hello.scala

Lines changed: 30 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,38 @@
11
package hello
22

3-
import scala.scalajs.js
3+
import scala.concurrent._
4+
import scala.concurrent.ExecutionContext.Implicits.global
45

5-
trait MyTrait {
6-
val x = 5
7-
def foo(y: Int) = x
8-
}
6+
import scala.scalajs.js
7+
import scala.scalajs.js.annotation._
98

10-
object HelloWorld extends MyTrait {
9+
object HelloWorld {
1110
def main(args: Array[String]): Unit = {
1211
println("hello dotty.js!")
13-
println(foo(4))
12+
new Test().localDefDynamic().onComplete(println(_))
1413
}
1514
}
15+
16+
class Test {
17+
def localDefDynamic(): Future[Unit] = {
18+
assertDynamicLoad {
19+
js.dynamicImport {
20+
def test(x: Int) = FailureOnLoad
21+
test(2)
22+
}
23+
}
24+
}
25+
26+
private def assertDynamicLoad[T](promise: js.Promise[T]): Future[Unit] = {
27+
promise.toFuture
28+
.map(_ => throw new AssertionError("expected failure"))
29+
.recover {
30+
case js.JavaScriptException(e: js.Error)
31+
if e.message == "load failure for test" =>
32+
}
33+
}
34+
}
35+
36+
@JSImport("../test-classes/fail-load.js", JSImport.Default)
37+
@js.native
38+
private object FailureOnLoad extends js.Object

0 commit comments

Comments
 (0)