RESOLVED FIXED Bug 74127
[Windows, WinCairo] testapi crashes in Release Build
https://bugs.webkit.org/show_bug.cgi?id=74127
Summary [Windows, WinCairo] testapi crashes in Release Build
Brent Fulgham
Reported 2011-12-08 14:33:57 PST
The 'testapi' test program will fail when running with default arguments (causing it to execute the "testapi.js" script) under Release builds. Test program output is as follows: PASS: Set private property. PASS: Did not allow JSObjectSetPrivateProperty on a non-API object. PASS: Retrieved private property. PASS: JSObjectGetPrivateProperty return NULL. PASS: Cannot access private property through ordinary property lookup. PASS: Private property does not appear to have been collected. PASS: Set private property to NULL. PASS: Retrieved private property. PASS: Parsed valid JSON string. PASS: Correctly returned null for invalid JSON data. PASS: Correctly serialised with indent of 0. PASS: Correctly serialised with indent of 4. PASS: returned null when attempting to serialize unserializable value. PASS: returned null when attempting to serialize unserializable value. PASS: set exception on serialisation error PASS: globalStaticValue should be 3 and is. PASS: globalStaticFunction() should be 4 and is. PASS: typeof MyObject should be function and is. PASS: MyObject.cantFind should be undefined and is. PASS: MyObject.regularType should be 1 and is. PASS: MyObject.alwaysOne should be 1 and is. PASS: MyObject.cantDelete should be 1 and is. PASS: delete MyObject.throwOnDelete should be an exception and is. PASS: MyObject.cantSet should be undefined and is. PASS: MyObject.throwOnGet should be an exception and is. PASS: MyObject.throwOnSet = 5 should be an exception and is. PASS: MyObject('throwOnCall') should be an exception and is. PASS: new MyObject('throwOnConstruct') should be an exception and is. PASS: 'throwOnHasInstance' instanceof MyObject should be an exception and is. PASS: MyObject.nullGetForwardSet should be 1 and is. PASS: MyObject.myPropertyName was enumerated PASS: MyObject.regularType was enumerated PASS: typeof alwaysOneDescriptor should be object and is. PASS: alwaysOneDescriptor.value should be 1 and is. PASS: alwaysOneDescriptor.configurable should be true and is. PASS: alwaysOneDescriptor.enumerable should be false and is. PASS: typeof cantFindDescriptor should be object and is. PASS: cantFindDescriptor.value should be undefined and is. PASS: cantFindDescriptor.configurable should be true and is. PASS: cantFindDescriptor.enumerable should be false and is. PASS: getting property descriptor of throwOnGet threw exception PASS: typeof myPropertyNameDescriptor should be object and is. PASS: myPropertyNameDescriptor.value should be 1 and is. PASS: myPropertyNameDescriptor.configurable should be true and is. PASS: myPropertyNameDescriptor.enumerable should be false and is. PASS: Object.getOwnPropertyDescriptor(MyObject, "doesNotExist") should be undefi ned and is. PASS: delete MyObject.regularType should be true and is. PASS: MyObject.regularType should be undefined and is. PASS: MyObject(0) should be 1 and is. PASS: MyObject() should be undefined and is. PASS: typeof myObject should be object and is. PASS: MyObject ? 1 : 0 should be true and is. PASS: +MyObject should be 1 and is. PASS: (Object.prototype.toString.call(MyObject)) should be [object MyObject] and is. PASS: (MyObject.toString()) should be MyObjectAsString and is. PASS: String(MyObject) should be MyObjectAsString and is. PASS: MyObject - 0 should be 1 and is. PASS: MyObject.valueOf() should be 1 and is. PASS: typeof MyConstructor should be object and is. PASS: typeof constructedObject should be object and is. PASS: constructedObject.value should be 1 and is. PASS: myObject instanceof MyObject should be true and is. PASS: (new Object()) instanceof MyObject should be false and is. PASS: MyObject.nullGetSet should be 1 and is. <<< CRASH >>> Stack trace: fffffffd() > JavaScriptCore.dll!JSC::JSCallbackObject<JSC::JSNonFinalObject>::getOwnPropertySlot(JSC::JSCell * cell=0x003d2f70, JSC::ExecState * exec=0x02850128, const JSC::Identifier & propertyName={...}, JSC::PropertySlot & slot={...}) Line 141 + 0x9 bytes C++ JavaScriptCore.dll!JSC::JSObject::hasProperty(JSC::ExecState * exec=0x02850128, const JSC::Identifier & propertyName={...}) Line 222 + 0x117 bytes C++ JavaScriptCore.dll!JSC::hasErrorInfo(JSC::ExecState * exec=0x02850128, JSC::JSObject * error=0x003d2f70) Line 144 + 0x37 bytes C++ JavaScriptCore.dll!JSC::Interpreter::throwException(JSC::ExecState * & callFrame=0x02850128, JSC::JSValue & exceptionValue={...}, unsigned int bytecodeOffset=0x00000007) Line 799 + 0x21 bytes C++ JavaScriptCore.dll!JSC::jitThrow(JSC::JSGlobalData * globalData=0x00000000, JSC::ExecState * callFrame=0x02850128, JSC::JSValue exceptionValue={...}, JSC::ReturnAddressPtr faultLocation={...}) Line 1049 C++ JavaScriptCore.dll!cti_vm_throw(void * * args=0x00000000) Line 3720 + 0x1e bytes C++ JavaScriptCore.dll!ctiVMThrowTrampoline() Line 245 C++ JavaScriptCore.dll!JSC::Interpreter::execute(JSC::EvalExecutable * eval=0x7ee9414c, JSC::ExecState * callFrame=0x02850128, JSC::JSValue thisValue={...}, JSC::ScopeChainNode * scopeChain=0x7ee97800, int globalRegisterOffset=0x0034f5f4) Line 1388 + 0x1f bytes C++ JavaScriptCore.dll!JSC::Interpreter::execute(JSC::EvalExecutable * eval=0x02002810, JSC::ExecState * callFrame=0x7ef43dc0, JSC::JSValue thisValue={...}, JSC::ScopeChainNode * scopeChain=0x7ee97800, int globalRegisterOffset=0x00000025) Line 1388 + 0x1f bytes C++ JavaScriptCore.dll!JSC::eval(JSC::ExecState * callFrame=0x7ee94f50) Line 469 + 0x20 bytes C++ JavaScriptCore.dll!cti_op_call_eval(void * * args=0x00000000) Line 3369 C++ 002026e0() JavaScriptCore.dll!JSC::JITCode::execute(JSC::RegisterFile * registerFile=0x7ee9414c, JSC::ExecState * callFrame=0x02850038, JSC::JSGlobalData * globalData=0x7ee97800) Line 115 + 0x1c bytes C++ JavaScriptCore.dll!JSC::Interpreter::execute(JSC::ProgramExecutable * program=, JSC::ExecState * callFrame=, JSC::ScopeChainNode * scopeChain=, JSC::JSObject * thisObj=) Line 1002 + 0x24 bytes C++ JavaScriptCore.dll!JSC::evaluate(JSC::ExecState * exec=0x00213d28, JSC::ScopeChainNode * scopeChain=0x00243fd0, const JSC::SourceCode & source={...}, JSC::JSValue thisValue={...}, JSC::JSValue * returnedException=0x0034fcf0) Line 72 C++ JavaScriptCore.dll!JSEvaluateScript(const OpaqueJSContext * ctx=0x7eec6000, OpaqueJSString * script=0x7ee93680, OpaqueJSValue * thisObject=0x00000000, OpaqueJSString * sourceURL=0x00000000, int startingLineNumber=0x00000000, const OpaqueJSValue * * exception=0x0034ff0c) Line 58 C++ testapi.exe!main(int argc=0x021f48a8, char * * argv=0x0022e0c0) Line 1505 + 0x1c bytes C++ testapi.exe!__tmainCRTStartup() Line 597 + 0x17 bytes C
Attachments
Radar WebKit Bug Importer
Comment 1 2011-12-08 14:47:33 PST
Brent Fulgham
Comment 2 2012-01-11 17:04:33 PST
Fixed by a commit a week or two ago. These tests now work again.
David Kilzer (:ddkilzer)
Comment 3 2012-01-12 08:43:16 PST
*** This bug has been marked as a duplicate of bug 66521 ***
Adam Roben (:aroben)
Comment 4 2012-01-12 08:52:10 PST
testapi != TestWebKitAPI
Note You need to log in before you can comment on or make changes to this bug.