Ignore:
Timestamp:
Mar 4, 2014, 1:38:05 PM (11 years ago)
Author:
[email protected]
Message:

Merge API shims and JSLock
https://bugs.webkit.org/show_bug.cgi?id=129650

Reviewed by Mark Lam.

Source/JavaScriptCore:

JSLock is now taking on all of APIEntryShim's responsibilities since there is never a reason
to take just the JSLock. Ditto for DropAllLocks and APICallbackShim.

  • API/APICallbackFunction.h:

(JSC::APICallbackFunction::call):
(JSC::APICallbackFunction::construct):

  • API/APIShims.h: Removed.
  • API/JSBase.cpp:

(JSEvaluateScript):
(JSCheckScriptSyntax):
(JSGarbageCollect):
(JSReportExtraMemoryCost):
(JSSynchronousGarbageCollectForDebugging):

  • API/JSCallbackConstructor.cpp:
  • API/JSCallbackFunction.cpp:
  • API/JSCallbackObjectFunctions.h:

(JSC::JSCallbackObject<Parent>::init):
(JSC::JSCallbackObject<Parent>::getOwnPropertySlot):
(JSC::JSCallbackObject<Parent>::put):
(JSC::JSCallbackObject<Parent>::putByIndex):
(JSC::JSCallbackObject<Parent>::deleteProperty):
(JSC::JSCallbackObject<Parent>::construct):
(JSC::JSCallbackObject<Parent>::customHasInstance):
(JSC::JSCallbackObject<Parent>::call):
(JSC::JSCallbackObject<Parent>::getOwnNonIndexPropertyNames):
(JSC::JSCallbackObject<Parent>::getStaticValue):
(JSC::JSCallbackObject<Parent>::callbackGetter):

  • API/JSContext.mm:

(-[JSContext setException:]):
(-[JSContext wrapperForObjCObject:]):
(-[JSContext wrapperForJSObject:]):

  • API/JSContextRef.cpp:

(JSContextGroupRelease):
(JSContextGroupSetExecutionTimeLimit):
(JSContextGroupClearExecutionTimeLimit):
(JSGlobalContextCreateInGroup):
(JSGlobalContextRetain):
(JSGlobalContextRelease):
(JSContextGetGlobalObject):
(JSContextGetGlobalContext):
(JSGlobalContextCopyName):
(JSGlobalContextSetName):

  • API/JSManagedValue.mm:

(-[JSManagedValue value]):

  • API/JSObjectRef.cpp:

(JSObjectMake):
(JSObjectMakeFunctionWithCallback):
(JSObjectMakeConstructor):
(JSObjectMakeFunction):
(JSObjectMakeArray):
(JSObjectMakeDate):
(JSObjectMakeError):
(JSObjectMakeRegExp):
(JSObjectGetPrototype):
(JSObjectSetPrototype):
(JSObjectHasProperty):
(JSObjectGetProperty):
(JSObjectSetProperty):
(JSObjectGetPropertyAtIndex):
(JSObjectSetPropertyAtIndex):
(JSObjectDeleteProperty):
(JSObjectGetPrivateProperty):
(JSObjectSetPrivateProperty):
(JSObjectDeletePrivateProperty):
(JSObjectIsFunction):
(JSObjectCallAsFunction):
(JSObjectCallAsConstructor):
(JSObjectCopyPropertyNames):
(JSPropertyNameArrayRelease):
(JSPropertyNameAccumulatorAddName):

  • API/JSScriptRef.cpp:
  • API/JSValue.mm:

(isDate):
(isArray):
(containerValueToObject):
(valueToArray):
(valueToDictionary):
(objectToValue):

  • API/JSValueRef.cpp:

(JSValueGetType):
(JSValueIsUndefined):
(JSValueIsNull):
(JSValueIsBoolean):
(JSValueIsNumber):
(JSValueIsString):
(JSValueIsObject):
(JSValueIsObjectOfClass):
(JSValueIsEqual):
(JSValueIsStrictEqual):
(JSValueIsInstanceOfConstructor):
(JSValueMakeUndefined):
(JSValueMakeNull):
(JSValueMakeBoolean):
(JSValueMakeNumber):
(JSValueMakeString):
(JSValueMakeFromJSONString):
(JSValueCreateJSONString):
(JSValueToBoolean):
(JSValueToNumber):
(JSValueToStringCopy):
(JSValueToObject):
(JSValueProtect):
(JSValueUnprotect):

  • API/JSVirtualMachine.mm:

(-[JSVirtualMachine addManagedReference:withOwner:]):
(-[JSVirtualMachine removeManagedReference:withOwner:]):

  • API/JSWeakObjectMapRefPrivate.cpp:
  • API/JSWrapperMap.mm:

