...
Using these AS3 references:
- Global Constants, Functions and Classes
...
- Annotating JavaScript for the Closure Compiler
...
Table quick navigation:
- coming soon ;-)
...
Legend for Javascript column color usage:
Black: JavaScript matches ActionScript
Red: solution not agreed upon
Blue: solution looks good, need consencus to approve (use Comments or Notes column)
Green: solution agreed upon
| Test Available In FlexJS (+/-)? | ActionScript | JavaScript + Closure annotation | Notes | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Global Constants |
|
|
|
| ||||||||||||||
Infinity | - | Infinity | Infinity |
| ||||||||||||||
-Infinity | - | -Infinity | -Infinity |
| ||||||||||||||
NaN | - | NaN | NaN |
| ||||||||||||||
undefined | - | undefined | undefined |
| ||||||||||||||
|
|
|
|
| ||||||||||||||
Global Functions |
|
|
|
| ||||||||||||||
Array() | - Array | Array | new Array(...values) | There is no matching method in Javascript. Do we use a utility method that returns an array, or do we just use a 'new' Array object? | ||||||||||||||
Boolean() | - | Boolean(value) | new Boolean(value) | See "Array" function note. |
| Boolean() | - | Boolean | Boolean |
| ||||||||
decodeURI() | - | decodeURI(value) | decodeURI(value) |
| ||||||||||||||
decodeURIComponent() | - | decodeURIComponent(value) | decodeURIComponent(value) |
| ||||||||||||||
encodeURI() | - | encodeURI(value) | encodeURI(value) |
| ||||||||||||||
encodeURIComponent() | - | encodeURIComponent(value) | encodeURIComponent(value) |
| ||||||||||||||
escape() |
|
| - | escape(value) | escape(value) |
| ||||||||||||
int() |
|
| - | int(value) | (value >> 0) |
| ||||||||||||
isFinite() |
|
| - | isFinite(value) | isFinite(value) |
| ||||||||||||
isNaN() |
|
| - | isNaN(value) | isNaN(value) |
| ||||||||||||
isXMLName() |
|
|
| - | isXMLName(value) | ? | There is no matching implementation in JavaScript. We may need to build a utility function to cover this one. | |||||||||||
Number() |
|
|
|
| ||||||||||||||
Object() |
|
|
|
| ||||||||||||||
parseFloat() |
|
|
|
| ||||||||||||||
parseInt() |
|
|
|
| ||||||||||||||
String() |
|
|
|
| ||||||||||||||
trace() |
|
|
|
| ||||||||||||||
uint() |
|
|
|
| ||||||||||||||
unescape() |
|
|
|
| ||||||||||||||
Vector() |
|
|
|
| ||||||||||||||
XML() |
|
|
|
| ||||||||||||||
- | Number(value) | new Number(value) | See "Array" function note. | |||||||||||||||
Object() | - | result = Object(value) ; | | In ActionScript, calling 'Object(value)' returns 'value' (since all values are objects). Given that, does it make sense to just write 'value' in JavaScript and let the Closure Compiler "cast" it? | ||||||||||||||
parseFloat() | - | parseFloat(value) | parseFloat(value) |
| ||||||||||||||
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="2ba029e3-54c8-4b62-8afb-d84f8aad6a7f"><ac:plain-text-body><![CDATA[ | parseInt() | - | parseInt(value, [radix]) | parseInt(value, [radix]) |
| ]]></ac:plain-text-body></ac:structured-macro> | ||||||||||||
String() | - | String(value) | new String(value) | See "Array" function note. | ||||||||||||||
trace() | - | trace(...values) | console.log(...values) | We may need a utility function to wrap 'console.log', as not all browsers have debugging enable, and calling to a non-existent 'console' object will cause an error. | ||||||||||||||
uint() |
| uint(value) | (value >>> 0) |
| ||||||||||||||
unescape() | - | unescape(value) | unescape(value) |
| ||||||||||||||
Vector() | - | result = Vector.<type>(valueArray); | | Let the Closure Compiler handle (check) what is basically a type cast from general Array to a Typed Array. | ||||||||||||||
XML() | - | XML(value) | ? | Use 'goog.dom.xml'? | ||||||||||||||
XMLList() |
| XMLList(value) | ? | Use 'goog.dom.xml'? | XMLList() |
|
| | ||||||||||
|
|
|
|
|
| |||||||||||||
Classes |
|
|
|
| ||||||||||||||
ArgumentError | - | ArgumentError |
| Error | Need utility class and cast a regular error object to that, for the sake of the Closure Compiler? | |||||||||||||
arguments | - | arguments | arguments |
| ||||||||||||||
Array | - | Array |
| Array | Not sure if all properties and methods of AS Array class map to the JS Array class. | |||||||||||||
Boolean |
| Boolean | Boolean |
| ||||||||||||||
Class | - |
|
|
| ||||||||||||||
Date | - |
|
|
|
| |||||||||||||
DefinitionError |
|
|
|
| ||||||||||||||
Error |
|
|
|
| ||||||||||||||
EvalError |
|
|
|
| ||||||||||||||
Date | Date | The JS class seems to be missing all the properties that the AS class offers. The methods on both classes match, AFAICT. | ||||||||||||||||
DefinitionError | - | DefinitionError | Error | Need utility class and cast a regular Error object to that, for the sake of the Closure Compiler? | ||||||||||||||
Error | - | Error | Error | There is no 'errorID' property on the JS Error class | ||||||||||||||
EvalError | - | EvalError | EvalError | Need utility class and cast a regular Error object to that, for the sake of the Closure Compiler? | ||||||||||||||
Function | - | Function | Function | Function |
|
|
|
| ||||||||||
int | - | int | Number |
| ||||||||||||||
JSON | - | JSON |
| JSON | How about support for "older" browsers? Do we provide "if not JSON, add custom JSON to window object"? | |||||||||||||
Math | - | Math | Math |
| ||||||||||||||
Namespace | - | Namespace |
| ? | Do we need a utility class? | |||||||||||||
Number | - | Number | Number |
| ||||||||||||||
Object | - | Object |
| Object | "setPropertyIsEnumerable" not available on JS Object.prototype... | |||||||||||||
QName | - |
|
|
| ||||||||||||||
RangeError |
|
|
|
| ||||||||||||||
ReferenceError |
|
|
|
| ||||||||||||||
RegExp |
|
|
|
| ||||||||||||||
SecurityError |
|
|
|
| ||||||||||||||
String |
|
|
|
| ||||||||||||||
SyntaxError |
|
|
|
| ||||||||||||||
TypeError |
|
|
|
| ||||||||||||||
uint |
|
|
|
| ||||||||||||||
URIError |
|
|
|
| ||||||||||||||
Vector |
|
|
|
| ||||||||||||||
VerifyError |
|
|
|
| ||||||||||||||
XML |
|
|
|
| ||||||||||||||
XMLList |
|
|
|
| ||||||||||||||
|
|
|
|
| ||||||||||||||
Arithmetic |
|
|
|
| ||||||||||||||
+ |
|
|
|
| ||||||||||||||
-- |
|
|
|
| ||||||||||||||
/ |
|
|
|
| ||||||||||||||
++ |
|
|
|
| ||||||||||||||
% |
|
|
|
| ||||||||||||||
* |
|
|
|
| ||||||||||||||
- |
|
|
|
| ||||||||||||||
|
|
|
|
| ||||||||||||||
Arithmetic compound assignment |
|
|
|
| ||||||||||||||
+= |
|
|
|
| ||||||||||||||
/= |
|
|
|
| ||||||||||||||
%= |
|
|
|
| ||||||||||||||
*= |
|
|
|
| ||||||||||||||
-= |
|
|
|
| ||||||||||||||
|
|
|
|
| ||||||||||||||
Assignment |
|
|
|
| ||||||||||||||
= |
|
|
|
| ||||||||||||||
|
|
|
|
| ||||||||||||||
Bitwise |
|
|
|
| ||||||||||||||
& |
|
|
|
| ||||||||||||||
<< |
|
|
|
| ||||||||||||||
~ |
|
|
|
| ||||||||||||||
| |
|
|
|
| ||||||||||||||
>> |
|
|
|
| ||||||||||||||
>>> |
|
|
|
| ||||||||||||||
^ |
|
|
|
| ||||||||||||||
|
|
|
|
| ||||||||||||||
Bitwise compound assignment |
|
|
|
| ||||||||||||||
&= |
|
|
|
| ||||||||||||||
<<= |
|
|
|
| ||||||||||||||
|= |
|
|
|
| ||||||||||||||
>>= |
|
|
|
| ||||||||||||||
>>>= |
|
|
|
| ||||||||||||||
^= |
|
|
|
| ||||||||||||||
|
|
|
|
| ||||||||||||||
Comment |
|
|
|
| ||||||||||||||
/../ |
|
|
|
| ||||||||||||||
// |
|
|
|
| ||||||||||||||
|
|
|
|
| ||||||||||||||
Comparison |
|
|
|
| ||||||||||||||
== |
|
|
|
| ||||||||||||||
> |
|
|
|
| ||||||||||||||
>= |
|
|
|
| ||||||||||||||
!= |
|
|
|
| ||||||||||||||
< |
|
|
|
| ||||||||||||||
<= |
|
|
|
| ||||||||||||||
=== |
|
|
|
| ||||||||||||||
!== |
|
|
|
| ||||||||||||||
|
|
|
|
| ||||||||||||||
Logical |
|
|
|
| ||||||||||||||
&& |
|
|
|
| ||||||||||||||
&&= |
|
|
|
| ||||||||||||||
! |
|
|
|
| ||||||||||||||
|| |
|
|
|
| ||||||||||||||
||= |
|
|
|
| ||||||||||||||
|
|
|
|
| ||||||||||||||
Other |
|
|
|
| ||||||||||||||
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="f7724d1796aeaf50-5321ce44-42784ca5-9ea6a832-2a6fa9c59d6cd010f40a2af4"><ac:plain-text-body><![CDATA[ | [] |
|
|
|
| ]]></ac:plain-text-body></ac:structured-macro> | ||||||||||||
as |
|
|
|
| ||||||||||||||
, |
|
|
|
| ||||||||||||||
?: |
|
|
|
| ||||||||||||||
delete |
|
|
|
| ||||||||||||||
. |
|
|
|
| ||||||||||||||
in |
|
|
|
| ||||||||||||||
instanceof |
|
|
|
| ||||||||||||||
is |
|
|
|
| ||||||||||||||
:: |
|
|
|
| ||||||||||||||
new |
|
|
|
| ||||||||||||||
{} |
|
|
|
| ||||||||||||||
() |
|
|
|
| ||||||||||||||
/ |
|
|
|
| ||||||||||||||
: |
|
|
|
| ||||||||||||||
typeof |
|
|
|
| ||||||||||||||
void |
|
|
|
| ||||||||||||||
|
|
|
|
| ||||||||||||||
String |
|
|
|
| ||||||||||||||
+ |
|
|
|
| ||||||||||||||
+= |
|
|
|
| ||||||||||||||
" |
|
|
|
| ||||||||||||||
|
|
|
|
| ||||||||||||||
XML |
|
|
|
| ||||||||||||||
@ |
|
|
|
| ||||||||||||||
{} |
|
|
|
| ||||||||||||||
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="dbbea4b135bbf023-104ec536-47a6403c-b00684cc-fba153ab88c52e22437ef6fb"><ac:plain-text-body><![CDATA[ | [] |
|
|
|
| ]]></ac:plain-text-body></ac:structured-macro> | ||||||||||||
+ |
|
|
|
| ||||||||||||||
+= |
|
|
|
| ||||||||||||||
delete |
|
|
|
| ||||||||||||||
.. |
|
|
|
| ||||||||||||||
. |
|
|
|
| ||||||||||||||
() |
|
|
|
| ||||||||||||||
<> |
|
|
|
| ||||||||||||||
|
|
|
|
| ||||||||||||||
Statements |
|
|
|
| ||||||||||||||
break |
|
|
|
| ||||||||||||||
case |
|
|
|
| ||||||||||||||
continue |
|
|
|
| ||||||||||||||
default |
|
|
|
| ||||||||||||||
do...while |
|
|
|
| ||||||||||||||
else |
|
|
|
| ||||||||||||||
for |
|
|
|
| ||||||||||||||
for...in |
|
|
|
| ||||||||||||||
for each...in |
|
|
|
| ||||||||||||||
if |
|
|
|
| ||||||||||||||
label |
|
|
|
| ||||||||||||||
return |
|
|
|
| ||||||||||||||
super |
|
|
|
| ||||||||||||||
switch |
|
|
|
| ||||||||||||||
throw |
|
|
|
| ||||||||||||||
try...catch...finally |
|
|
|
| ||||||||||||||
while |
|
|
|
| ||||||||||||||
with |
|
|
|
| ||||||||||||||
|
|
|
|
| ||||||||||||||
Attribute Keywords |
|
|
|
| ||||||||||||||
dynamic |
|
|
|
| ||||||||||||||
final |
|
|
|
| ||||||||||||||
internal |
|
|
|
| ||||||||||||||
native |
|
|
|
| ||||||||||||||
override |
|
|
|
| ||||||||||||||
private |
|
|
|
| ||||||||||||||
protected |
|
|
|
| ||||||||||||||
public |
|
|
|
| ||||||||||||||
static |
|
|
|
| ||||||||||||||
|
|
|
|
| ||||||||||||||
Definition keywords |
|
|
|
| ||||||||||||||
... (rest) parameter |
|
|
|
| ||||||||||||||
class |
|
|
|
| ||||||||||||||
const |
|
|
|
| ||||||||||||||
extends |
|
|
|
| ||||||||||||||
function |
|
|
|
| ||||||||||||||
get |
|
|
|
| ||||||||||||||
implements |
|
|
|
| ||||||||||||||
interface |
|
|
|
| ||||||||||||||
namespace |
|
|
|
| ||||||||||||||
package |
|
|
|
| ||||||||||||||
set |
|
|
|
| ||||||||||||||
var |
|
|
|
| ||||||||||||||
|
|
|
|
| ||||||||||||||
Directives |
|
|
|
| ||||||||||||||
default xml namespace |
|
|
|
| ||||||||||||||
import |
|
|
|
| ||||||||||||||
include |
|
|
|
| ||||||||||||||
use namespace |
|
|
|
| ||||||||||||||
|
|
|
|
| ||||||||||||||
Namespaces |
|
|
|
| ||||||||||||||
AS3 |
|
|
|
| ||||||||||||||
flash_proxy |
|
|
|
| ||||||||||||||
object_proxy |
|
|
|
| ||||||||||||||
|
|
|
|
| ||||||||||||||
Primary expression keywords |
|
|
|
| ||||||||||||||
false |
|
|
|
| ||||||||||||||
null |
|
|
|
| ||||||||||||||
this |
|
|
|
| ||||||||||||||
true |
|
|
|
| ||||||||||||||
|
|
|
|
| ||||||||||||||
OLD |
|
|
|
| ||||||||||||||
Inheriting |
|
|
|
| ||||||||||||||
Implementing |
| TBD | TBD |
| ||||||||||||||
Inheriting + Implementing |
| TBD | TBD |
| ||||||||||||||
|
|
|
|
| ||||||||||||||
Fields |
|
|
|
| ||||||||||||||
private |
|
| Inside the constructor function:
|
| ||||||||||||||
protected |
| This is how far I got today ;-) |
|
| ||||||||||||||
public |
|
|
|
| ||||||||||||||
Global Constants |
|
|
|
|