<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>74127</bug_id>
          
          <creation_ts>2011-12-08 14:33:57 -0800</creation_ts>
          <short_desc>[Windows, WinCairo] testapi crashes in Release Build</short_desc>
          <delta_ts>2012-01-12 08:52:10 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Windows XP</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Brent Fulgham">bfulgham</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aroben</cc>
    
    <cc>barraclough</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>mhahnenberg</cc>
    
    <cc>oliver</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>517803</commentid>
    <comment_count>0</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2011-12-08 14:33:57 -0800</bug_when>
    <thetext>The &apos;testapi&apos; test program will fail when running with default arguments (causing it to execute the &quot;testapi.js&quot; 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(&apos;throwOnCall&apos;) should be an exception and is.
PASS: new MyObject(&apos;throwOnConstruct&apos;) should be an exception and is.
PASS: &apos;throwOnHasInstance&apos; 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, &quot;doesNotExist&quot;) 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.
&lt;&lt;&lt; CRASH &gt;&gt;&gt;

Stack trace:

 	fffffffd()	
&gt;	JavaScriptCore.dll!JSC::JSCallbackObject&lt;JSC::JSNonFinalObject&gt;::getOwnPropertySlot(JSC::JSCell * cell=0x003d2f70, JSC::ExecState * exec=0x02850128, const JSC::Identifier &amp; propertyName={...}, JSC::PropertySlot &amp; slot={...})  Line 141 + 0x9 bytes	C++
 	JavaScriptCore.dll!JSC::JSObject::hasProperty(JSC::ExecState * exec=0x02850128, const JSC::Identifier &amp; 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 * &amp; callFrame=0x02850128, JSC::JSValue &amp; 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 &amp; 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</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517815</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2011-12-08 14:47:33 -0800</bug_when>
    <thetext>&lt;rdar://problem/10551809&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>534426</commentid>
    <comment_count>2</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2012-01-11 17:04:33 -0800</bug_when>
    <thetext>Fixed by a commit a week or two ago.  These tests now work again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>534875</commentid>
    <comment_count>3</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2012-01-12 08:43:16 -0800</bug_when>
    <thetext>

*** This bug has been marked as a duplicate of bug 66521 ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>534883</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2012-01-12 08:52:10 -0800</bug_when>
    <thetext>testapi != TestWebKitAPI</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>