Title: [261857] trunk/Source/_javascript_Core
- Revision
- 261857
- Author
- you...@apple.com
- Date
- 2020-05-19 07:01:10 -0700 (Tue, 19 May 2020)
Log Message
[ Mac wk1 Debug ] imported/w3c/web-platform-tests/fetch/api/basic/stream-safe-creation.any.html is flaky crashing with alerts - WTFCrashWithInfo - SC::JSObject::get(JSC::JSGlobalObject*, JSC::PropertyName)
https://bugs.webkit.org/show_bug.cgi?id=211923
<rdar://problem/63244249>
Reviewed by Mark Lam.
* runtime/JSObject.h:
(JSC::JSObject::get const):
When calling get, a terminate exception might happen if running in workers.
Return early in that case. Add an ASSERT that only terminated exceptions can actually happen.
Modified Paths
Diff
Modified: trunk/Source/_javascript_Core/ChangeLog (261856 => 261857)
--- trunk/Source/_javascript_Core/ChangeLog 2020-05-19 13:57:49 UTC (rev 261856)
+++ trunk/Source/_javascript_Core/ChangeLog 2020-05-19 14:01:10 UTC (rev 261857)
@@ -1,3 +1,16 @@
+2020-05-19 Youenn Fablet <you...@apple.com>
+
+ [ Mac wk1 Debug ] imported/w3c/web-platform-tests/fetch/api/basic/stream-safe-creation.any.html is flaky crashing with alerts - WTFCrashWithInfo - SC::JSObject::get(JSC::JSGlobalObject*, JSC::PropertyName)
+ https://bugs.webkit.org/show_bug.cgi?id=211923
+ <rdar://problem/63244249>
+
+ Reviewed by Mark Lam.
+
+ * runtime/JSObject.h:
+ (JSC::JSObject::get const):
+ When calling get, a terminate exception might happen if running in workers.
+ Return early in that case. Add an ASSERT that only terminated exceptions can actually happen.
+
2020-05-18 Andy Estes <aes...@apple.com>
http/tests/ssl/applepay/ApplePayInstallmentConfiguration.https.html fails in public SDK builds
Modified: trunk/Source/_javascript_Core/runtime/JSObject.h (261856 => 261857)
--- trunk/Source/_javascript_Core/runtime/JSObject.h 2020-05-19 13:57:49 UTC (rev 261856)
+++ trunk/Source/_javascript_Core/runtime/JSObject.h 2020-05-19 14:01:10 UTC (rev 261857)
@@ -73,6 +73,7 @@
struct HashTable;
struct HashTableValue;
+JS_EXPORT_PRIVATE bool isTerminatedExecutionException(VM&, Exception*);
JS_EXPORT_PRIVATE Exception* throwTypeError(JSGlobalObject*, ThrowScope&, const String&);
extern JS_EXPORT_PRIVATE const ASCIILiteral NonExtensibleObjectPropertyDefineError;
extern JS_EXPORT_PRIVATE const ASCIILiteral ReadonlyPropertyWriteError;
@@ -1490,7 +1491,10 @@
auto scope = DECLARE_THROW_SCOPE(vm);
PropertySlot slot(this, PropertySlot::InternalMethodType::Get);
bool hasProperty = const_cast<JSObject*>(this)->getPropertySlot(globalObject, propertyName, slot);
- EXCEPTION_ASSERT(!scope.exception() || !hasProperty);
+
+ EXCEPTION_ASSERT(!scope.exception() || isTerminatedExecutionException(vm, scope.exception()) || !hasProperty);
+ RETURN_IF_EXCEPTION(scope, jsUndefined());
+
if (hasProperty)
RELEASE_AND_RETURN(scope, slot.getValue(globalObject, propertyName));
@@ -1503,7 +1507,10 @@
auto scope = DECLARE_THROW_SCOPE(vm);
PropertySlot slot(this, PropertySlot::InternalMethodType::Get);
bool hasProperty = const_cast<JSObject*>(this)->getPropertySlot(globalObject, propertyName, slot);
- EXCEPTION_ASSERT(!scope.exception() || !hasProperty);
+
+ EXCEPTION_ASSERT(!scope.exception() || isTerminatedExecutionException(vm, scope.exception()) || !hasProperty);
+ RETURN_IF_EXCEPTION(scope, jsUndefined());
+
if (hasProperty)
RELEASE_AND_RETURN(scope, slot.getValue(globalObject, propertyName));
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes