From 499af273593b45a9572564a7d4c71ea9970c7058 Mon Sep 17 00:00:00 2001 From: Ariel Weinberger Date: Sun, 10 May 2020 14:06:59 +0200 Subject: [PATCH 1/5] Cast to number if not already --- src/fake-timers-src.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/fake-timers-src.js b/src/fake-timers-src.js index af38e561..a1ab2a1d 100644 --- a/src/fake-timers-src.js +++ b/src/fake-timers-src.js @@ -72,10 +72,6 @@ function withGlobal(_global) { return Number.isFinite(num); } - if (typeof num !== "number") { - return false; - } - return isFinite(num); } @@ -274,6 +270,10 @@ function withGlobal(_global) { timer.type = timer.immediate ? "Immediate" : "Timeout"; if (timer.hasOwnProperty("delay")) { + if (typeof timer.delay !== 'number') { + timer.delay = praseInt(timer.delay, 10); + } + if (!isNumberFinite(timer.delay)) { timer.delay = 0; } From 0a5dc175e29ecb7e9b2c9bba6a0fe2756e16ac30 Mon Sep 17 00:00:00 2001 From: Ariel Weinberger Date: Sun, 10 May 2020 14:10:50 +0200 Subject: [PATCH 2/5] Use double quotes --- src/fake-timers-src.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/fake-timers-src.js b/src/fake-timers-src.js index a1ab2a1d..6085460f 100644 --- a/src/fake-timers-src.js +++ b/src/fake-timers-src.js @@ -270,7 +270,7 @@ function withGlobal(_global) { timer.type = timer.immediate ? "Immediate" : "Timeout"; if (timer.hasOwnProperty("delay")) { - if (typeof timer.delay !== 'number') { + if (typeof timer.delay !== "number") { timer.delay = praseInt(timer.delay, 10); } From 322c9a8dd5fd10fef8fd0de6ef4869b453ea5f8a Mon Sep 17 00:00:00 2001 From: Ariel Weinberger Date: Sun, 10 May 2020 14:24:43 +0200 Subject: [PATCH 3/5] Fix linting issues --- src/fake-timers-src.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/fake-timers-src.js b/src/fake-timers-src.js index 6085460f..2e54edf3 100644 --- a/src/fake-timers-src.js +++ b/src/fake-timers-src.js @@ -271,7 +271,7 @@ function withGlobal(_global) { if (timer.hasOwnProperty("delay")) { if (typeof timer.delay !== "number") { - timer.delay = praseInt(timer.delay, 10); + timer.delay = parseInt(timer.delay, 10); } if (!isNumberFinite(timer.delay)) { From 74f87f701dbda4d3b5aef78c0c2900abeb47ac21 Mon Sep 17 00:00:00 2001 From: Ariel Weinberger Date: Sun, 10 May 2020 14:30:24 +0200 Subject: [PATCH 4/5] Add tests --- test/fake-timers-test.js | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/test/fake-timers-test.js b/test/fake-timers-test.js index ffc40412..b54a9a83 100644 --- a/test/fake-timers-test.js +++ b/test/fake-timers-test.js @@ -4605,3 +4605,16 @@ describe("#276 - remove config.target", function() { }, /config.target is no longer supported/); }); }); + +describe("issue #315 - praseInt if delay not a number", function() { + it("should successfully execute the timer", function() { + var clock = FakeTimers.install(); + var stub1 = sinon.stub(); + + clock.setTimeout(stub1, "1"); + clock.tick(1); + assert(stub1.calledOnce); + + clock.uninstall(); + }); +}); From a0ac099d869267bbb9daa9e1f7ebd6948ed82974 Mon Sep 17 00:00:00 2001 From: Ariel Weinberger Date: Sun, 10 May 2020 14:30:59 +0200 Subject: [PATCH 5/5] Fix typo --- test/fake-timers-test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/fake-timers-test.js b/test/fake-timers-test.js index b54a9a83..61a83e0f 100644 --- a/test/fake-timers-test.js +++ b/test/fake-timers-test.js @@ -4606,7 +4606,7 @@ describe("#276 - remove config.target", function() { }); }); -describe("issue #315 - praseInt if delay not a number", function() { +describe("issue #315 - praseInt if delay is not a number", function() { it("should successfully execute the timer", function() { var clock = FakeTimers.install(); var stub1 = sinon.stub();