Modified: trunk/Source/_javascript_Core/ChangeLog (220470 => 220471)
--- trunk/Source/_javascript_Core/ChangeLog 2017-08-09 18:24:25 UTC (rev 220470)
+++ trunk/Source/_javascript_Core/ChangeLog 2017-08-09 18:31:24 UTC (rev 220471)
@@ -1,3 +1,14 @@
+2017-08-09 Robin Morisset <[email protected]>
+
+ Make JSC_validateExceptionChecks=1 succeed on JSTests/stress/v8-deltablue-strict.js.
+ https://bugs.webkit.org/show_bug.cgi?id=175358
+
+ Reviewed by Mark Lam.
+
+ * jit/JITOperations.cpp:
+ * runtime/JSObjectInlines.h:
+ (JSC::JSObject::putInlineForJSObject):
+
2017-08-09 Ryan Haddad <[email protected]>
Unreviewed, rolling out r220457.
Modified: trunk/Source/_javascript_Core/jit/JITOperations.cpp (220470 => 220471)
--- trunk/Source/_javascript_Core/jit/JITOperations.cpp 2017-08-09 18:24:25 UTC (rev 220470)
+++ trunk/Source/_javascript_Core/jit/JITOperations.cpp 2017-08-09 18:31:24 UTC (rev 220471)
@@ -956,7 +956,6 @@
JSObject* error = functionExecutable->prepareForExecution<FunctionExecutable>(*vm, callee, scope, kind, *codeBlockSlot);
ASSERT(throwScope.exception() == reinterpret_cast<Exception*>(error));
if (error) {
- throwException(exec, throwScope, error);
return encodeResult(
vm->getCTIStub(throwExceptionFromCallSlowPathGenerator).code().executableAddress(),
reinterpret_cast<void*>(KeepTheFrame));
@@ -1014,11 +1013,9 @@
RELEASE_ASSERT(isCall(kind) || functionExecutable->constructAbility() != ConstructAbility::CannotConstruct);
JSObject* error = functionExecutable->prepareForExecution<FunctionExecutable>(*vm, callee, scope, kind, codeBlock);
- ASSERT(throwScope.exception() == reinterpret_cast<Exception*>(error));
- if (error) {
- throwException(exec, throwScope, error);
+ ASSERT_UNUSED(throwScope, throwScope.exception() == reinterpret_cast<Exception*>(error));
+ if (error)
return;
- }
ArityCheckMode arity;
unsigned argumentStackSlots = callLinkInfo->maxNumArguments();
if (argumentStackSlots < static_cast<size_t>(codeBlock->numParameters()))
@@ -1061,8 +1058,8 @@
CodeBlock** codeBlockSlot = execCallee->addressOfCodeBlock();
JSObject* error = functionExecutable->prepareForExecution<FunctionExecutable>(*vm, function, scope, kind, *codeBlockSlot);
+ ASSERT(throwScope.exception() == reinterpret_cast<Exception*>(error));
if (error) {
- throwException(exec, throwScope, error);
return encodeResult(
vm->getCTIStub(throwExceptionFromCallSlowPathGenerator).code().executableAddress(),
reinterpret_cast<void*>(KeepTheFrame));
Modified: trunk/Source/_javascript_Core/runtime/JSObjectInlines.h (220470 => 220471)
--- trunk/Source/_javascript_Core/runtime/JSObjectInlines.h 2017-08-09 18:24:25 UTC (rev 220470)
+++ trunk/Source/_javascript_Core/runtime/JSObjectInlines.h 2017-08-09 18:31:24 UTC (rev 220471)
@@ -218,6 +218,7 @@
return true;
}
+ scope.release();
return thisObject->putInlineSlow(exec, propertyName, value, slot);
}