From 83f64e8c1fa25e924ff41943d7abe1511f6465b6 Mon Sep 17 00:00:00 2001 From: "verwaest@chromium.org" Date: Mon, 22 Sep 2014 15:21:19 +0000 Subject: [PATCH] Fix escaped index JSON parsing BUG=416449 LOG=y R=yangguo@chromium.org Review URL: https://codereview.chromium.org/592813002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24125 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- src/json-parser.h | 3 +-- test/mjsunit/regress/regress-json-parse-index.js | 6 ++++++ 2 files changed, 7 insertions(+), 2 deletions(-) create mode 100644 test/mjsunit/regress/regress-json-parse-index.js diff --git a/src/json-parser.h b/src/json-parser.h index caa2e14..d3148c9 100644 --- a/src/json-parser.h +++ b/src/json-parser.h @@ -426,8 +426,7 @@ Handle JsonParser::ParseJsonObject() { if (value.is_null()) return ReportUnexpectedCharacter(); } - JSObject::SetOwnPropertyIgnoreAttributes( - json_object, key, value, NONE).Assert(); + Runtime::DefineObjectProperty(json_object, key, value, NONE).Check(); } while (MatchSkipWhiteSpace(',')); if (c0_ != '}') { return ReportUnexpectedCharacter(); diff --git a/test/mjsunit/regress/regress-json-parse-index.js b/test/mjsunit/regress/regress-json-parse-index.js new file mode 100644 index 0000000..d1a785a --- /dev/null +++ b/test/mjsunit/regress/regress-json-parse-index.js @@ -0,0 +1,6 @@ +// Copyright 2014 the V8 project authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +var o = JSON.parse('{"\\u0030":100}'); +assertEquals(100, o[0]); -- 2.7.4