...
| 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(...values) | Array(...values) | Frank's comment: https://cwiki.apache.org/confluence/display/FLEX/AS+to+JS+translation+table?focusedCommentId=30744800#comment-30744800 | ||||||||||||||
Boolean() | - | Boolean(value) | Boolean(value) | See "Array" function note. | ||||||||||||||
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() | - | Number(value) | Number(value) | See "Array" function note. | ||||||||||||||
Object() | - | Object(value) | 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="597f3adc74eaae31-c14641c3-49d24ed4-a3b99db1-b2c854ed93f58b23efb63c03"><ac:plain-text-body><![CDATA[ | parseInt() | - | parseInt(value, [radix]) | parseInt(value, [radix]) |
| ]]></ac:plain-text-body></ac:structured-macro> | ||||||||||||
String() | - | String(value) | 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. Maybe something like Jangaroo's 'trace' implementation? | ||||||||||||||
uint() |
| uint(value) | (value >>> 0) |
| ||||||||||||||
unescape() | - | unescape(value) | unescape(value) |
| ||||||||||||||
Vector() | - | result = Vector.<type>(valueArray); | result = /** @type {Array.<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'? | ||||||||||||||
|
|
|
|
| ||||||||||||||
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 | - | 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? | Not sure if all JS VM implementations support this... | ||||||||||||||
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 | - | QName |
|
| ||||||||||||||
RangeError |
|
|
|
| ||||||||||||||
ReferenceError |
|
|
|
| ||||||||||||||
RegExp |
|
|
|
| ||||||||||||||
SecurityError |
|
|
|
| ||||||||||||||
String |
|
|
|
| ||||||||||||||
SyntaxError |
|
|
|
| ||||||||||||||
TypeError |
|
|
|
| ||||||||||||||
uint |
|
|
|
| ||||||||||||||
URIError |
|
|
|
| ||||||||||||||
Vector |
|
|
|
| ||||||||||||||
VerifyError |
|
|
|
| ||||||||||||||
XML |
|
|
|
| ||||||||||||||
? | Part of the E4X implementation in AS... No such beast in JS, so maybe we look at "goog" or even a native utility class? | |||||||||||||||||
RangeError | - | RangeError | RangeError | Not sure if all JS VM implementations support this... | ||||||||||||||
ReferenceError | - | ReferenceError | ReferenceError | Not sure if all JS VM implementations support this... | ||||||||||||||
RegExp | - | RegExp | RegExp | Does the regular expression "syntax" of both implementations match? | ||||||||||||||
SecurityError | - | SecurityError | Error | Need utility class and cast a regular Error object to that, for the sake of the Closure Compiler? | ||||||||||||||
String | - | String | String | Not sure if all properties and methods of AS String class map to the JS String class. | ||||||||||||||
SyntaxError | - | SyntaxError | SyntaxError | Not sure if all JS VM implementations support this... | ||||||||||||||
TypeError | - | TypeError | TypeError | Not sure if all JS VM implementations support this... | ||||||||||||||
uint | - | uint | Number | Does the Number object provide all "functionality" of an AS uint? If so, we're good, I think... | ||||||||||||||
URIError | - | URIError | URIError | Not sure if all JS VM implementations support this... | ||||||||||||||
Vector | - | Vector | /** @type {Array.<type>} */ Array | Since a Vector is "nothing more" than a typed Array, we can use Closure annotation to 'force' the Closure Compiler to treat it as such. | ||||||||||||||
VerifyError | - | VerifyError | Error | Need utility class and cast a regular Error object to that, for the sake of the Closure Compiler? | ||||||||||||||
XML | - | 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="295c2be90fc7742c-23218b43-4b064351-8c9ca9c5-6293783c4607ae9025968c6a"><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="255a6967bd1bd769-b5c97a9a-43c14872-ad41a0e5-7bf0700884172bd5cc4d15cc"><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 |
|
|
|
|