Bug 123908
Summary: | LLInt (no JIT) doesn't build in JITExceptions.cpp | ||
---|---|---|---|
Product: | WebKit | Reporter: | Ralph T <ralpht+bugs> |
Component: | JavaScriptCore | Assignee: | Michael Saboff <msaboff> |
Status: | RESOLVED DUPLICATE | ||
Severity: | Normal | CC: | msaboff |
Priority: | P2 | ||
Version: | 528+ (Nightly build) | ||
Hardware: | Unspecified | ||
OS: | Unspecified |
Ralph T
FAILED: /usr/bin/c++ ... Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/jit/JITExceptions.cpp.o -MF "Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/jit/JITExceptions.cpp.o.d" -o Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/jit/JITExceptions.cpp.o -c ../../Source/JavaScriptCore/jit/JITExceptions.cpp
../../Source/JavaScriptCore/jit/JITExceptions.cpp: In function ‘void JSC::genericUnwind(JSC::VM*, JSC::ExecState*, JSC::JSValue)’:
../../Source/JavaScriptCore/jit/JITExceptions.cpp:52:28: error: ‘class JSC::VM’ has no member named ‘getCTIStub’
catchRoutine = vm->getCTIStub(throwNotCaught).code().executableAddress();
^
../../Source/JavaScriptCore/jit/JITExceptions.cpp:52:39: error: ‘throwNotCaught’ was not declared in this scope
catchRoutine = vm->getCTIStub(throwNotCaught).code().executableAddress();
^
ninja: build stopped: subcommand failed.
This was caused by https://bugs.webkit.org/show_bug.cgi?id=123844 committed in r158751.
Attachments | ||
---|---|---|
Add attachment proposed patch, testcase, etc. |
Ralph T
FWIW this allows LLInt to build, no idea if it runs yet or if it's the direction you want to go in, though:
diff --git a/Source/JavaScriptCore/jit/JITExceptions.cpp b/Source/JavaScriptCore/jit/JITExceptions.cpp
index 510f3b1..bac5315 100644
--- a/Source/JavaScriptCore/jit/JITExceptions.cpp
+++ b/Source/JavaScriptCore/jit/JITExceptions.cpp
@@ -48,8 +48,13 @@ void genericUnwind(VM* vm, ExecState* callFrame, JSValue exceptionValue)
if (handler) {
catchPCForInterpreter = &callFrame->codeBlock()->instructions()[handler->target];
catchRoutine = ExecutableBase::catchRoutineFor(handler, catchPCForInterpreter);
- } else
+ } else {
+#if ENABLE(JIT)
catchRoutine = vm->getCTIStub(throwNotCaught).code().executableAddress();
+#else
+ catchRoutine = FunctionPtr(LLInt::getCodePtr(ctiOpThrowNotCaught)).value();
+#endif
+ }
vm->callFrameForThrow = callFrame;
vm->targetMachinePCForThrow = catchRoutine;
Michael Saboff
Fixed as a result of the changes in https://bugs.webkit.org/show_bug.cgi?id=123844 - "Change ctiTrampoline into a thunk" with change set r158751: <http://trac.webkit.org/changeset/158751>.
*** This bug has been marked as a duplicate of bug 123844 ***