<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>/dev/null &#187; Safari</title>
	<atom:link href="http://www.nulldevice.de/tag/safari/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.nulldevice.de</link>
	<description>Static is evil.</description>
	<lastBuildDate>Fri, 18 Nov 2011 17:28:46 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Object property ordering in Google Chrome</title>
		<link>http://www.nulldevice.de/2009/09/object-property-ordering-in-google-chrome/</link>
		<comments>http://www.nulldevice.de/2009/09/object-property-ordering-in-google-chrome/#comments</comments>
		<pubDate>Sun, 06 Sep 2009 22:26:37 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Chrome]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Safari]]></category>

		<guid isPermaLink="false">http://www.nulldevice.de/?p=1021</guid>
		<description><![CDATA[Today, I prepared for the upcoming PHP/JS conferences and had a look at the mysterious bug #883 of Google Chrome and those related to it. Also I read though SquirrelFish source, which is used by Safari 4. The reason for the odd behavior of Chrome seems to be a if/else construct that is repeated throughout [...]]]></description>
			<content:encoded><![CDATA[<p>Today, I prepared for the upcoming PHP/JS conferences and had a look at the mysterious bug #883 of Google Chrome and those related to it. Also I read though SquirrelFish source, which is used by Safari 4.</p>
<p>The reason for the odd behavior of Chrome seems to be a if/else construct that is repeated throughout the source of runtime.cc:</p>
<p><code><br />
// Check if the name is trivially convertible to an index and get<br />
// the element if so.<br />
if (name-&gt;AsArrayIndex(&amp;index)) {<br />
  return GetElementOrCharAt(object, index);<br />
} else {<br />
  PropertyAttributes attr;<br />
  return object-&gt;GetProperty(*name, &amp;attr);<br />
}<br />
</code></p>
<p>Chrome makes a difference between properties and elements. And they do weird type casts. If you check JavaScriptCore, you see there is a better way:<br />
<code><br />
inline JSValue JSObject::get(ExecState* exec, const Identifier&amp; propertyName) const<br />
{<br />
  PropertySlot slot(this);<br />
  if (const_cast(this)-&gt;getPropertySlot(exec, propertyName, slot))<br />
    return slot.getValue(exec, propertyName);<br />
  return jsUndefined();<br />
}<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.nulldevice.de/2009/09/object-property-ordering-in-google-chrome/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Safari rocks!</title>
		<link>http://www.nulldevice.de/2008/05/safari-rocks/</link>
		<comments>http://www.nulldevice.de/2008/05/safari-rocks/#comments</comments>
		<pubDate>Thu, 08 May 2008 16:56:30 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Browser]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Safari]]></category>

		<guid isPermaLink="false">http://www.nulldevice.de/?p=788</guid>
		<description><![CDATA[I forgot to mention why I had to install Privoxy (see my last post): Because I started using Safari, which doesn&#8217;t care about my privacy and security in the same way as Firefox does. Sadly, Firefox crashes every couple of minutes since the last update. Another reason for using Safari is it&#8217;s JavaScript performance: The [...]]]></description>
			<content:encoded><![CDATA[<p>I forgot to mention why I had to install Privoxy (see my last post): Because I started using Safari, which doesn&#8217;t care about my privacy and security in the same way as Firefox does. Sadly, Firefox crashes every couple of minutes since the last update. Another reason for using Safari is it&#8217;s JavaScript performance:</p>
<p><img class="alignnone size-full wp-image-791" title="jQuery, YUI and Dojo JS selector performance" src="http://www.nulldevice.de/wp-content/uploads/2008/05/graph-3.png" alt="uery, YUI and Dojo JS selector performance" /></p>
<p>The results show the final time in ms for the tests on <a href="http://www.domassistant.com/slickspeed/">http://www.domassistant.com/slickspeed/</a>.</p>
<p>I&#8217;ve also done the same test on my Linux notebook (which is of course a bit slower than the 64bit Windows XP workstation) with Opera, Epiphany and Firefox:</p>
<p><img class="alignnone size-full wp-image-793" title="JavaScript performance of Firefox, Opera and Epiphany" src="http://www.nulldevice.de/wp-content/uploads/2008/05/graph-4.png" alt="JavaScript performance of Firefox, Opera and Epiphany" /></p>
<p>Still, the Webkit engine is the fastest! So go and try for yourself.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nulldevice.de/2008/05/safari-rocks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