(constructorHasInstance):
(makeWrapper):
(tryUnwrapObjcObject):

  • API/ObjCCallbackFunction.mm:

(JSC::objCCallbackFunctionCallAsFunction):
(JSC::objCCallbackFunctionCallAsConstructor):
(objCCallbackFunctionForInvocation):

  • CMakeLists.txt:
  • ForwardingHeaders/JavaScriptCore/APIShims.h: Removed.
  • GNUmakefile.list.am:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • dfg/DFGWorklist.cpp:
  • heap/DelayedReleaseScope.h:

(JSC::DelayedReleaseScope::~DelayedReleaseScope):

  • heap/HeapTimer.cpp:

(JSC::HeapTimer::timerDidFire):
(JSC::HeapTimer::timerEvent):

  • heap/IncrementalSweeper.cpp:
  • inspector/InjectedScriptModule.cpp:

(Inspector::InjectedScriptModule::ensureInjected):

  • jsc.cpp:

(jscmain):

  • runtime/GCActivityCallback.cpp:

(JSC::DefaultGCActivityCallback::doWork):

  • runtime/JSGlobalObjectDebuggable.cpp:

(JSC::JSGlobalObjectDebuggable::connect):
(JSC::JSGlobalObjectDebuggable::disconnect):
(JSC::JSGlobalObjectDebuggable::dispatchMessageFromRemoteFrontend):

  • runtime/JSLock.cpp:

(JSC::JSLock::lock):
(JSC::JSLock::didAcquireLock):
(JSC::JSLock::unlock):
(JSC::JSLock::willReleaseLock):
(JSC::JSLock::DropAllLocks::DropAllLocks):
(JSC::JSLock::DropAllLocks::~DropAllLocks):

  • runtime/JSLock.h:
  • testRegExp.cpp:

(realMain):

Source/WebCore:

No new tests.

JSLock is now taking on all of APIEntryShim's responsibilities since there is never a reason
to take just the JSLock. Ditto for DropAllLocks and APICallbackShim.

  • bindings/js/DOMRequestState.h:

(WebCore::DOMRequestState::Scope::Scope):

  • bindings/js/JSDOMPromise.h:

(WebCore::DeferredWrapper::resolve):
(WebCore::DeferredWrapper::reject):
(WebCore::DeferredWrapper::resolve<String>):
(WebCore::DeferredWrapper::resolve<bool>):
(WebCore::char>>):
(WebCore::DeferredWrapper::reject<String>):

  • bindings/js/ScriptController.cpp:

(WebCore::ScriptController::evaluateInWorld):

  • bindings/js/SerializedScriptValue.cpp:

(WebCore::SerializedScriptValue::create):
(WebCore::SerializedScriptValue::deserialize):

Source/WebKit/mac:

JSLock is now taking on all of APIEntryShim's responsibilities since there is never a reason
to take just the JSLock. Ditto for DropAllLocks and APICallbackShim.

  • WebView/WebFrame.mm:

(-[WebFrame _stringByEvaluatingJavaScriptFromString:forceUserGesture:]):

Source/WebKit2:

JSLock is now taking on all of APIEntryShim's responsibilities since there is never a reason
to take just the JSLock. Ditto for DropAllLocks and APICallbackShim.

  • DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp:

