What are the key differences between JavaScript and ActionScript 3?

actionscript-3, javascript, porting

Solution

First of all ActionScript 3 and JavaScript are both defined in ECMA-262 so they have a lot in common. Both languages feature prototype inheritance for instance. It is however not correct that ActionScript fully implements ES4.

ActionScript implements a couple of features that are not defined in ECMA-262 and some -- but definitely not all -- of ES4.

So what does AS3 add to ECMA-262? Those are also the differences to JavaScript:

- Dynamically and statically typed code

- Packages, Classes and Interfaces

- Standard OO inheritance model (not prototype based, statically typed)

- uint and int datatype

- E4X (ECMA-357)

- Type-safe conditional compilation (ES4)

- Vector.<T> datatype (ES4)

Maybe I have forgotten some features. I am not sure if XML, XMLList etc. are already defined in 262 or came with 357.

The key difference however is the standard library. JavaScript comes with a couple of predefined classes like DOMElement and browser dependent additions. ActionScript has a fairly large standard library with features like video streaming and is consistent over all platforms.

Problem

I know both languages are from the same ECMA-262 standard. It seems that the two are becoming very similar with JavaScript adding event listeners for core Object instances through methods like `freeze` and `seal` in EMCAScript-262 5th edition and such. I was wondering what the differences are?

Original source