diff options
author | Ali Ijaz Sheikh <ofrobots@google.com> | 2016-03-01 08:58:05 -0800 |
---|---|---|
committer | Ali Sheikh <ofrobots@lemonhope.roam.corp.google.com> | 2016-03-03 20:35:20 -0800 |
commit | 069e02ab47656b3efd1b6829c65856b2e1c2d1db (patch) | |
tree | eb643e0a2e88fd64bb9fc927423458d2ae96c2db /deps/v8/src/json-stringifier.h | |
parent | 8938355398c79f583a468284b768652d12ba9bc9 (diff) | |
download | android-node-v8-069e02ab47656b3efd1b6829c65856b2e1c2d1db.tar.gz android-node-v8-069e02ab47656b3efd1b6829c65856b2e1c2d1db.tar.bz2 android-node-v8-069e02ab47656b3efd1b6829c65856b2e1c2d1db.zip |
deps: upgrade to V8 4.9.385.18
Pick up the current branch head for V8 4.9
https://github.com/v8/v8/commit/1ecba0f
PR-URL: https://github.com/nodejs/node/pull/4722
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Michaƫl Zasso <mic.besace@gmail.com>
Diffstat (limited to 'deps/v8/src/json-stringifier.h')
-rw-r--r-- | deps/v8/src/json-stringifier.h | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/deps/v8/src/json-stringifier.h b/deps/v8/src/json-stringifier.h index 8bcef34c79..5c0459eb1b 100644 --- a/deps/v8/src/json-stringifier.h +++ b/deps/v8/src/json-stringifier.h @@ -337,14 +337,13 @@ BasicJsonStringifier::Result BasicJsonStringifier::Serialize_( case JS_VALUE_TYPE: if (deferred_string_key) SerializeDeferredKey(comma, key); return SerializeJSValue(Handle<JSValue>::cast(object)); - case JS_FUNCTION_TYPE: - return UNCHANGED; default: if (object->IsString()) { if (deferred_string_key) SerializeDeferredKey(comma, key); SerializeString(Handle<String>::cast(object)); return SUCCESS; } else if (object->IsJSObject()) { + if (object->IsCallable()) return UNCHANGED; // Go to slow path for global proxy and objects requiring access checks. if (object->IsAccessCheckNeeded() || object->IsJSGlobalProxy()) break; if (deferred_string_key) SerializeDeferredKey(comma, key); @@ -397,9 +396,10 @@ BasicJsonStringifier::Result BasicJsonStringifier::SerializeJSValue( DCHECK(value->IsBoolean()); builder_.AppendCString(value->IsTrue() ? "true" : "false"); } else { - // Fail gracefully for special value wrappers. - isolate_->ThrowIllegalOperation(); - return EXCEPTION; + // ES6 24.3.2.1 step 10.c, serialize as an ordinary JSObject. + CHECK(!object->IsAccessCheckNeeded()); + CHECK(!object->IsJSGlobalProxy()); + return SerializeJSObject(object); } return SUCCESS; } @@ -567,7 +567,7 @@ BasicJsonStringifier::Result BasicJsonStringifier::SerializeJSObject( Handle<FixedArray> contents; ASSIGN_RETURN_ON_EXCEPTION_VALUE( isolate_, contents, - JSReceiver::GetKeys(object, JSReceiver::OWN_ONLY), + JSReceiver::GetKeys(object, JSReceiver::OWN_ONLY, ENUMERABLE_STRINGS), EXCEPTION); for (int i = 0; i < contents->length(); i++) { |