<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: Microsoft Ajax Minifier VS YUI Compressor</title>
	<atom:link href="http://ajaxian.com/archives/microsoft-ajax-minifier-vs-yui-compressor/feed" rel="self" type="application/rss+xml" />
	<link>http://ajaxian.com/archives/microsoft-ajax-minifier-vs-yui-compressor</link>
	<description>Cleaning up the web with Ajax</description>
	<lastBuildDate>Thu, 17 May 2012 07:43:39 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
	<item>
		<title>By: BertrandLeRoy</title>
		<link>http://ajaxian.com/archives/microsoft-ajax-minifier-vs-yui-compressor/comment-page-1#comment-278063</link>
		<dc:creator>BertrandLeRoy</dc:creator>
		<pubDate>Wed, 20 Jan 2010 22:07:12 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=7703#comment-278063</guid>
		<description>Aha, seems like spammers finally figured out how to circumvent Ajaxian&#039;s extremely advanced CAPTCHA ;)</description>
		<content:encoded><![CDATA[<p>Aha, seems like spammers finally figured out how to circumvent Ajaxian&#8217;s extremely advanced CAPTCHA ;)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: InfinitiesLoop</title>
		<link>http://ajaxian.com/archives/microsoft-ajax-minifier-vs-yui-compressor/comment-page-1#comment-276114</link>
		<dc:creator>InfinitiesLoop</dc:creator>
		<pubDate>Thu, 22 Oct 2009 21:51:57 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=7703#comment-276114</guid>
		<description>Yup -- when not using the HC option, it would definitely be an improvement to convert foo[&quot;bar&quot;] to foo.bar. When using HC, well, use with care, and understand the implications. And always check the gzipped result since that is what matters most -- it would be a nice feature, actually, if the tool could do that for you.</description>
		<content:encoded><![CDATA[<p>Yup &#8212; when not using the HC option, it would definitely be an improvement to convert foo["bar"] to foo.bar. When using HC, well, use with care, and understand the implications. And always check the gzipped result since that is what matters most &#8212; it would be a nice feature, actually, if the tool could do that for you.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: webreflection</title>
		<link>http://ajaxian.com/archives/microsoft-ajax-minifier-vs-yui-compressor/comment-page-1#comment-276111</link>
		<dc:creator>webreflection</dc:creator>
		<pubDate>Thu, 22 Oct 2009 20:44:51 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=7703#comment-276111</guid>
		<description>@InfinitiesLoop it makes access dynamic due to variable assignment while YUI Compressor understands unnecessary literals and it strips out unnecessary chars as well. In both case I hope we agree that there is a property access change, and that is what I wrote.
We should remember that most libraries are inside a big closure loads of nested scopes. A dynamic access to the top closure variable to discover a static literal is, in my opinion, not worth it, performances speaking, but it could save a couple of bytes.
Thanks in any case for explanation, I guess if you had to provide one, this point was not perfectly clear. Regards</description>
		<content:encoded><![CDATA[<p>@InfinitiesLoop it makes access dynamic due to variable assignment while YUI Compressor understands unnecessary literals and it strips out unnecessary chars as well. In both case I hope we agree that there is a property access change, and that is what I wrote.<br />
We should remember that most libraries are inside a big closure loads of nested scopes. A dynamic access to the top closure variable to discover a static literal is, in my opinion, not worth it, performances speaking, but it could save a couple of bytes.<br />
Thanks in any case for explanation, I guess if you had to provide one, this point was not perfectly clear. Regards</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: InfinitiesLoop</title>
		<link>http://ajaxian.com/archives/microsoft-ajax-minifier-vs-yui-compressor/comment-page-1#comment-276109</link>
		<dc:creator>InfinitiesLoop</dc:creator>
		<pubDate>Thu, 22 Oct 2009 19:26:26 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=7703#comment-276109</guid>
		<description>The Ajax Minifier does not convert property access into dynamic access -- that doesn&#039;t seem very clear here. If you have foo.bar=baz, it does _not_ convert it to foo[a]=baz. What it does do is alias literals, so if foo[&quot;bar&quot;] = baz is converted to foo[a]=baz it&#039;s only because &quot;bar&quot; was a literal that was used enough times for that to save space, it has nothing to do with changing how property access occurs. That does incur a slight performance penelty vs. foo[&quot;bar&quot;]. Whether that is enough to matter for your scenario is up to you -- it&#039;s not even the default option.</description>
		<content:encoded><![CDATA[<p>The Ajax Minifier does not convert property access into dynamic access &#8212; that doesn&#8217;t seem very clear here. If you have foo.bar=baz, it does _not_ convert it to foo[a]=baz. What it does do is alias literals, so if foo["bar"] = baz is converted to foo[a]=baz it&#8217;s only because &#8220;bar&#8221; was a literal that was used enough times for that to save space, it has nothing to do with changing how property access occurs. That does incur a slight performance penelty vs. foo["bar"]. Whether that is enough to matter for your scenario is up to you &#8212; it&#8217;s not even the default option.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: webreflection</title>
		<link>http://ajaxian.com/archives/microsoft-ajax-minifier-vs-yui-compressor/comment-page-1#comment-276089</link>
		<dc:creator>webreflection</dc:creator>
		<pubDate>Thu, 22 Oct 2009 08:55:01 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=7703#comment-276089</guid>
		<description>@shadedecho I am not talking about o[&quot;a&quot;] VS o.a, which I suppose is almost the equivalent for every JS engine and/or optimized run-time, I am talking about o[a] VS o.a 
If there is a variable there is no guarantee that variable is the expected string. A variable needs to be &quot;discovered&quot; in the current scope and it should be a primitive &quot;string&quot; or an instanceof String, or whatever Object with a valueOf or a toString call, do you follow me?
A simple example is an Array loop, where arr[i] will point to a different value and &quot;i&quot; is a primitive &quot;number&quot; (int)
Even in a small block, with or without &quot;let&quot; scope, rather than &quot;var&quot;, &quot;i&quot; needs to be discovered and its value needs to be assigned for that moment.
This is the reason extreme optimizations over loops use direct access if the length is reasonable (arr[0], arr[1], arr[2], arr[3]) avoiding both dynamic access and integer incrementation (++i)
Moreover, if we have o[&quot;a&quot;] more than twice, let&#039;s say 3 times, the variable declaration plus square brackets will cost more bytes rather than less (var a=&quot;a&quot;;o[a];o[a];o[a]; VS o.a;o.a;o.a;) and being unnecessary, plus forcing the dynamic access, do we agree YUI Compressor provides a better solution here? That is my point about performances and dynamic access, fine sometimes, but not necessary better :)</description>
		<content:encoded><![CDATA[<p>@shadedecho I am not talking about o["a"] VS o.a, which I suppose is almost the equivalent for every JS engine and/or optimized run-time, I am talking about o[a] VS o.a<br />
If there is a variable there is no guarantee that variable is the expected string. A variable needs to be &#8220;discovered&#8221; in the current scope and it should be a primitive &#8220;string&#8221; or an instanceof String, or whatever Object with a valueOf or a toString call, do you follow me?<br />
A simple example is an Array loop, where arr[i] will point to a different value and &#8220;i&#8221; is a primitive &#8220;number&#8221; (int)<br />
Even in a small block, with or without &#8220;let&#8221; scope, rather than &#8220;var&#8221;, &#8220;i&#8221; needs to be discovered and its value needs to be assigned for that moment.<br />
This is the reason extreme optimizations over loops use direct access if the length is reasonable (arr[0], arr[1], arr[2], arr[3]) avoiding both dynamic access and integer incrementation (++i)<br />
Moreover, if we have o["a"] more than twice, let&#8217;s say 3 times, the variable declaration plus square brackets will cost more bytes rather than less (var a=&#8221;a&#8221;;o[a];o[a];o[a]; VS o.a;o.a;o.a;) and being unnecessary, plus forcing the dynamic access, do we agree YUI Compressor provides a better solution here? That is my point about performances and dynamic access, fine sometimes, but not necessary better :)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: shadedecho</title>
		<link>http://ajaxian.com/archives/microsoft-ajax-minifier-vs-yui-compressor/comment-page-1#comment-276080</link>
		<dc:creator>shadedecho</dc:creator>
		<pubDate>Thu, 22 Oct 2009 06:26:44 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=7703#comment-276080</guid>
		<description>@webreflection -- why does it need to cast as a string if it&#039;s already a string?
 
I understand that [a] is two operations (in general) versus one operation for .abc.  But doesn&#039;t that then mean that [&quot;abc&quot;] should just be the same as .abc?
 
And if that&#039;s true, it would seem like engines like TraceMonkey (and perhaps others) should be able to tell if the variable being used for the property lookup is, in effect, a &quot;constant&quot;, meaning it is used as an l-value only once, in its initial declaration/assignment, and isn&#039;t changed throughout the code. If they could tell that, couldn&#039;t they pre-optimize code execution for the use of &quot;constants&quot; for property lookup, and skip all the variable lookup and casting junk, making [a] equivalent roughly to .abc?
 
I ask this because I find it quite a useful technique to turn repeated property references into [a] style with constants, for the purposes of compression. It&#039;s troublesome that this trades file size reduction for a performance hit. With minification so prevalent, I would think it would be becoming a common enough thing that the JS engines should be looking to optimize for it.</description>
		<content:encoded><![CDATA[<p>@webreflection &#8212; why does it need to cast as a string if it&#8217;s already a string?</p>
<p>I understand that [a] is two operations (in general) versus one operation for .abc.  But doesn&#8217;t that then mean that ["abc"] should just be the same as .abc?</p>
<p>And if that&#8217;s true, it would seem like engines like TraceMonkey (and perhaps others) should be able to tell if the variable being used for the property lookup is, in effect, a &#8220;constant&#8221;, meaning it is used as an l-value only once, in its initial declaration/assignment, and isn&#8217;t changed throughout the code. If they could tell that, couldn&#8217;t they pre-optimize code execution for the use of &#8220;constants&#8221; for property lookup, and skip all the variable lookup and casting junk, making [a] equivalent roughly to .abc?</p>
<p>I ask this because I find it quite a useful technique to turn repeated property references into [a] style with constants, for the purposes of compression. It&#8217;s troublesome that this trades file size reduction for a performance hit. With minification so prevalent, I would think it would be becoming a common enough thing that the JS engines should be looking to optimize for it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: webreflection</title>
		<link>http://ajaxian.com/archives/microsoft-ajax-minifier-vs-yui-compressor/comment-page-1#comment-276073</link>
		<dc:creator>webreflection</dc:creator>
		<pubDate>Wed, 21 Oct 2009 20:56:49 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=7703#comment-276073</guid>
		<description>@shadedecho from parsing point of view you need to retrieve the variable, its value eventually &quot;casted&quot; as string, and only after access the property name if any. These are 3 operations rather than just 1: access the property name if any. In this case we can spot static strings concatenations possibly replaced by variables, then concatenated, and only after the property name will be known. YUI Compressor does something clever and it is almost the same SpiderMonkey engine does if you create a Function(&quot;o&quot;, &#039;return o[&quot;key&quot;]&#039;) it will be created as return o.key which is more direct and logical.</description>
		<content:encoded><![CDATA[<p>@shadedecho from parsing point of view you need to retrieve the variable, its value eventually &#8220;casted&#8221; as string, and only after access the property name if any. These are 3 operations rather than just 1: access the property name if any. In this case we can spot static strings concatenations possibly replaced by variables, then concatenated, and only after the property name will be known. YUI Compressor does something clever and it is almost the same SpiderMonkey engine does if you create a Function(&#8220;o&#8221;, &#8216;return o["key"]&#8216;) it will be created as return o.key which is more direct and logical.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: shadedecho</title>
		<link>http://ajaxian.com/archives/microsoft-ajax-minifier-vs-yui-compressor/comment-page-1#comment-276052</link>
		<dc:creator>shadedecho</dc:creator>
		<pubDate>Wed, 21 Oct 2009 12:38:55 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=7703#comment-276052</guid>
		<description>Something I don&#039;t understand:  

var a = &quot;abc&quot;;
b[a] = 123; // less efficient?
b.abc = 123; // more efficient?

Seems like accessing the property with [] would be roughly the same as accessing it with a . operator.</description>
		<content:encoded><![CDATA[<p>Something I don&#8217;t understand:  </p>
<p>var a = &#8220;abc&#8221;;<br />
b[a] = 123; // less efficient?<br />
b.abc = 123; // more efficient?</p>
<p>Seems like accessing the property with [] would be roughly the same as accessing it with a . operator.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ywg</title>
		<link>http://ajaxian.com/archives/microsoft-ajax-minifier-vs-yui-compressor/comment-page-1#comment-276051</link>
		<dc:creator>ywg</dc:creator>
		<pubDate>Wed, 21 Oct 2009 09:33:47 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=7703#comment-276051</guid>
		<description>@Stephen Walther

Sorry to say things like that, I don&#039;t wan&#039;t to degrade the quality of your (and Microsoft Dev Team) work...
But on this particular point I had a really hard time believing this is just an &quot;accidental regression&quot; and not a corporate decision. Either you don&#039;t support them at all and strip them out, or you just leave them as they are.
But not understanding that &quot;conditionnal&quot; stands for &quot;print on certain conditions&quot;... no I don&#039;t buy this.</description>
		<content:encoded><![CDATA[<p>@Stephen Walther</p>
<p>Sorry to say things like that, I don&#8217;t wan&#8217;t to degrade the quality of your (and Microsoft Dev Team) work&#8230;<br />
But on this particular point I had a really hard time believing this is just an &#8220;accidental regression&#8221; and not a corporate decision. Either you don&#8217;t support them at all and strip them out, or you just leave them as they are.<br />
But not understanding that &#8220;conditionnal&#8221; stands for &#8220;print on certain conditions&#8221;&#8230; no I don&#8217;t buy this.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: anoncoward</title>
		<link>http://ajaxian.com/archives/microsoft-ajax-minifier-vs-yui-compressor/comment-page-1#comment-276046</link>
		<dc:creator>anoncoward</dc:creator>
		<pubDate>Wed, 21 Oct 2009 07:08:34 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=7703#comment-276046</guid>
		<description>The multitude of options don&#039;t exactly inspire confidence, but I&#039;m sure MS will reduce them in future versions. Who needs IE specific compression these days?

The MSBuild integration is a rather nice feature, but the &lt;a href=&quot;http://www.codeplex.com/YUICompressor&quot; rel=&quot;nofollow&quot;&gt;.NET port of 
YUI Compressor&lt;/a&gt; also does that very well. What&#039;s more it allows to combine files in addition to compressing them.</description>
		<content:encoded><![CDATA[<p>The multitude of options don&#8217;t exactly inspire confidence, but I&#8217;m sure MS will reduce them in future versions. Who needs IE specific compression these days?</p>
<p>The MSBuild integration is a rather nice feature, but the <a href="http://www.codeplex.com/YUICompressor" rel="nofollow">.NET port of<br />
YUI Compressor</a> also does that very well. What&#8217;s more it allows to combine files in addition to compressing them.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: rasmusfl0e</title>
		<link>http://ajaxian.com/archives/microsoft-ajax-minifier-vs-yui-compressor/comment-page-1#comment-276040</link>
		<dc:creator>rasmusfl0e</dc:creator>
		<pubDate>Wed, 21 Oct 2009 01:01:06 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=7703#comment-276040</guid>
		<description>String concatenation to build property names?! Nice try - but incurring a performance penalty in return for a minimaly faster load doesn&#039;t do it for me. That feature should be killed of ASAP. 

I&#039;ll stick with YUI - at least it doesn&#039;t mess with my code.</description>
		<content:encoded><![CDATA[<p>String concatenation to build property names?! Nice try &#8211; but incurring a performance penalty in return for a minimaly faster load doesn&#8217;t do it for me. That feature should be killed of ASAP. </p>
<p>I&#8217;ll stick with YUI &#8211; at least it doesn&#8217;t mess with my code.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: swalther</title>
		<link>http://ajaxian.com/archives/microsoft-ajax-minifier-vs-yui-compressor/comment-page-1#comment-276038</link>
		<dc:creator>swalther</dc:creator>
		<pubDate>Tue, 20 Oct 2009 21:15:20 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=7703#comment-276038</guid>
		<description>@ywg  -- Really, there is no evil conspiracy here on the part of Microsoft  :) We&#039;ve been using the Microsoft Ajax Minifier for several years to minify the JavaScript files in the Microsoft Ajax Library and the AJAX Control Toolkit. Because we found the tool to be so useful internally, we wanted to share it with the community.

There are a number of interesting suggestions in the article. For example, we do have to look at supporting conditional-compilation comments and the of /*! … */ comment notation for a future release.

One thing that the article above did not mention is that the Microsoft Ajax Minifier includes an MSBuild task that you can use to minify your JavaScript files when using Visual Studio automatically. If you want to read a more in-depth description of the Microsoft Ajax Minifier, see my blog post at:

http://stephenwalther.com/blog/archive/2009/10/16/using-the-new-microsoft-ajax-minifier.aspx

Thanks for the article.

  -- Stephen Walther (Microsoft Ajax Team)</description>
		<content:encoded><![CDATA[<p>@ywg  &#8212; Really, there is no evil conspiracy here on the part of Microsoft  :) We&#8217;ve been using the Microsoft Ajax Minifier for several years to minify the JavaScript files in the Microsoft Ajax Library and the AJAX Control Toolkit. Because we found the tool to be so useful internally, we wanted to share it with the community.</p>
<p>There are a number of interesting suggestions in the article. For example, we do have to look at supporting conditional-compilation comments and the of /*! … */ comment notation for a future release.</p>
<p>One thing that the article above did not mention is that the Microsoft Ajax Minifier includes an MSBuild task that you can use to minify your JavaScript files when using Visual Studio automatically. If you want to read a more in-depth description of the Microsoft Ajax Minifier, see my blog post at:</p>
<p><a href="http://stephenwalther.com/blog/archive/2009/10/16/using-the-new-microsoft-ajax-minifier.aspx" rel="nofollow">http://stephenwalther.com/blog/archive/2009/10/16/using-the-new-microsoft-ajax-minifier.aspx</a></p>
<p>Thanks for the article.</p>
<p>  &#8212; Stephen Walther (Microsoft Ajax Team)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: leptons</title>
		<link>http://ajaxian.com/archives/microsoft-ajax-minifier-vs-yui-compressor/comment-page-1#comment-276037</link>
		<dc:creator>leptons</dc:creator>
		<pubDate>Tue, 20 Oct 2009 21:07:49 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=7703#comment-276037</guid>
		<description>I tested compressing a 944KB javascript source file using both YUIC and the new MS AJAX compression tool.  

YUIC output = 565KB
MS AJAX Minifier output = 533KB

so, MS wins here, but when I ZIP&#039;d the files up it turns out like this:

YUIC output zipped = 112KB
MS AJAX Minifier output zipped = 114KB

I&#039;m still going to use YUIC considering the GZIP&#039;d results for YUIC are smaller after being zipped.</description>
		<content:encoded><![CDATA[<p>I tested compressing a 944KB javascript source file using both YUIC and the new MS AJAX compression tool.  </p>
<p>YUIC output = 565KB<br />
MS AJAX Minifier output = 533KB</p>
<p>so, MS wins here, but when I ZIP&#8217;d the files up it turns out like this:</p>
<p>YUIC output zipped = 112KB<br />
MS AJAX Minifier output zipped = 114KB</p>
<p>I&#8217;m still going to use YUIC considering the GZIP&#8217;d results for YUIC are smaller after being zipped.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ajpiano</title>
		<link>http://ajaxian.com/archives/microsoft-ajax-minifier-vs-yui-compressor/comment-page-1#comment-276036</link>
		<dc:creator>ajpiano</dc:creator>
		<pubDate>Tue, 20 Oct 2009 20:50:31 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=7703#comment-276036</guid>
		<description>great information in the article.  i am not sure why it has not been edited for basic grammatical errors to increase readability.</description>
		<content:encoded><![CDATA[<p>great information in the article.  i am not sure why it has not been edited for basic grammatical errors to increase readability.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ThomasHansen</title>
		<link>http://ajaxian.com/archives/microsoft-ajax-minifier-vs-yui-compressor/comment-page-1#comment-276035</link>
		<dc:creator>ThomasHansen</dc:creator>
		<pubDate>Tue, 20 Oct 2009 20:07:42 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=7703#comment-276035</guid>
		<description>@ywg
If you need another approach, you might want to check out Kariem&#039;s nAnt Build task for miifying and gunzipping as part of an nAnt build script ...
http://ra-ajax.org/custom-nant-jsmin-task-for-minifying-javascript-files.blog
.
and
http://ra-ajax.org/webresource-axd-and-javascript-gzip-compression-a-simple-solution.blog
.
We&#039;re using it in Ra ourselves ...</description>
		<content:encoded><![CDATA[<p>@ywg<br />
If you need another approach, you might want to check out Kariem&#8217;s nAnt Build task for miifying and gunzipping as part of an nAnt build script &#8230;<br />
<a href="http://ra-ajax.org/custom-nant-jsmin-task-for-minifying-javascript-files.blog" rel="nofollow">http://ra-ajax.org/custom-nant-jsmin-task-for-minifying-javascript-files.blog</a><br />
.<br />
and<br />
<a href="http://ra-ajax.org/webresource-axd-and-javascript-gzip-compression-a-simple-solution.blog" rel="nofollow">http://ra-ajax.org/webresource-axd-and-javascript-gzip-compression-a-simple-solution.blog</a><br />
.<br />
We&#8217;re using it in Ra ourselves &#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ywg</title>
		<link>http://ajaxian.com/archives/microsoft-ajax-minifier-vs-yui-compressor/comment-page-1#comment-276033</link>
		<dc:creator>ywg</dc:creator>
		<pubDate>Tue, 20 Oct 2009 19:00:15 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=7703#comment-276033</guid>
		<description>The conditionnal comment semi-removal, is a very obvious attempt to break compatibility with other browsers.

I can understand that microsoft tries to push his software, but delibirate attempt to break his users&#039; software is unaceptable.

The string accessor optimisation is a good idea in theory, but anyone coming from a javascript/actionscript (or any interpreted language) knows that string concatenation and objects lookup are a performance issue.
I&#039;m not even sure this is worth it, considering than the LZ77 algorithm in Gunzip should reduce theses string.

Numbers and brackets optimisation are pretty cool.</description>
		<content:encoded><![CDATA[<p>The conditionnal comment semi-removal, is a very obvious attempt to break compatibility with other browsers.</p>
<p>I can understand that microsoft tries to push his software, but delibirate attempt to break his users&#8217; software is unaceptable.</p>
<p>The string accessor optimisation is a good idea in theory, but anyone coming from a javascript/actionscript (or any interpreted language) knows that string concatenation and objects lookup are a performance issue.<br />
I&#8217;m not even sure this is worth it, considering than the LZ77 algorithm in Gunzip should reduce theses string.</p>
<p>Numbers and brackets optimisation are pretty cool.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

