summaryrefslogtreecommitdiff
path: root/deps
diff options
context:
space:
mode:
authorMichaƫl Zasso <targos@protonmail.com>2016-11-19 14:35:49 +0100
committerAnna Henningsen <anna@addaleax.net>2016-11-22 04:42:31 +0100
commit52fd49b7ff05697c2067fdd6d84765e50addbf3e (patch)
tree792d1b4f72a7b2984fc55eabca51e3a6a85efc07 /deps
parent3cbb553df8fefbed7fd09b4b75f1d6f7b611d3b5 (diff)
downloadandroid-node-v8-52fd49b7ff05697c2067fdd6d84765e50addbf3e.tar.gz
android-node-v8-52fd49b7ff05697c2067fdd6d84765e50addbf3e.tar.bz2
android-node-v8-52fd49b7ff05697c2067fdd6d84765e50addbf3e.zip
deps: update V8 to 5.4.500.43
PR-URL: https://github.com/nodejs/node/pull/9697 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net>
Diffstat (limited to 'deps')
-rw-r--r--deps/v8/include/v8-version.h2
-rw-r--r--deps/v8/src/debug/debug.cc5
-rw-r--r--deps/v8/src/lookup.cc8
-rw-r--r--deps/v8/src/property.h3
-rw-r--r--deps/v8/test/debugger/debug/regress/regress-662674.js14
-rw-r--r--deps/v8/test/mjsunit/harmony/private.js4
-rw-r--r--deps/v8/test/mjsunit/regress/regress-private-enumerable.js8
7 files changed, 41 insertions, 3 deletions
diff --git a/deps/v8/include/v8-version.h b/deps/v8/include/v8-version.h
index 01b10d1d68..beb8042d37 100644
--- a/deps/v8/include/v8-version.h
+++ b/deps/v8/include/v8-version.h
@@ -11,7 +11,7 @@
#define V8_MAJOR_VERSION 5
#define V8_MINOR_VERSION 4
#define V8_BUILD_NUMBER 500
-#define V8_PATCH_LEVEL 41
+#define V8_PATCH_LEVEL 43
// Use 1 for candidates and 0 otherwise.
// (Boolean macro values are not supported by all preprocessors.)
diff --git a/deps/v8/src/debug/debug.cc b/deps/v8/src/debug/debug.cc
index e04695771b..cce167f942 100644
--- a/deps/v8/src/debug/debug.cc
+++ b/deps/v8/src/debug/debug.cc
@@ -1701,6 +1701,11 @@ MaybeHandle<Object> Debug::PromiseHasUserDefinedRejectHandler(
void Debug::OnException(Handle<Object> exception, Handle<Object> promise) {
+ // We cannot generate debug events when JS execution is disallowed.
+ // TODO(5530): Reenable debug events within DisallowJSScopes once relevant
+ // code (MakeExceptionEvent and ProcessDebugEvent) have been moved to C++.
+ if (!AllowJavascriptExecution::IsAllowed(isolate_)) return;
+
Isolate::CatchType catch_type = isolate_->PredictExceptionCatcher();
// Don't notify listener of exceptions that are internal to a desugaring.
diff --git a/deps/v8/src/lookup.cc b/deps/v8/src/lookup.cc
index 54015d44c6..727465ee80 100644
--- a/deps/v8/src/lookup.cc
+++ b/deps/v8/src/lookup.cc
@@ -308,6 +308,11 @@ void LookupIterator::PrepareTransitionToDataProperty(
PropertyAttributes attributes, Object::StoreFromKeyed store_mode) {
DCHECK(receiver.is_identical_to(GetStoreTarget()));
if (state_ == TRANSITION) return;
+
+ if (!IsElement() && name()->IsPrivate()) {
+ attributes = static_cast<PropertyAttributes>(attributes | DONT_ENUM);
+ }
+
DCHECK(state_ != LookupIterator::ACCESSOR ||
(GetAccessors()->IsAccessorInfo() &&
AccessorInfo::cast(*GetAccessors())->is_special_data_property()));
@@ -447,6 +452,9 @@ void LookupIterator::TransitionToAccessorProperty(
// handled via a trap. Adding properties to primitive values is not
// observable.
Handle<JSObject> receiver = GetStoreTarget();
+ if (!IsElement() && name()->IsPrivate()) {
+ attributes = static_cast<PropertyAttributes>(attributes | DONT_ENUM);
+ }
if (!IsElement() && !receiver->map()->is_dictionary_map()) {
Handle<Map> old_map(receiver->map(), isolate_);
diff --git a/deps/v8/src/property.h b/deps/v8/src/property.h
index add9e4d11b..ebe7d3b673 100644
--- a/deps/v8/src/property.h
+++ b/deps/v8/src/property.h
@@ -36,6 +36,7 @@ class Descriptor BASE_EMBEDDED {
void Init(Handle<Name> key, Handle<Object> value, PropertyDetails details) {
DCHECK(key->IsUniqueName());
+ DCHECK_IMPLIES(key->IsPrivate(), !details.IsEnumerable());
key_ = key;
value_ = value;
details_ = details;
@@ -44,6 +45,7 @@ class Descriptor BASE_EMBEDDED {
Descriptor(Handle<Name> key, Handle<Object> value, PropertyDetails details)
: key_(key), value_(value), details_(details) {
DCHECK(key->IsUniqueName());
+ DCHECK_IMPLIES(key->IsPrivate(), !details_.IsEnumerable());
}
Descriptor(Handle<Name> key, Handle<Object> value,
@@ -53,6 +55,7 @@ class Descriptor BASE_EMBEDDED {
value_(value),
details_(attributes, type, representation, field_index) {
DCHECK(key->IsUniqueName());
+ DCHECK_IMPLIES(key->IsPrivate(), !details_.IsEnumerable());
}
friend class DescriptorArray;
diff --git a/deps/v8/test/debugger/debug/regress/regress-662674.js b/deps/v8/test/debugger/debug/regress/regress-662674.js
new file mode 100644
index 0000000000..46054a5cd9
--- /dev/null
+++ b/deps/v8/test/debugger/debug/regress/regress-662674.js
@@ -0,0 +1,14 @@
+// Copyright 2016 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.
+
+// Flags: --stack-size=100
+
+Debug = debug.Debug
+
+function overflow() {
+ return overflow();
+}
+
+Debug.setBreakOnException();
+assertThrows(overflow, RangeError);
diff --git a/deps/v8/test/mjsunit/harmony/private.js b/deps/v8/test/mjsunit/harmony/private.js
index d44ff33aca..7d34db40a8 100644
--- a/deps/v8/test/mjsunit/harmony/private.js
+++ b/deps/v8/test/mjsunit/harmony/private.js
@@ -278,8 +278,8 @@ function TestKeyDescriptor(obj) {
assertEquals(i|0, desc.value)
assertTrue(desc.configurable)
assertEquals(i % 2 == 0, desc.writable)
- assertEquals(i % 2 == 0, desc.enumerable)
- assertEquals(i % 2 == 0,
+ assertEquals(false, desc.enumerable)
+ assertEquals(false,
Object.prototype.propertyIsEnumerable.call(obj, symbols[i]))
}
}
diff --git a/deps/v8/test/mjsunit/regress/regress-private-enumerable.js b/deps/v8/test/mjsunit/regress/regress-private-enumerable.js
new file mode 100644
index 0000000000..ad41b51bae
--- /dev/null
+++ b/deps/v8/test/mjsunit/regress/regress-private-enumerable.js
@@ -0,0 +1,8 @@
+// Copyright 2016 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.
+
+class A {}
+class B {}
+Object.assign(B, A);
+assertEquals("class B {}", B.toString());