Skip to content

Commit

Permalink
Merge r220471 - Make JSC_validateExceptionChecks=1 succeed on JSTests…
Browse files Browse the repository at this point in the history
…/stress/v8-deltablue-strict.js.

https://bugs.webkit.org/show_bug.cgi?id=175358

Patch by Robin Morisset <rmorisset@apple.com> on 2017-08-09
Reviewed by Mark Lam.

* jit/JITOperations.cpp:
* runtime/JSObjectInlines.h:
(JSC::JSObject::putInlineForJSObject):
  • Loading branch information
Robin Morisset authored and carlosgcampos committed Aug 14, 2017
1 parent 77de8d5 commit 68040bb
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 6 deletions.
11 changes: 11 additions & 0 deletions Source/JavaScriptCore/ChangeLog
@@ -1,3 +1,14 @@
2017-08-09 Robin Morisset <rmorisset@apple.com>

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 Oleksandr Skachkov <gskachkov@gmail.com>

REGRESSION: 2 test262/test/language/statements/async-function failures
Expand Down
9 changes: 3 additions & 6 deletions Source/JavaScriptCore/jit/JITOperations.cpp
Expand Up @@ -956,7 +956,6 @@ SlowPathReturnType JIT_OPERATION operationLinkCall(ExecState* execCallee, CallLi
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));
Expand Down Expand Up @@ -1014,11 +1013,9 @@ void JIT_OPERATION operationLinkDirectCall(ExecState* exec, CallLinkInfo* callLi
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()))
Expand Down Expand Up @@ -1061,8 +1058,8 @@ inline SlowPathReturnType virtualForWithFunction(

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));
Expand Down
1 change: 1 addition & 0 deletions Source/JavaScriptCore/runtime/JSObjectInlines.h
Expand Up @@ -218,6 +218,7 @@ ALWAYS_INLINE bool JSObject::putInlineForJSObject(JSCell* cell, ExecState* exec,
return true;
}

scope.release();
return thisObject->putInlineSlow(exec, propertyName, value, slot);
}

Expand Down

0 comments on commit 68040bb

Please sign in to comment.