From 0bf14a3d0c940b423efd2aeb0549923fc52e8d56 Mon Sep 17 00:00:00 2001 From: Jacek Migdal Date: Sun, 7 Dec 2014 18:56:25 -0800 Subject: [PATCH] Don't rely on JSON.parse() for page.evaluate(). https://github.com/ariya/phantomjs/issues/12615 --- src/modules/webpage.js | 2 +- test/module/webpage/evaluate-broken-json.js | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/modules/webpage.js b/src/modules/webpage.js index fd65b2a8..5c19a034 100644 --- a/src/modules/webpage.js +++ b/src/modules/webpage.js @@ -371,7 +371,7 @@ function decorateNewPage(opts, page) { case "object": //< for type "object" case "array": //< for type "array" case "date": //< for type "date" - str += "JSON.parse(" + JSON.stringify(JSON.stringify(arg)) + ")," + str += JSON.stringify(arg) + "," break; case "string": //< for type "string" str += quoteString(arg) + ','; diff --git a/test/module/webpage/evaluate-broken-json.js b/test/module/webpage/evaluate-broken-json.js index a801b93e..8a31ecf6 100644 --- a/test/module/webpage/evaluate-broken-json.js +++ b/test/module/webpage/evaluate-broken-json.js @@ -10,5 +10,4 @@ var result = page.evaluate(function(obj) { return obj.value * obj.value; }, { value: 4 }); -// FAIL -// assert.equal(result, 16); +assert.equal(result, 16);