Changeset 199012 in webkit
- Timestamp:
- Apr 4, 2016 11:30:28 AM (8 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r199011 r199012 1 2016-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 1 17 2016-04-04 Joonghun Park <jh718.park@samsung.com> 2 18 -
trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm
r198833 r199012 3596 3596 my @arguments; 3597 3597 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 } 3599 3605 push(@arguments, "ec") if $function->signature->extendedAttributes->{"RaisesException"} || $function->signature->extendedAttributes->{"RaisesExceptionWithMessage"}; 3600 3606 return @arguments; -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp
r198833 r199012 190 190 JSC::EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionTestPromiseFunctionWithOptionalIntArgument(JSC::ExecState*); 191 191 JSC::EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionTestPromiseOverloadedFunction(JSC::ExecState*); 192 JSC::EncodedJSValue JSC_HOST_CALL jsTestObjConstructorFunctionTestStaticPromiseFunction(JSC::ExecState*); 193 JSC::EncodedJSValue JSC_HOST_CALL jsTestObjConstructorFunctionTestStaticPromiseFunctionWithException(JSC::ExecState*); 192 194 JSC::EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionMethodWithNeedsLifecycleProcessingStack(JSC::ExecState*); 193 195 JSC::EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionSymbolIterator(JSC::ExecState*); … … 467 469 { 0, 0, NoIntrinsic, { 0, 0 } }, 468 470 #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) } }, 469 473 }; 470 474 … … 5155 5159 } 5156 5160 5161 static EncodedJSValue jsTestObjConstructorFunctionTestStaticPromiseFunctionPromise(ExecState*, JSPromiseDeferred*); 5162 EncodedJSValue JSC_HOST_CALL jsTestObjConstructorFunctionTestStaticPromiseFunction(ExecState* state) 5163 { 5164 return JSValue::encode(callPromiseFunction(*state, jsTestObjConstructorFunctionTestStaticPromiseFunctionPromise)); 5165 } 5166 5167 static 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 5173 static EncodedJSValue jsTestObjConstructorFunctionTestStaticPromiseFunctionWithExceptionPromise(ExecState*, JSPromiseDeferred*); 5174 EncodedJSValue JSC_HOST_CALL jsTestObjConstructorFunctionTestStaticPromiseFunctionWithException(ExecState* state) 5175 { 5176 return JSValue::encode(callPromiseFunction(*state, jsTestObjConstructorFunctionTestStaticPromiseFunctionWithExceptionPromise)); 5177 } 5178 5179 static 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 5157 5187 EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionMethodWithNeedsLifecycleProcessingStack(ExecState* state) 5158 5188 { -
trunk/Source/WebCore/bindings/scripts/test/TestObj.idl
r198102 r199012 332 332 Promise testPromiseOverloadedFunction(float a); 333 333 Promise testPromiseOverloadedFunction(FetchRequest request); 334 static Promise testStaticPromiseFunction(); 335 [RaisesException] static Promise testStaticPromiseFunctionWithException(); 334 336 335 337 // PutForwards
Note: See TracChangeset
for help on using the changeset viewer.