parent
2859069dbe
commit
ff39f6e260
2 changed files with 10 additions and 4 deletions
|
|
@ -3,7 +3,13 @@
|
|||
|
||||
## Changes affecting backward compatibility
|
||||
|
||||
|
||||
- The `Math.trunc` polyfill for targeting Internet Explorer was
|
||||
previously emitted for every JavaScript output file except if
|
||||
the symbol `nodejs` was defined via `-d:nodejs`. Now, it is only
|
||||
emitted if the symbol `nimJsMathTruncPolyfill` is defined. If you are
|
||||
targeting Internet Explorer, you may choose to enable this option
|
||||
or define your own `Math.trunc` polyfill using the [`emit` pragma](https://nim-lang.org/docs/manual.html#implementation-specific-pragmas-emit-pragma). Nim uses
|
||||
`Math.trunc` for the division and modulo operators for integers.
|
||||
|
||||
## Standard library additions and changes
|
||||
|
||||
|
|
|
|||
|
|
@ -763,7 +763,8 @@ proc nimParseBiggestFloat(s: string, number: var BiggestFloat, start: int): int
|
|||
|
||||
# Workaround for IE, IE up to version 11 lacks 'Math.trunc'. We produce
|
||||
# 'Math.trunc' for Nim's ``div`` and ``mod`` operators:
|
||||
const jsMathTrunc = """
|
||||
when defined(nimJsMathTruncPolyfill):
|
||||
{.emit: """
|
||||
if (!Math.trunc) {
|
||||
Math.trunc = function(v) {
|
||||
v = +v;
|
||||
|
|
@ -771,5 +772,4 @@ if (!Math.trunc) {
|
|||
return (v - v % 1) || (v < 0 ? -0 : v === 0 ? v : 0);
|
||||
};
|
||||
}
|
||||
"""
|
||||
when not defined(nodejs): {.emit: jsMathTrunc .}
|
||||
""".}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue