diff options
author | Allan Sandfeld Jensen <allan.jensen@theqtcompany.com> | 2015-08-14 11:38:45 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@theqtcompany.com> | 2015-08-14 17:16:47 +0000 |
commit | 3a97ca8dd9b96b599ae2d33e40df0dd2f7ea5859 (patch) | |
tree | 43cc572ba067417c7341db81f71ae7cc6e0fcc3e /chromium/v8/src/json-parser.h | |
parent | f61ab1ac7f855cd281809255c0aedbb1895e1823 (diff) | |
download | qtwebengine-chromium-3a97ca8dd9b96b599ae2d33e40df0dd2f7ea5859.tar.gz |
BASELINE: Update chromium to 45.0.2454.40
Change-Id: Id2121d9f11a8fc633677236c65a3e41feef589e4
Reviewed-by: Andras Becsi <andras.becsi@theqtcompany.com>
Diffstat (limited to 'chromium/v8/src/json-parser.h')
-rw-r--r-- | chromium/v8/src/json-parser.h | 35 |
1 files changed, 16 insertions, 19 deletions
diff --git a/chromium/v8/src/json-parser.h b/chromium/v8/src/json-parser.h index 54c78414804..f1fa5647f84 100644 --- a/chromium/v8/src/json-parser.h +++ b/chromium/v8/src/json-parser.h @@ -213,14 +213,13 @@ MaybeHandle<Object> JsonParser<seq_one_byte>::ParseJson() { if (isolate_->has_pending_exception()) return Handle<Object>::null(); // Parse failed. Current character is the unexpected token. - const char* message; Factory* factory = this->factory(); - Handle<JSArray> array; + MessageTemplate::Template message; + Handle<String> argument; switch (c0_) { case kEndOfString: - message = "unexpected_eos"; - array = factory->NewJSArray(0); + message = MessageTemplate::kUnexpectedEOS; break; case '-': case '0': @@ -233,26 +232,21 @@ MaybeHandle<Object> JsonParser<seq_one_byte>::ParseJson() { case '7': case '8': case '9': - message = "unexpected_token_number"; - array = factory->NewJSArray(0); + message = MessageTemplate::kUnexpectedTokenNumber; break; case '"': - message = "unexpected_token_string"; - array = factory->NewJSArray(0); + message = MessageTemplate::kUnexpectedTokenString; break; default: - message = "unexpected_token"; - Handle<Object> name = factory->LookupSingleCharacterStringFromCode(c0_); - Handle<FixedArray> element = factory->NewFixedArray(1); - element->set(0, *name); - array = factory->NewJSArrayWithElements(element); + message = MessageTemplate::kUnexpectedToken; + argument = factory->LookupSingleCharacterStringFromCode(c0_); break; } MessageLocation location(factory->NewScript(source_), position_, position_ + 1); - Handle<Object> error = factory->NewSyntaxError(message, array); + Handle<Object> error = factory->NewSyntaxError(message, argument); return isolate()->template Throw<Object>(error, &location); } return result; @@ -317,7 +311,7 @@ ParseElementResult JsonParser<seq_one_byte>::ParseElement( } else { do { int d = c0_ - '0'; - if (index > 429496729U - ((d > 5) ? 1 : 0)) break; + if (index > 429496729U - ((d + 3) >> 3)) break; index = (index * 10) + d; Advance(); } while (IsDecimalDigit(c0_)); @@ -331,7 +325,8 @@ ParseElementResult JsonParser<seq_one_byte>::ParseElement( AdvanceSkipWhitespace(); Handle<Object> value = ParseJsonValue(); if (!value.is_null()) { - JSObject::SetOwnElement(json_object, index, value, SLOPPY).Assert(); + JSObject::SetOwnElementIgnoreAttributes(json_object, index, value, NONE) + .Assert(); return kElementFound; } else { return kNullHandle; @@ -439,7 +434,8 @@ Handle<Object> JsonParser<seq_one_byte>::ParseJsonObject() { // Commit the intermediate state to the object and stop transitioning. CommitStateToJsonObject(json_object, map, &properties); - Runtime::DefineObjectProperty(json_object, key, value, NONE).Check(); + JSObject::DefinePropertyOrElementIgnoreAttributes(json_object, key, value) + .Check(); } while (transitioning && MatchSkipWhiteSpace(',')); // If we transitioned until the very end, transition the map now. @@ -475,7 +471,8 @@ Handle<Object> JsonParser<seq_one_byte>::ParseJsonObject() { value = ParseJsonValue(); if (value.is_null()) return ReportUnexpectedCharacter(); - Runtime::DefineObjectProperty(json_object, key, value, NONE).Check(); + JSObject::DefinePropertyOrElementIgnoreAttributes(json_object, key, + value).Check(); } } @@ -531,7 +528,7 @@ Handle<Object> JsonParser<seq_one_byte>::ParseJsonArray() { fast_elements->set(i, *elements[i]); } Handle<Object> json_array = factory()->NewJSArrayWithElements( - fast_elements, FAST_ELEMENTS, pretenure_); + fast_elements, FAST_ELEMENTS, Strength::WEAK, pretenure_); return scope.CloseAndEscape(json_array); } |