JavaScriptCore:
authorggaren@apple.com <ggaren@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 22 Feb 2009 23:26:07 +0000 (23:26 +0000)
committerggaren@apple.com <ggaren@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 22 Feb 2009 23:26:07 +0000 (23:26 +0000)
commitb308208b840833bdad9f24be36cfb0f8478f3391
tree5cc381b803c81200883514c01fd58bd0127dc7ee
parent3d0104156dfe2049a0e242236972e2be6036bcc1
JavaScriptCore:

2009-02-22  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Sam Weinig.

        Next step in splitting JIT functionality out of the Interpreter class:
        Created a JITStubs class and renamed Interpreter::cti_* to JITStubs::cti_*.

        Also, moved timeout checking into its own class, located in JSGlobalData,
        so both the Interpreter and the JIT could have access to it.

        * JavaScriptCore.exp:
        * JavaScriptCore.pri:
        * JavaScriptCore.scons:
        * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
        * JavaScriptCore.xcodeproj/project.pbxproj:
        * JavaScriptCoreSources.bkl:
        * interpreter/CallFrame.h:
        * interpreter/Interpreter.cpp:
        (JSC::Interpreter::Interpreter):
        (JSC::Interpreter::privateExecute):
        * interpreter/Interpreter.h:
        * interpreter/Register.h:
        * jit/JIT.cpp:
        (JSC::):
        (JSC::JIT::emitTimeoutCheck):
        (JSC::JIT::privateCompileMainPass):
        (JSC::JIT::privateCompileSlowCases):
        (JSC::JIT::privateCompile):
        (JSC::JIT::privateCompileCTIMachineTrampolines):
        * jit/JIT.h:
        * jit/JITArithmetic.cpp:
        (JSC::JIT::compileFastArithSlow_op_lshift):
        (JSC::JIT::compileFastArithSlow_op_rshift):
        (JSC::JIT::compileFastArithSlow_op_bitand):
        (JSC::JIT::compileFastArithSlow_op_mod):
        (JSC::JIT::compileFastArith_op_mod):
        (JSC::JIT::compileFastArithSlow_op_post_inc):
        (JSC::JIT::compileFastArithSlow_op_post_dec):
        (JSC::JIT::compileFastArithSlow_op_pre_inc):
        (JSC::JIT::compileFastArithSlow_op_pre_dec):
        (JSC::JIT::compileFastArith_op_add):
        (JSC::JIT::compileFastArith_op_mul):
        (JSC::JIT::compileFastArith_op_sub):
        (JSC::JIT::compileBinaryArithOpSlowCase):
        (JSC::JIT::compileFastArithSlow_op_add):
        (JSC::JIT::compileFastArithSlow_op_mul):
        * jit/JITCall.cpp:
        (JSC::JIT::compileOpCall):
        (JSC::JIT::compileOpCallSlowCase):
        * jit/JITPropertyAccess.cpp:
        (JSC::JIT::compileGetByIdHotPath):
        (JSC::JIT::compilePutByIdHotPath):
        (JSC::JIT::compileGetByIdSlowCase):
        (JSC::JIT::compilePutByIdSlowCase):
        (JSC::JIT::privateCompilePutByIdTransition):
        (JSC::JIT::patchGetByIdSelf):
        (JSC::JIT::patchPutByIdReplace):
        (JSC::JIT::privateCompilePatchGetArrayLength):
        (JSC::JIT::privateCompileGetByIdSelf):
        (JSC::JIT::privateCompileGetByIdProto):
        (JSC::JIT::privateCompileGetByIdChain):
        (JSC::JIT::privateCompilePutByIdReplace):
        * jit/JITStubs.cpp:
        (JSC::JITStubs::tryCachePutByID):
        (JSC::JITStubs::tryCacheGetByID):
        (JSC::JITStubs::cti_op_convert_this):
        (JSC::JITStubs::cti_op_end):
        (JSC::JITStubs::cti_op_add):
        (JSC::JITStubs::cti_op_pre_inc):
        (JSC::JITStubs::cti_timeout_check):
        (JSC::JITStubs::cti_register_file_check):
        (JSC::JITStubs::cti_op_loop_if_less):
        (JSC::JITStubs::cti_op_loop_if_lesseq):
        (JSC::JITStubs::cti_op_new_object):
        (JSC::JITStubs::cti_op_put_by_id_generic):
        (JSC::JITStubs::cti_op_get_by_id_generic):
        (JSC::JITStubs::cti_op_put_by_id):
        (JSC::JITStubs::cti_op_put_by_id_second):
        (JSC::JITStubs::cti_op_put_by_id_fail):
        (JSC::JITStubs::cti_op_get_by_id):
        (JSC::JITStubs::cti_op_get_by_id_second):
        (JSC::JITStubs::cti_op_get_by_id_self_fail):
        (JSC::JITStubs::cti_op_get_by_id_proto_list):
        (JSC::JITStubs::cti_op_get_by_id_proto_list_full):
        (JSC::JITStubs::cti_op_get_by_id_proto_fail):
        (JSC::JITStubs::cti_op_get_by_id_array_fail):
        (JSC::JITStubs::cti_op_get_by_id_string_fail):
        (JSC::JITStubs::cti_op_instanceof):
        (JSC::JITStubs::cti_op_del_by_id):
        (JSC::JITStubs::cti_op_mul):
        (JSC::JITStubs::cti_op_new_func):
        (JSC::JITStubs::cti_op_call_JSFunction):
        (JSC::JITStubs::cti_op_call_arityCheck):
        (JSC::JITStubs::cti_vm_dontLazyLinkCall):
        (JSC::JITStubs::cti_vm_lazyLinkCall):
        (JSC::JITStubs::cti_op_push_activation):
        (JSC::JITStubs::cti_op_call_NotJSFunction):
        (JSC::JITStubs::cti_op_create_arguments):
        (JSC::JITStubs::cti_op_create_arguments_no_params):
        (JSC::JITStubs::cti_op_tear_off_activation):
        (JSC::JITStubs::cti_op_tear_off_arguments):
        (JSC::JITStubs::cti_op_profile_will_call):
        (JSC::JITStubs::cti_op_profile_did_call):
        (JSC::JITStubs::cti_op_ret_scopeChain):
        (JSC::JITStubs::cti_op_new_array):
        (JSC::JITStubs::cti_op_resolve):
        (JSC::JITStubs::cti_op_construct_JSConstruct):
        (JSC::JITStubs::cti_op_construct_NotJSConstruct):
        (JSC::JITStubs::cti_op_get_by_val):
        (JSC::JITStubs::cti_op_get_by_val_byte_array):
        (JSC::JITStubs::cti_op_resolve_func):
        (JSC::JITStubs::cti_op_sub):
        (JSC::JITStubs::cti_op_put_by_val):
        (JSC::JITStubs::cti_op_put_by_val_array):
        (JSC::JITStubs::cti_op_put_by_val_byte_array):
        (JSC::JITStubs::cti_op_lesseq):
        (JSC::JITStubs::cti_op_loop_if_true):
        (JSC::JITStubs::cti_op_negate):
        (JSC::JITStubs::cti_op_resolve_base):
        (JSC::JITStubs::cti_op_resolve_skip):
        (JSC::JITStubs::cti_op_resolve_global):
        (JSC::JITStubs::cti_op_div):
        (JSC::JITStubs::cti_op_pre_dec):
        (JSC::JITStubs::cti_op_jless):
        (JSC::JITStubs::cti_op_not):
        (JSC::JITStubs::cti_op_jtrue):
        (JSC::JITStubs::cti_op_post_inc):
        (JSC::JITStubs::cti_op_eq):
        (JSC::JITStubs::cti_op_lshift):
        (JSC::JITStubs::cti_op_bitand):
        (JSC::JITStubs::cti_op_rshift):
        (JSC::JITStubs::cti_op_bitnot):
        (JSC::JITStubs::cti_op_resolve_with_base):
        (JSC::JITStubs::cti_op_new_func_exp):
        (JSC::JITStubs::cti_op_mod):
        (JSC::JITStubs::cti_op_less):
        (JSC::JITStubs::cti_op_neq):
        (JSC::JITStubs::cti_op_post_dec):
        (JSC::JITStubs::cti_op_urshift):
        (JSC::JITStubs::cti_op_bitxor):
        (JSC::JITStubs::cti_op_new_regexp):
        (JSC::JITStubs::cti_op_bitor):
        (JSC::JITStubs::cti_op_call_eval):
        (JSC::JITStubs::cti_op_throw):
        (JSC::JITStubs::cti_op_get_pnames):
        (JSC::JITStubs::cti_op_next_pname):
        (JSC::JITStubs::cti_op_push_scope):
        (JSC::JITStubs::cti_op_pop_scope):
        (JSC::JITStubs::cti_op_typeof):
        (JSC::JITStubs::cti_op_is_undefined):
        (JSC::JITStubs::cti_op_is_boolean):
        (JSC::JITStubs::cti_op_is_number):
        (JSC::JITStubs::cti_op_is_string):
        (JSC::JITStubs::cti_op_is_object):
        (JSC::JITStubs::cti_op_is_function):
        (JSC::JITStubs::cti_op_stricteq):
        (JSC::JITStubs::cti_op_nstricteq):
        (JSC::JITStubs::cti_op_to_jsnumber):
        (JSC::JITStubs::cti_op_in):
        (JSC::JITStubs::cti_op_push_new_scope):
        (JSC::JITStubs::cti_op_jmp_scopes):
        (JSC::JITStubs::cti_op_put_by_index):
        (JSC::JITStubs::cti_op_switch_imm):
        (JSC::JITStubs::cti_op_switch_char):
        (JSC::JITStubs::cti_op_switch_string):
        (JSC::JITStubs::cti_op_del_by_val):
        (JSC::JITStubs::cti_op_put_getter):
        (JSC::JITStubs::cti_op_put_setter):
        (JSC::JITStubs::cti_op_new_error):
        (JSC::JITStubs::cti_op_debug):
        (JSC::JITStubs::cti_vm_throw):
        * jit/JITStubs.h:
        (JSC::):
        * runtime/JSFunction.h:
        * runtime/JSGlobalData.cpp:
        (JSC::JSGlobalData::JSGlobalData):
        * runtime/JSGlobalData.h:
        * runtime/JSGlobalObject.cpp:
        * runtime/JSGlobalObject.h:
        * runtime/TimeoutChecker.cpp: Copied from interpreter/Interpreter.cpp.
        (JSC::TimeoutChecker::TimeoutChecker):
        (JSC::TimeoutChecker::reset):
        (JSC::TimeoutChecker::didTimeOut):
        * runtime/TimeoutChecker.h: Copied from interpreter/Interpreter.h.
        (JSC::TimeoutChecker::setTimeoutInterval):
        (JSC::TimeoutChecker::ticksUntilNextCheck):
        (JSC::TimeoutChecker::start):
        (JSC::TimeoutChecker::stop):

