Changeset 199012 in webkit


Ignore:
Timestamp:
Apr 4, 2016 11:30:28 AM (8 years ago)
Author:
andersca@apple.com
Message:

Properly generate static functions that return Promises
https://bugs.webkit.org/show_bug.cgi?id=156169

Reviewed by Sam Weinig.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateReturnParameters):

  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::jsTestObjConstructorFunctionTestStaticPromiseFunction):
(WebCore::jsTestObjConstructorFunctionTestStaticPromiseFunctionPromise):
(WebCore::jsTestObjConstructorFunctionTestStaticPromiseFunctionWithException):
(WebCore::jsTestObjConstructorFunctionTestStaticPromiseFunctionWithExceptionPromise):

  • bindings/scripts/test/TestObj.idl:
Location:
trunk/Source/WebCore
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r199011 r199012  
     12016-04-04  Anders Carlsson  <andersca@apple.com>
     2
     3        Properly generate static functions that return Promises
     4        https://bugs.webkit.org/show_bug.cgi?id=156169
     5
     6        Reviewed by Sam Weinig.
     7
     8        * bindings/scripts/CodeGeneratorJS.pm:
     9        (GenerateReturnParameters):
     10        * bindings/scripts/test/JS/JSTestObj.cpp:
     11        (WebCore::jsTestObjConstructorFunctionTestStaticPromiseFunction):
     12        (WebCore::jsTestObjConstructorFunctionTestStaticPromiseFunctionPromise):
     13        (WebCore::jsTestObjConstructorFunctionTestStaticPromiseFunctionWithException):
     14        (WebCore::jsTestObjConstructorFunctionTestStaticPromiseFunctionWithExceptionPromise):
     15        * bindings/scripts/test/TestObj.idl:
     16
    1172016-04-04  Joonghun Park  <jh718.park@samsung.com>
    218
  • trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm

    r198833 r199012  
    35963596    my @arguments;
    35973597
    3598     push(@arguments, "DeferredWrapper(state, castedThis->globalObject(), promiseDeferred)") if IsReturningPromise($function);
     3598    if (IsReturningPromise($function)) {
     3599        if ($function->isStatic) {
     3600            push(@arguments, "DeferredWrapper(state, jsCast<JSDOMGlobalObject*>(state->lexicalGlobalObject()), promiseDeferred)");
     3601        } else {
     3602            push(@arguments, "DeferredWrapper(state, castedThis->globalObject(), promiseDeferred)");
     3603        }
     3604    }
    35993605    push(@arguments, "ec") if $function->signature->extendedAttributes->{"RaisesException"} || $function->signature->extendedAttributes->{"RaisesExceptionWithMessage"};
    36003606    return @arguments;
  • trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp

    r198833 r199012  
    190190JSC::EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionTestPromiseFunctionWithOptionalIntArgument(JSC::ExecState*);
    191191JSC::EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionTestPromiseOverloadedFunction(JSC::ExecState*);
     192JSC::EncodedJSValue JSC_HOST_CALL jsTestObjConstructorFunctionTestStaticPromiseFunction(JSC::ExecState*);
     193JSC::EncodedJSValue JSC_HOST_CALL jsTestObjConstructorFunctionTestStaticPromiseFunctionWithException(JSC::ExecState*);
    192194JSC::EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionMethodWithNeedsLifecycleProcessingStack(JSC::ExecState*);
    193195JSC::EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionSymbolIterator(JSC::ExecState*);
     
    467469    { 0, 0, NoIntrinsic, { 0, 0 } },
    468470#endif
     471    { "testStaticPromiseFunction", JSC::Function, NoIntrinsic, { (intptr_t)static_cast<NativeFunction>(jsTestObjConstructorFunctionTestStaticPromiseFunction), (intptr_t) (0) } },
     472    { "testStaticPromiseFunctionWithException", JSC::Function, NoIntrinsic, { (intptr_t)static_cast<NativeFunction>(jsTestObjConstructorFunctionTestStaticPromiseFunctionWithException), (intptr_t) (0) } },
    469473};
    470474
     
    51555159}
    51565160
     5161static EncodedJSValue jsTestObjConstructorFunctionTestStaticPromiseFunctionPromise(ExecState*, JSPromiseDeferred*);
     5162EncodedJSValue JSC_HOST_CALL jsTestObjConstructorFunctionTestStaticPromiseFunction(ExecState* state)
     5163{
     5164    return JSValue::encode(callPromiseFunction(*state, jsTestObjConstructorFunctionTestStaticPromiseFunctionPromise));
     5165}
     5166
     5167static inline EncodedJSValue jsTestObjConstructorFunctionTestStaticPromiseFunctionPromise(ExecState* state, JSPromiseDeferred* promiseDeferred)
     5168{
     5169    TestObj::testStaticPromiseFunction(DeferredWrapper(state, jsCast<JSDOMGlobalObject*>(state->lexicalGlobalObject()), promiseDeferred));
     5170    return JSValue::encode(jsUndefined());
     5171}
     5172
     5173static EncodedJSValue jsTestObjConstructorFunctionTestStaticPromiseFunctionWithExceptionPromise(ExecState*, JSPromiseDeferred*);
     5174EncodedJSValue JSC_HOST_CALL jsTestObjConstructorFunctionTestStaticPromiseFunctionWithException(ExecState* state)
     5175{
     5176    return JSValue::encode(callPromiseFunction(*state, jsTestObjConstructorFunctionTestStaticPromiseFunctionWithExceptionPromise));
     5177}
     5178
     5179static inline EncodedJSValue jsTestObjConstructorFunctionTestStaticPromiseFunctionWithExceptionPromise(ExecState* state, JSPromiseDeferred* promiseDeferred)
     5180{
     5181    ExceptionCode ec = 0;
     5182    TestObj::testStaticPromiseFunctionWithException(DeferredWrapper(state, jsCast<JSDOMGlobalObject*>(state->lexicalGlobalObject()), promiseDeferred), ec);
     5183    setDOMException(state, ec);
     5184    return JSValue::encode(jsUndefined());
     5185}
     5186
    51575187EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionMethodWithNeedsLifecycleProcessingStack(ExecState* state)
    51585188{
  • trunk/Source/WebCore/bindings/scripts/test/TestObj.idl

    r198102 r199012  
    332332    Promise testPromiseOverloadedFunction(float a);
    333333    Promise testPromiseOverloadedFunction(FetchRequest request);
     334    static Promise testStaticPromiseFunction();
     335    [RaisesException] static Promise testStaticPromiseFunctionWithException();
    334336
    335337    // PutForwards
Note: See TracChangeset for help on using the changeset viewer.