From cc4283b94594201306831b44905bf0131238725e Mon Sep 17 00:00:00 2001 From: Roland Takacs Date: Mon, 17 Aug 2015 00:32:45 -0700 Subject: [PATCH] Fix assertion 'mem_pools == NULL' fail in JSON.stringify JerryScript-DCO-1.0-Signed-off-by: Roland Takacs rtakacs.u-szeged@partner.samsung.com --- jerry-core/ecma/builtin-objects/ecma-builtin-json.cpp | 4 ++++ tests/jerry/json-stringify.js | 2 ++ 2 files changed, 6 insertions(+) diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-json.cpp b/jerry-core/ecma/builtin-objects/ecma-builtin-json.cpp index e405f43fe..cfbd2e6e6 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-json.cpp +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-json.cpp @@ -1014,6 +1014,10 @@ ecma_builtin_json_stringify (ecma_value_t this_arg __attr_unused___, /**< 'this' ecma_append_to_values_collection (context.property_list_p, item, true); ecma_deref_ecma_string (ecma_get_string_from_value (item)); } + else + { + ecma_free_value (item, true); + } } ECMA_FINALIZE (value); diff --git a/tests/jerry/json-stringify.js b/tests/jerry/json-stringify.js index a381e023d..59aac295e 100644 --- a/tests/jerry/json-stringify.js +++ b/tests/jerry/json-stringify.js @@ -133,6 +133,8 @@ assert (JSON.stringify (object, replacer_function) == '{"c":3,"b":"JSON","a":"FO filter = ["a", "b"]; assert (JSON.stringify (object, filter) == '{"a":"JSON","b":"JSON"}'); +assert (JSON.stringify ([], [ 'foo', 'foo' ]) === '[]'); + number = new Number(2.2); number.toString = {}; number.valueOf = [];