(WebKit::UniqueIDBDatabaseBackingStoreSQLite::~UniqueIDBDatabaseBackingStoreSQLite):
(WebKit::UniqueIDBDatabaseBackingStoreSQLite::createIndex):

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/API/JSObjectRef.cpp

    r164824 r165074  
    9090    }
    9191    ExecState* exec = toJS(ctx);
    92     APIEntryShim entryShim(exec);
     92    JSLockHolder locker(exec);
    9393
    9494    if (!jsClass)
     
    109109    }
    110110    ExecState* exec = toJS(ctx);
    111     APIEntryShim entryShim(exec);
     111    JSLockHolder locker(exec);
    112112    return toRef(JSCallbackFunction::create(exec->vm(), exec->lexicalGlobalObject(), callAsFunction, name ? name->string() : ASCIILiteral("anonymous")));
    113113}
     
    120120    }
    121121    ExecState* exec = toJS(ctx);
    122     APIEntryShim entryShim(exec);
     122    JSLockHolder locker(exec);
    123123
    124124    JSValue jsPrototype = jsClass ? jsClass->prototype(exec) : 0;
     
    138138    }
    139139    ExecState* exec = toJS(ctx);
    140     APIEntryShim entryShim(exec);
     140    JSLockHolder locker(exec);
    141141
    142142    startingLineNumber = std::max(1, startingLineNumber);
     
    169169    }
    170170    ExecState* exec = toJS(ctx);
    171     APIEntryShim entryShim(exec);
     171    JSLockHolder locker(exec);
    172172
    173173    JSObject* result;
     
    202202    }
    203203    ExecState* exec = toJS(ctx);
    204     APIEntryShim entryShim(exec);
     204    JSLockHolder locker(exec);
    205205
    206206    MarkedArgumentBuffer argList;
     
    230230    }
    231231    ExecState* exec = toJS(ctx);
    232     APIEntryShim entryShim(exec);
     232    JSLockHolder locker(exec);
    233233
    234234    JSValue message = argumentCount ? toJS(exec, arguments[0]) : jsUndefined();
     
    257257    }
    258258    ExecState* exec = toJS(ctx);
    259     APIEntryShim entryShim(exec);
     259    JSLockHolder locker(exec);
    260260
    261261    MarkedArgumentBuffer argList;
     
    285285    }
    286286    ExecState* exec = toJS(ctx);
    287     APIEntryShim entryShim(exec);
     287    JSLockHolder locker(exec);
    288288
    289289    JSObject* jsObject = toJS(object);
     
    298298    }
    299299    ExecState* exec = toJS(ctx);
    300     APIEntryShim entryShim(exec);
     300    JSLockHolder locker(exec);
    301301
    302302    JSObject* jsObject = toJS(object);
     
    313313    }
    314314    ExecState* exec = toJS(ctx);
    315     APIEntryShim entryShim(exec);
     315    JSLockHolder locker(exec);
    316316
    317317    JSObject* jsObject = toJS(object);
     
    327327    }
    328328    ExecState* exec = toJS(ctx);
    329     APIEntryShim entryShim(exec);
     329    JSLockHolder locker(exec);
    330330
    331331    JSObject* jsObject = toJS(object);
     
    351351    }
    352352    ExecState* exec = toJS(ctx);
    353     APIEntryShim entryShim(exec);
     353    JSLockHolder locker(exec);
    354354
    355355    JSObject* jsObject = toJS(object);
     
    383383    }
    384384    ExecState* exec = toJS(ctx);
    385     APIEntryShim entryShim(exec);
     385    JSLockHolder locker(exec);
    386386
    387387    JSObject* jsObject = toJS(object);
     
    408408    }
    409409    ExecState* exec = toJS(ctx);
    410     APIEntryShim entryShim(exec);
     410    JSLockHolder locker(exec);
    411411
    412412    JSObject* jsObject = toJS(object);
     
    432432    }
    433433    ExecState* exec = toJS(ctx);
    434     APIEntryShim entryShim(exec);
     434    JSLockHolder locker(exec);
    435435
    436436    JSObject* jsObject = toJS(object);
     
    490490{
    491491    ExecState* exec = toJS(ctx);
    492     APIEntryShim entryShim(exec);
     492    JSLockHolder locker(exec);
    493493    JSObject* jsObject = toJS(object);
    494494    JSValue result;
     
    508508{
    509509    ExecState* exec = toJS(ctx);
    510     APIEntryShim entryShim(exec);
     510    JSLockHolder locker(exec);
    511511    JSObject* jsObject = toJS(object);
    512512    JSValue jsValue = value ? toJS(exec, value) : JSValue();
     
    532532{
    533533    ExecState* exec = toJS(ctx);
    534     APIEntryShim entryShim(exec);
     534    JSLockHolder locker(exec);
    535535    JSObject* jsObject = toJS(object);
    536536    Identifier name(propertyName->identifier(&exec->vm()));
     
    556556    if (!object)
    557557        return false;
    558     APIEntryShim entryShim(toJS(ctx));
     558    JSLockHolder locker(toJS(ctx));
    559559    CallData callData;
    560560    JSCell* cell = toJS(object);
     
    565565{
    566566    ExecState* exec = toJS(ctx);
    567     APIEntryShim entryShim(exec);
     567    JSLockHolder locker(exec);
    568568
    569569    if (!object)
     
    611611{
    612612    ExecState* exec = toJS(ctx);
    613     APIEntryShim entryShim(exec);
     613    JSLockHolder locker(exec);
    614614
    615615    if (!object)
     
    661661    }
    662662    ExecState* exec = toJS(ctx);
    663     APIEntryShim entryShim(exec);
     663    JSLockHolder locker(exec);
    664664
    665665    VM* vm = &exec->vm();
     
    687687{
    688688    if (--array->refCount == 0) {
    689         APIEntryShim entryShim(array->vm, false);
     689        JSLockHolder locker(array->vm);
    690690        delete array;
    691691    }
     
    705705{
    706706    PropertyNameArray* propertyNames = toJS(array);
    707     APIEntryShim entryShim(propertyNames->vm());
     707    JSLockHolder locker(propertyNames->vm());
    708708    propertyNames->add(propertyName->identifier(propertyNames->vm()));
    709709}
Note: See TracChangeset for help on using the changeset viewer.