From 7b7e44c40899093f0563bebc2ed39e3c33d1521a Mon Sep 17 00:00:00 2001 From: Ash Searle Date: Tue, 8 Aug 2017 08:55:02 +0100 Subject: [PATCH] Fix: Math.sign isn't supported by IE --- src/lib/duration/iso-string.js | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/lib/duration/iso-string.js b/src/lib/duration/iso-string.js index 721cec4a8..6f706c9b0 100644 --- a/src/lib/duration/iso-string.js +++ b/src/lib/duration/iso-string.js @@ -1,6 +1,10 @@ import absFloor from '../utils/abs-floor'; var abs = Math.abs; +function sign(x) { + return ((x > 0) - (x < 0)) || +x; +} + export function toISOString() { // for ISO strings we do not use the normal bubbling rules: // * milliseconds bubble up until they become hours @@ -39,9 +43,9 @@ export function toISOString() { var total = this.asSeconds(); var totalSign = total < 0 ? '-' : ''; - var ymSign = Math.sign(total) === Math.sign(this._months) ? '' : '-'; - var daysSign = Math.sign(total) === Math.sign(this._days) ? '' : '-'; - var hmsSign = Math.sign(total) === Math.sign(this._milliseconds) ? '' : '-'; + var ymSign = sign(total) === sign(this._months) ? '' : '-'; + var daysSign = sign(total) === sign(this._days) ? '' : '-'; + var hmsSign = sign(total) === sign(this._milliseconds) ? '' : '-'; if (!total) { // this is the same as C#'s (Noda) and python (isodate)... -- 2.47.2