mirror of
https://github.com/nim-lang/Nim.git
synced 2026-04-20 22:35:24 +00:00
fix system for nimscript config files on js backend (#24135)
fixes #21441 When compiling for JS, nimscript config files have both `defined(js)` and `defined(nimscript)` be true at the same time. This is required so that the nimscript config file knows the current compilation is for the JS backend. However the system module doesn't account for this in some cases, defining JS-specific code or not defining nimscript-specific code when compiling such nimscript files. To fix this, have the `nimscript` define take priority over the `js` one.
This commit is contained in:
@@ -2085,7 +2085,8 @@ when notJSnotNims:
|
||||
proc cmpMem(a, b: pointer, size: Natural): int =
|
||||
nimCmpMem(a, b, size).int
|
||||
|
||||
when not defined(js):
|
||||
when not defined(js) or defined(nimscript):
|
||||
# nimscript can be defined if config file for js compilation
|
||||
proc cmp(x, y: string): int =
|
||||
when nimvm:
|
||||
if x < y: result = -1
|
||||
@@ -2365,7 +2366,8 @@ proc finished*[T: iterator {.closure.}](x: T): bool {.noSideEffect, inline, magi
|
||||
from std/private/digitsutils import addInt
|
||||
export addInt
|
||||
|
||||
when defined(js):
|
||||
when defined(js) and not defined(nimscript):
|
||||
# nimscript can be defined if config file for js compilation
|
||||
include "system/jssys"
|
||||
include "system/reprjs"
|
||||
|
||||
|
||||
1
tests/js/tjsnimscombined.nim
Normal file
1
tests/js/tjsnimscombined.nim
Normal file
@@ -0,0 +1 @@
|
||||
import std/jsffi
|
||||
1
tests/js/tjsnimscombined.nims
Normal file
1
tests/js/tjsnimscombined.nims
Normal file
@@ -0,0 +1 @@
|
||||
# test the condition where both `js` and `nimscript` are defined (nimscript receives priority)
|
||||
Reference in New Issue
Block a user