Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion build.mill
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ import mill.javalib.publish.{PublishingType, SonatypeCredentials}

object Versions {
def scala213 = "2.13.18"
def scalaJsVersion = "1.21.0"
def scalaJsVersion = "1.22.0"
def jsoniterVersion = "2.38.14"
def scalaJsImportMapVersion = "0.1.1"
def graalVmVersion = "22.3.1"
Expand Down
28 changes: 25 additions & 3 deletions cli/src/org/scalajs/cli/Scalajsld.scala
Original file line number Diff line number Diff line change
Expand Up @@ -304,12 +304,36 @@ object Scalajsld {

val useClosure = options.fullOpt && options.moduleKind != ModuleKind.ESModule

val logger = new ScalaConsoleLogger(options.logLevel)

val esFeatures =
if (options.emitWasm) {
val esVersion =
if (options.esFeatures.esVersion >= ESVersion.ES2022)
options.esFeatures.esVersion
else if (options.esFeatures == ESFeatures.Defaults) {
logger.debug(
s"WebAssembly backend requires ECMAScript 2022 or later, defaulting to ${ESVersion.ES2022}"
)
ESVersion.ES2022
}
else {
logger.warn(
s"""WebAssembly backend requires ECMAScript 2022 or later, using ${options.esFeatures.esVersion}"""
)
options.esFeatures.esVersion
}
options.esFeatures.withESVersion(esVersion).withUseWebAssembly(true)
}
else
options.esFeatures

val config = StandardConfig()
.withSemantics(semantics)
.withModuleKind(options.moduleKind)
.withModuleSplitStyle(moduleSplitStyle)
.withOutputPatterns(options.outputPatterns)
.withESFeatures(options.esFeatures)
.withESFeatures(esFeatures)
.withCheckIR(options.checkIR)
.withOptimizer(!options.noOpt)
.withParallel(true)
Expand All @@ -320,10 +344,8 @@ object Scalajsld {
.withBatchMode(true)
.withJSHeader(options.jsHeader)
.withMinify(options.fullOpt)
.withExperimentalUseWebAssembly(options.emitWasm)

val linker = StandardImpl.linker(config)
val logger = new ScalaConsoleLogger(options.logLevel)
val cache = StandardImpl.irFileCache().newCache

val stdinLinesIterator = scala.io.Source.stdin.getLines()
Expand Down
12 changes: 11 additions & 1 deletion cli/src/org/scalajs/cli/internal/EsVersionParser.scala
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,11 @@ object EsVersionParser {
case "es2019" => ESVersion.ES2019
case "es2020" => ESVersion.ES2020
case "es2021" => ESVersion.ES2021
case "es2022" => ESVersion.ES2022
case "es2023" => ESVersion.ES2023
case "es2024" => ESVersion.ES2024
case "es2025" => ESVersion.ES2025
case "es2026" => ESVersion.ES2026
case unknown =>
throw new IllegalArgumentException(
s"Warning: unrecognized argument: $unknown for --esVersion parameter"
Expand All @@ -30,6 +35,11 @@ object EsVersionParser {
ESVersion.ES2018,
ESVersion.ES2019,
ESVersion.ES2020,
ESVersion.ES2021
ESVersion.ES2021,
ESVersion.ES2022,
ESVersion.ES2023,
ESVersion.ES2024,
ESVersion.ES2025,
ESVersion.ES2026
)
}
Loading