WebCore:

2009-02-20  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Sam Weinig.

        Updated for JavaScriptCore changes to timeout checking.

        * bindings/js/JSCustomPositionCallback.cpp:
        (WebCore::JSCustomPositionCallback::handleEvent):
        * bindings/js/JSCustomPositionErrorCallback.cpp:
        (WebCore::JSCustomPositionErrorCallback::handleEvent):
        * bindings/js/JSCustomSQLStatementCallback.cpp:
        (WebCore::JSCustomSQLStatementCallback::handleEvent):
        * bindings/js/JSCustomSQLStatementErrorCallback.cpp:
        (WebCore::JSCustomSQLStatementErrorCallback::handleEvent):
        * bindings/js/JSCustomSQLTransactionCallback.cpp:
        (WebCore::JSCustomSQLTransactionCallback::handleEvent):
        * bindings/js/JSCustomSQLTransactionErrorCallback.cpp:
        (WebCore::JSCustomSQLTransactionErrorCallback::handleEvent):
        * bindings/js/JSCustomVoidCallback.cpp:
        (WebCore::JSCustomVoidCallback::handleEvent):
        * bindings/js/JSCustomXPathNSResolver.cpp:
        (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
        * bindings/js/JSDOMWindowBase.cpp:
        (WebCore::JSDOMWindowBase::JSDOMWindowBase):
        (WebCore::JSDOMWindowBase::commonJSGlobalData):
        * bindings/js/JSEventListener.cpp:
        (WebCore::JSAbstractEventListener::handleEvent):
        * bindings/js/ScheduledAction.cpp:
        (WebCore::ScheduledAction::executeFunctionInContext):
        * bindings/js/ScriptController.cpp:
        (WebCore::ScriptController::evaluate):
        * bindings/js/WorkerScriptController.cpp:
        (WebCore::WorkerScriptController::evaluate):
        (WebCore::WorkerScriptController::forbidExecution):
        * bindings/objc/WebScriptObject.mm:
        (-[WebScriptObject callWebScriptMethod:withArguments:]):
        (-[WebScriptObject evaluateWebScript:]):
        * bridge/NP_jsobject.cpp:
        (_NPN_InvokeDefault):
        (_NPN_Invoke):
        (_NPN_Evaluate):
        (_NPN_Construct):
        * bridge/jni/jni_jsobject.mm:
        (JavaJSObject::call):
        (JavaJSObject::eval):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@41126 268f45cc-cd09-0410-ab3c-d52691b4dbfc
42 files changed:
JavaScriptCore/ChangeLog
JavaScriptCore/JavaScriptCore.exp
JavaScriptCore/JavaScriptCore.pri
JavaScriptCore/JavaScriptCore.scons
JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj
JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj
JavaScriptCore/JavaScriptCoreSources.bkl
JavaScriptCore/interpreter/CallFrame.h
JavaScriptCore/interpreter/Interpreter.cpp
JavaScriptCore/interpreter/Interpreter.h
JavaScriptCore/interpreter/Register.h
JavaScriptCore/jit/JIT.cpp
JavaScriptCore/jit/JIT.h
JavaScriptCore/jit/JITArithmetic.cpp
JavaScriptCore/jit/JITCall.cpp
JavaScriptCore/jit/JITPropertyAccess.cpp
JavaScriptCore/jit/JITStubs.cpp
JavaScriptCore/jit/JITStubs.h
JavaScriptCore/runtime/JSFunction.h
JavaScriptCore/runtime/JSGlobalData.cpp
JavaScriptCore/runtime/JSGlobalData.h
JavaScriptCore/runtime/JSGlobalObject.cpp
JavaScriptCore/runtime/JSGlobalObject.h
JavaScriptCore/runtime/TimeoutChecker.cpp [new file with mode: 0644]
JavaScriptCore/runtime/TimeoutChecker.h [new file with mode: 0644]
WebCore/ChangeLog
WebCore/bindings/js/JSCustomPositionCallback.cpp
WebCore/bindings/js/JSCustomPositionErrorCallback.cpp
WebCore/bindings/js/JSCustomSQLStatementCallback.cpp
WebCore/bindings/js/JSCustomSQLStatementErrorCallback.cpp
WebCore/bindings/js/JSCustomSQLTransactionCallback.cpp
WebCore/bindings/js/JSCustomSQLTransactionErrorCallback.cpp
WebCore/bindings/js/JSCustomVoidCallback.cpp
WebCore/bindings/js/JSCustomXPathNSResolver.cpp
WebCore/bindings/js/JSDOMWindowBase.cpp
WebCore/bindings/js/JSEventListener.cpp
WebCore/bindings/js/ScheduledAction.cpp
WebCore/bindings/js/ScriptController.cpp
WebCore/bindings/js/WorkerScriptController.cpp
WebCore/bindings/objc/WebScriptObject.mm
WebCore/bridge/NP_jsobject.cpp
WebCore/bridge/jni/jni_jsobject.mm