-
-
Notifications
You must be signed in to change notification settings - Fork 670
Status and Roadmap
Daniel Wirtz edited this page Nov 9, 2018
·
167 revisions
Current state of development is tracked in GitHub projects.
- Most of TypeScript's AOT-compatible syntax is supported
- Manual memory management is in but GC remains to do
- Classes are still wonky when it comes to the details
- Standard library is very basic and needs a lot of work
- No exception support yet, waiting for WebAssembly/exception-handling to land
- We need more tests (pretty sure this will remain here)
- Get a memory manager and GC combo up and running
- Memory manager
- GC
- Get a standard library up that "just works" (where AOT-compatible)
- Improve linking, e.g. with C, based on what's supported by common tools
- Compile the AssemblyScript compiler to WebAssembly using itself
- Provide tools to automatically generate glue code and definitions
And, of course, keep up with the state of WebAssembly, most notably at this point:
Proposal | Phase | Status |
---|---|---|
Sign Extension Operations | implementation | --feature sign-extension |
Mutable Globals | implementation | --feature mutable-global |
Non-trapping float-to-int Conversions | implementation | |
Reference Types | implementation | |
Multi-value | implementation | |
Bulk Memory Operations | proposal | |
Exception handling | proposal | |
Host Bindings | proposal | |
Threads | proposal | |
GC | proposal |
- NaN
- Infinity
- isFinite()
- isInteger()
- isNaN()
- isSafeInteger()
- parseFloat() 2
- parseInt()
- #toExponential()
- #toFixed()
- #toLocaleString()
- #toPrecision()
- #toString()
- decodeURI()
- decodeURIComponent()
- encodeURI()
- encodeURIComponent()
- EPSILON
- MIN_VALUE
- MAX_VALUE
- MIN_SAFE_INTEGER
- MAX_SAFE_INTEGER
- NaN
- NEGATIVE_INFINITY
- POSITIVE_INFINITY
- #length
- from()
- isArray()
- of()
- #concat()
- #copyWithin()
- #entries()
- #every()
- #fill()
- #filter()
- #find()
- #findIndex()
- #flat()
- #flatMap()
- #forEach()
- #includes()
- #indexOf()
- #join()
- #keys()
- #lastIndexOf()
- #map()
- #pop()
- #push()
- #reduce()
- #reduceRight()
- #reverse()
- #shift()
- #slice()
- #some()
- #sort()
- #splice()
- #toLocaleString()
- #toString()
- #unshift()
- #values()
- #
[Symbol.iterator]
()
- BYTES_PER_ELEMENT
- #buffer
- #byteLength
- #byteOffset
- #length
- from()
- of()
- #copyWithin()
- #entries()
- #every()
- #fill()
- #filter()
- #find()
- #findIndex()
- #forEach()
- #includes()
- #indexOf()
- #join()
- #keys()
- #lastIndexOf()
- #map()
- #reduce()
- #reduceRight()
- #reverse()
- #set()
- #slice()
- #some()
- #sort()
- #subarray()
- #toLocaleString()
- #toString()
- #values()
- #
[Symbol.iterator]
()
- #byteLength
- isView()
- #slice()
- #transfer()
- #buffer
- #byteLength
- #byteOffset
- #getInt8()
- #getUint8()
- #getInt16()
- #getUint16()
- #getInt32()
- #getUint32()
- #getInt64() 1
- #getUint64() 1
- #getFloat32()
- #getFloat64()
- #setInt8()
- #setUint8()
- #setInt16()
- #setUint16()
- #setInt32()
- #setUint32()
- #setInt64() 1
- #setUint64() 1
- #setFloat32()
- #setFloat64()
- #length
- fromCharCode()
- fromCharCodes()
- fromCodePoint()
- fromCodePoints()
- fromUTF8() 1
- #charAt()
- #charCodeAt()
- #concat()
- #endsWith()
- #includes()
- #indexOf()
- #lastIndexOf()
- #localeCompare()
- #match()
- #normalize()
- #padEnd()
- #padStart()
- #repeat()
- #replace()
- #search()
- #slice()
- #split()
- #startsWith()
- #substr()
- #substring()
- #toLocaleLowerCase()
- #toLocaleUpperCase()
- #toLowerCase()
- #toUpperCase()
- #toString()
- #trim()
- #trimLeft()/#trimStart()
- #trimRight()/#trimEnd()
- #
[Symbol.iterator]
() - raw()
- #for()
- #keyFor()
- E
- LN10
- LN2
- LOG10E
- LOG2E
- PI
- SQRT1_2
- SQRT2
- abs()
- acos()
- acosh()
- asin()
- asinh()
- atan()
- atan2()
- atanh()
- cbrt()
- ceil()
- clz32()
- cos()
- cosh()
- exp()
- expm1()
- floor()
- fround()
- hypot()
- imul()
- log()
- log10()
- log1p()
- log2()
- max()
- min()
- pow()
- random()
- round()
- sign()
- sin()
- sinh()
- sqrt()
- tan()
- tanh()
- trunc()
- #size
- #clear()
- #delete()
- #entries()
- #forEach()
- #get()
- #has()
- #set()
- #keys()
- #values()
- #
[Symbol.iterator]
()
- #size
- #add()
- #clear()
- #delete()
- #entries()
- #forEach()
- #has()
- #values()
- #
[Symbol.iterator]
()
- #delete()
- #get()
- #has()
- #set()
- #add()
- #delete()
- #has()
- assert()
- clear()
- count()
- dir()
- dirxml()
- error()
- group()
- groupCollapsed()
- groupEnd()
- info()
- log()
- profile()
- profileEnd()
- table
- time
- timeEnd
- timeStamp()
- trace()
- warn()
- write
- parse()
- stringify()
- is()
- keys()
- assign()
- create()
- entries()
- getOwnPropertyNames()
- getOwnPropertySymbols()
- UTC
- now()
- parse()
- #getDate()
- #getDay()
- #getFullYear()
- #getHours()
- #getMilliseconds()
- #getMinutes()
- #getMonth()
- #getSeconds()
- #getTime()
- #getTimezoneOffset()
- #getUTCDate()
- #getUTCDay()
- #getUTCFullYear()
- #getUTCHours()
- #getUTCMilliseconds()
- #getUTCMinutes()
- #getUTCMonth()
- #getUTCSeconds()
- #setDate()
- #setFullYear()
- #setHours()
- #setMilliseconds()
- #setMinutes()
- #setMonth()
- #setSeconds()
- #setTime()
- #setUTCDate()
- #setUTCFullYear()
- #setUTCHours()
- #setUTCMilliseconds()
- #setUTCMinutes()
- #setUTCMonth()
- #setUTCSeconds()
- #toDateString()
- #toISOString()
- #toJSON()
- #toLocaleDateString()
- #toLocaleString()
- #toLocaleTimeString()
- #toString()
- #toTimeString()
- #toUTCString()
- #message
- #stack
- all()
- race()
- reject()
- resolve()
- #catch()
- #finally()
- #then()
1 AssemblyScript-specific
2 Filler implementation present