summaryrefslogtreecommitdiff
path: root/chromium/v8/src/json-parser.h
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@theqtcompany.com>2015-08-14 11:38:45 +0200
committerAllan Sandfeld Jensen <allan.jensen@theqtcompany.com>2015-08-14 17:16:47 +0000
commit3a97ca8dd9b96b599ae2d33e40df0dd2f7ea5859 (patch)
tree43cc572ba067417c7341db81f71ae7cc6e0fcc3e /chromium/v8/src/json-parser.h
parentf61ab1ac7f855cd281809255c0aedbb1895e1823 (diff)
downloadqtwebengine-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.h35
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);
}