<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
   <channel>
      <title>Francis Cheng</title>
      <link>http://blogs.adobe.com/fcheng/</link>
      <description>ActionScript, ECMAScript and the Flash Platform</description>
      <language>en</language>
      <copyright>Copyright 2008</copyright>
      <lastBuildDate>Thu, 15 May 2008 15:29:02 -0800</lastBuildDate>
      <generator>http://www.sixapart.com/movabletype/?v=3.2</generator>
      <docs>http://blogs.law.harvard.edu/tech/rss</docs> 

            <item>
         <title>ECMAScript 4 Object Initializers and Type Annotations</title>
         <description><![CDATA[<p>
My previous post was about ECMAScript 4 object initializers and fixtures. In this post, I'm going to talk about another new feature of ECMAScript 4 object initializers: type annotations. That's right, in ES4 you'll be able to place type annotations on object initializers. To recap, an object initializer, a.k.a. an object literal, is often used in ActionScript 3 instead of the <code>new</code> operator to create an instance of the Object class. For example:
</p>

<pre>
var techWriter:Object = {fname:"Francis", lname:"Cheng", company:"Adobe"};
</pre>]]></description>
         <link>http://blogs.adobe.com/fcheng/2008/05/ecmascript_4_object_initialize.html</link>
         <guid>http://blogs.adobe.com/fcheng/2008/05/ecmascript_4_object_initialize.html</guid>
         <category>ECMAScript</category>
         <pubDate>Thu, 15 May 2008 15:29:02 -0800</pubDate>
      </item>
            <item>
         <title>Object Initializers and Fixtures for ECMAScript 4th Edition</title>
         <description><![CDATA[<p>
A recently released ECMAScript 4 draft specification for object initializers includes significant enhancements to the expressive power of object initializers. This post focuses on the ability to designate specific properties as fixtures, which is not possible in ECMAScript 3rd edition or ActionScript 3.0. 
</p>
<p>
You may have used object initializers in ActionScript 3.0 before. They provide an easy way to assign a literal value to a variable of type Object. For example, in ActionScript 3.0, you may see something like:
</p>

<textarea cols=65 rows=2 READONLY>
var myObj:Object = {name:"foo", color:"red"};
trace(myObj.name, myObj.color); // foo red
</textarea>
]]></description>
         <link>http://blogs.adobe.com/fcheng/2008/04/object_initializers_enhanced_f.html</link>
         <guid>http://blogs.adobe.com/fcheng/2008/04/object_initializers_enhanced_f.html</guid>
         <category>ECMAScript</category>
         <pubDate>Wed, 16 Apr 2008 10:30:00 -0800</pubDate>
      </item>
            <item>
         <title>Flash Player Public Bugbase Introduced</title>
         <description><![CDATA[<p>Today, Adobe's Flash Player team introduced the <a href="https://bugs.adobe.com/flashplayer/">new public bug and issue tracking system</a>. This replaces the old wishform where you submitted bugs and enhancement requests but could not track the issue's progress. The new system is based on the same JIRA issue tracking system already in use by the Flex and Core ActionScript teams. This means that you will be able to first search to see whether someone has already reported the issue. If you find that someone has done so, you can vote for that issue to raise its visibility. Thereafter, you can track the issue's progress. Here's the official announcement of the page and another link to the page itself:
</p>

<ul>
  <li><a href="http://www.adobe.com/devnet/logged_in/tmccauley_fplayer_bugbase.html">Introducing the Flash Player bug and issue management system</a></li>
  <li><a href="https://bugs.adobe.com/flashplayer/">Adobe Bug and Issue Management System</a></li>
</ul>]]></description>
         <link>http://blogs.adobe.com/fcheng/2008/04/flash_player_public_bugbase_in.html</link>
         <guid>http://blogs.adobe.com/fcheng/2008/04/flash_player_public_bugbase_in.html</guid>
         <category>Flash Player</category>
         <pubDate>Tue, 08 Apr 2008 16:55:13 -0800</pubDate>
      </item>
            <item>
         <title>New Draft of ECMAScript 4 Edition Grammar Released</title>
         <description><![CDATA[<p>
Adobe's Jeff Dyer has released a new draft of the ECMAScript 4th Edition normative grammar. The updated draft is available in both PDF and XLS formats. Here are the relevant links:
</p>

<ul>
  <li><a href="http://wiki.ecmascript.org/doku.php?id=proposals:normative_grammar">Normative Grammar Proposal on the ECMAScript Wiki site, with links to both PDF and XLS versions</a></li>
  <li><a href="http://www.ecmascript.org/es4/spec/grammar.pdf">Direct link to the PDF version of the normative grammar</a></li>
  <li><a href="http://www.ecmascript.org/es4/spec/grammar.xls">Direct link to the XLS version of the normative grammar</a></li>
  <li><a href="https://mail.mozilla.org/pipermail/es4-discuss/2008-March/002564.html">Jeff's announcment to the ES4-Discuss mailing list about the updated grammar</a></li>
</ul>]]></description>
         <link>http://blogs.adobe.com/fcheng/2008/03/new_draft_of_ecmascript_4_edit.html</link>
         <guid>http://blogs.adobe.com/fcheng/2008/03/new_draft_of_ecmascript_4_edit.html</guid>
         <category>ECMAScript</category>
         <pubDate>Mon, 31 Mar 2008 10:53:22 -0800</pubDate>
      </item>
            <item>
         <title>Proper Tail Calls Dropped from ECMAScript 4th Edition</title>
         <description><![CDATA[<p>Brendan Eich reports that the Proper Tail Calls proposal for ECMAScript 4th Edition has been dropped. Brendan mentioned in <a href="https://mail.mozilla.org/pipermail/es4-discuss/2008-March/002552.html">a posting to the ES4-Discuss list</a> yesterday that the proposal was dropped at the committee meeting last Friday:
</p>
<p>"...(news flash) proper tail calls are out of ES4 as of yesterday's Ecma TC39 meeting, by general (regretful, in Mozilla's case) agreement."
</p>
<p>
It's not in the meeting notes yet, but I'm sure it will be added before the meeting notes are finalized. I guess the writing was on the wall, because the only three companies that have commented on this feature have all marked this feature as a low priority in the <a href="http://spreadsheets.google.com/pub?key=pFIHldY_CkszsFxMkQOReAQ&gid=2">ES4 Progress Tracking Spreadsheet</a>.]]></description>
         <link>http://blogs.adobe.com/fcheng/2008/03/proper_tail_calls_dropped_from.html</link>
         <guid>http://blogs.adobe.com/fcheng/2008/03/proper_tail_calls_dropped_from.html</guid>
         <category>ECMAScript</category>
         <pubDate>Sun, 30 Mar 2008 20:59:01 -0800</pubDate>
      </item>
            <item>
         <title>ECMAScript 4 Edition Progress Spreadsheet</title>
         <description><![CDATA[<p>John Resig, Mozilla's JavaScript Evangelist and creator of jQuery, has created <a href="http://spreadsheets.google.com/pub?key=pFIHldY_CkszsFxMkQOReAQ&gid=2">a spreadsheet to track the progress of the various implementations of ECMAScript 4th Edition</a>. There are about a half-dozen implementations in development, including the reference implementation that the ECMAScript working group is developing. Here's a brief description of the implementations so that you know what's what when you take a gander at the spreadsheet:
</p>

]]></description>
         <link>http://blogs.adobe.com/fcheng/2008/03/ecmascript_4_edition_progress.html</link>
         <guid>http://blogs.adobe.com/fcheng/2008/03/ecmascript_4_edition_progress.html</guid>
         <category>ECMAScript</category>
         <pubDate>Wed, 12 Mar 2008 10:35:33 -0800</pubDate>
      </item>
            <item>
         <title>Proposed ... (splat) operator in ECMAScript 4th Edition allows easy pass-through of rest arguments to super constructor. </title>
         <description><![CDATA[<p>
Recently, Brendan Eich added <a href="http://bugs.ecmascript.org/ticket/357">a new trac ticket</a> that proposes a new operator, <code>...</code> (informally called "splat"), for ECMAScript 4th edition. The fate of this ticket is currently unknown, but I really like this proposal because it solves a thorny issue I've had when trying to pass ...rest arguments to a super constructor in ActionScript 3.0. I'll get back to that problem in a minute, but first I want to draw a clear distinction between the proposed <code>...</code> (splat) operator and the </code>...</code> (rest) parameter that many of you have probably used in ActionScript 3.0.
</p>]]></description>
         <link>http://blogs.adobe.com/fcheng/2008/03/proposed_splat_operator_in_ecm.html</link>
         <guid>http://blogs.adobe.com/fcheng/2008/03/proposed_splat_operator_in_ecm.html</guid>
         <category>ECMAScript</category>
         <pubDate>Fri, 07 Mar 2008 14:01:19 -0800</pubDate>
      </item>
            <item>
         <title>ECMAScript 4th Edition Vectors Proposal Draft 1</title>
         <description><![CDATA[Lars T. Hansen, a computer scientist here at Adobe and the editor of the ECMAScript 4th Edition Specification, has written an initial rough draft of the Vectors proposal. The entire draft is reproduced below from <a href="https://mail.mozilla.org/pipermail/es4-discuss/2008-March/002065.html">his post on the ES4-Discuss list</a>. I'm reproducing it in its entirety because the discussion list archive converts the file such that you see the raw HTML, which can be a little hard to read. If you have comments, please join the <a href="https://mail.mozilla.org/listinfo/es4-discuss">ES4-Discuss list</a> and join in the conversation. Comments on this blog are always welcome, but to get the attention of the ES4 decision makers, you need to join the ES4-discuss list and post your comments there.  Here's the link to the draft proposal:

<ul>
  <li><a href="http://blogs.adobe.com/fcheng/ecma/vector_draft_1.html">Vector class ECMAScript 4th Edition Proposal, Draft 1</a></li>
</ul>]]></description>
         <link>http://blogs.adobe.com/fcheng/2008/03/ecmascript_4th_edition_vectors_1.html</link>
         <guid>http://blogs.adobe.com/fcheng/2008/03/ecmascript_4th_edition_vectors_1.html</guid>
         <category>ECMAScript</category>
         <pubDate>Mon, 03 Mar 2008 18:44:43 -0800</pubDate>
      </item>
            <item>
         <title>Type Parameters in ECMAScript 4th Edition</title>
         <description><![CDATA[<p>
The ECMAScript 4th Edition draft specification includes something called type parameters, also known as parameterized types or generics. This feature is useful for adding type checking to collection classes. For example, let's say you have a List class that you have customized to your liking.
</p>]]></description>
         <link>http://blogs.adobe.com/fcheng/2008/02/type_parameters_in_ecmascript.html</link>
         <guid>http://blogs.adobe.com/fcheng/2008/02/type_parameters_in_ecmascript.html</guid>
         <category></category>
         <pubDate>Thu, 28 Feb 2008 21:30:17 -0800</pubDate>
      </item>
            <item>
         <title>ECMAScript 4th edition Reference Implementation M2</title>
         <description><![CDATA[<p>Last week the ES4 working group released a new version of the ES4 reference implementation (RI). The new build, M2 (for Milestone 2), replaces the M1 build that was posted back in November 2007. Today, one of the most active implementors of the RI, Graydon Hoare of Mozilla, posted a detailed "punch list" of all the proposed features that are either included or not included in the latest version of the RI.</p>
]]></description>
         <link>http://blogs.adobe.com/fcheng/2008/02/ecmascript_4th_edition_referen.html</link>
         <guid>http://blogs.adobe.com/fcheng/2008/02/ecmascript_4th_edition_referen.html</guid>
         <category>ECMAScript</category>
         <pubDate>Tue, 19 Feb 2008 11:49:09 -0800</pubDate>
      </item>
            <item>
         <title>Vectors in ECMAScript 4</title>
         <description><![CDATA[<p>A new built-in class named Vector is proposed for ECMAScript edition 4. This class is similar to the Array class, but is designed for better performance, efficiency and error checking. Some interesting aspects of the Vector class:</p>

<ul>
  <li>vectors are dense;</li>
  <li>vectors do bounds checking;</li>
  <li>vectors can be fixed length;</li>
  <li>vectors have type parameters;</li>
  <li>vectors have the same methods as arrays.</li>
</ul>

]]></description>
         <link>http://blogs.adobe.com/fcheng/2008/02/vectors.html</link>
         <guid>http://blogs.adobe.com/fcheng/2008/02/vectors.html</guid>
         <category>ECMAScript</category>
         <pubDate>Wed, 13 Feb 2008 14:13:28 -0800</pubDate>
      </item>
            <item>
         <title>Logical Assignment Operators</title>
         <description><![CDATA[<p>Thought I'd switch gears this week and talk about Logical Assignment Operators (<code>||=</code>, <code>&&=</code>), a feature that is proposed for ECMAScript 4th edition, but is already implemented in ActionScript 3.0. To understand the rationale behind the Logical Assignment Operators, you need to understand how the logical operators in ECMAScript and ActionScript work. Most people think of these operators in purely boolean terms. In other words, if you have two boolean variables, <code>conditionA</code> and <code>conditionB</code>, you can use the logical operators to calculate logical results. For example, if one condition is <code>true</code> and the other is <code>false</code>, the logical AND operator returns a value of <code>false</code> because both conditions have to be <code>true</code> in order for logical AND to return <code>true</code>. ]]></description>
         <link>http://blogs.adobe.com/fcheng/2008/02/logical_assignment_operators.html</link>
         <guid>http://blogs.adobe.com/fcheng/2008/02/logical_assignment_operators.html</guid>
         <category>ActionScript</category>
         <pubDate>Thu, 07 Feb 2008 10:30:29 -0800</pubDate>
      </item>
            <item>
         <title>Proper Tail Calls and State Machines</title>
         <description><![CDATA[<p>It turns out that Proper Tail Calls (PTC) are handy if you want to create a simple "state machine" or "finite state machine" (See my <a href="http://blogs.adobe.com/fcheng/2008/01/proper_tail_calls_a_definition.html">previous post</a> if you don't know what PTC is). A state machine is a way to create a model for the way an object behaves. For example, let's create a state machine model for a United States traffic light. First I'll use a design pattern to create one, then I'll show you a completely different approach using PTC. Here are the components of the model:<p>

<ul>
  <li>Finite number of states. There are three states in our example: red, yellow, and green.</li>
  <li>Input. This is an event-driven model, so the input is an event that signifies a light change.</li>
  <li>Finite number of transitions. There are three transitions in our example: red to green, green to yellow, and yellow to red.</li>
</ul>
]]></description>
         <link>http://blogs.adobe.com/fcheng/2008/02/proper_tail_calls_and_state_ma.html</link>
         <guid>http://blogs.adobe.com/fcheng/2008/02/proper_tail_calls_and_state_ma.html</guid>
         <category>ECMAScript</category>
         <pubDate>Fri, 01 Feb 2008 09:16:07 -0800</pubDate>
      </item>
            <item>
         <title>Proper Tail Calls and Recursion</title>
         <description><![CDATA[<p>Today I'm going to talk about the proposed Proper Tail Calls (PTC) feature and recursion.  I'm going to show you how PTC can significantly reduce stack usage for functions with recursive calls in tail position. If you recall, I mentioned in <a href="http://blogs.adobe.com/fcheng/2008/01/proper_tail_calls_a_definition.html">my previous post</a> that Proper Tail Calls is also called Proper Tail Recursion. This is because PTC has a significant effect on certain types of recursive functions. In case you're unfamiliar with recursion, a recursive function is a function that calls itself. For example, we could use a recursive function to calculate the factorial of a number, which means multiplying a number by every integer between that number and zero, as in 3! = 3 x 2 x 1 = 6. ]]></description>
         <link>http://blogs.adobe.com/fcheng/2008/01/proper_tail_calls_and_recursio.html</link>
         <guid>http://blogs.adobe.com/fcheng/2008/01/proper_tail_calls_and_recursio.html</guid>
         <category>ECMAScript</category>
         <pubDate>Wed, 30 Jan 2008 11:13:54 -0800</pubDate>
      </item>
            <item>
         <title>Proper Tail Calls, a definition</title>
         <description><![CDATA[<p>One of the things I get to do here at Adobe is help out with the drafting of the ECMAScript Edition 4 (ES4) language specification. Lately, there has been a flurry of discussion on the ES4-discuss list about one of the proposed new features, Proper Tail Calls (a.k.a. Proper Tail Recursion, but I'm going to call it PTC from now on). I thought this might give me a good opportunity to provide some background information about this feature and what it might mean for ActionScript developers in the future.</p>

<p>In case you don't know, ECMAScript is the language standard upon which JavaScript, JScript, ActionScript and many other languages are based. The current version of ECMAScript is the third edition, but a lot of work is going on for the fourth edition. So what I'm discussing here is not currently in ActionScript, but may one day be if PTC makes it into the fourth edition specification.</p>]]></description>
         <link>http://blogs.adobe.com/fcheng/2008/01/proper_tail_calls_a_definition.html</link>
         <guid>http://blogs.adobe.com/fcheng/2008/01/proper_tail_calls_a_definition.html</guid>
         <category>ECMAScript</category>
         <pubDate>Mon, 28 Jan 2008 21:51:39 -0800</pubDate>
      </item>
      
   </channel>
</rss>
