- shim - What is a Polyfill? / Shim vs Polyfill / Extend the Web Forward
- mo - A collection of OzJS core modules
Object.observe- 原生支持: chrome,node-harmony
- 替代:NervJS, WatchJS, Polymer/observe-js
- Typed Object / binary data
- Parallel API / River Trail
- Concurrency and Distribution / Vat
- Event streams?
- Completing classes?
- SES(SecureEcmaScript)?
- Generator (
yield)- 原生支持: firefox, chrome-experimental, node-harmony
- 编译器支持:traceur
- Iterator +
for..of- 原生支持: firefox
- 编译器支持:traceur
Proxy- 原生支持: firefox
Reflect- Proper Tail Calls
Symbol- 原生支持: chrome-experimental, node-harmony
Map+Set+WeakMap+WeakSet- 原生支持: ie11/firefox(不支持WeakSet), chrome(不支持Map、Set), node-harmony
- require('mo/lang/es6') / require('mo/lang/es6-collection')支持:
Map#get/Map#set/Map#delete/Map#clear/Map#has/Map#size/Map#forEachWeakMap#get/WeakMap#set/WeakMap#delete/WeakMap#clear/WeakMap#hasSet#add/Set#delete/Set#clear/Set#has/Set#size/Set#forEachWeakSet#add/WeakSet#delete/WeakSet#clear/WeakSet#has
- 弱引用/垃圾回收特性无法shim
#entries/#keys/#values需要Iterator,无法shim- 其他shim:paulmillr/es6-shim, WebReflection/es6-collections
Promise- 原生支持: firefox, chrome
- require('mo/lang/es6') / require('mo/lang/es6-promise')支持
- 其他shim:paulmillr/es6-shim, jakearchibald/es6-promise, getify/native-promise-only
- 替代:EventMaster, Q, when, RSVP
- Array + Number + String + Object APIs
- 原生支持: firefox(不支持Object.assign), chrome-experimental(不支持Array.from、Array.of、fromCodePoint)
- require('mo/lang/es6') / require('mo/lang/es6-utils')支持:
Array#find/Array#findIndex/Array#fill/Array#copyWithinArray.of/Array.fromString#startsWith/String#endsWith/String#contains/String#repeatNumber.MAX_SAFE_INTEGER/Number.MIN_SAFE_INTEGER/Number.EPSILON/Number.isFinite/Number.isInteger/Number.isSafeInteger/Number.isNaNObject.is/Object.assign
- require('mo/lang/es6') / require('mo/lang/es6-utils')不支持:
Object.setPrototypeOf,String.fromCodePoint,String#codePointAt
- 其他shim:paulmillr/es6-shim, other standalone shims
- Math APIs
- 原生支持: firefox, chrome-experimental
- 使用场景有限,不包含在require('mo/lang/es6-utils')里
- paulmillr/es6-shim支持
module+Loader- 编译器支持:traceur
- 替代:AMD, CJS
let- 原生支持: ie11、firefox, chrome ,node-harmony
const- 原生支持: ie11, firefox, chrome, safari, node
- Arrows
- Comprehensions
- Destructuring
- Default + Rest + Spread Parameters
- Enhanced Object Literals(
__proto__) - Block-level function declaration
- Template Strings(
${name}) class
原生支持:ie9+(9不支持strict mode)、firefox4+、safari5.1+、chrome7+(19开始支持strict mode), node
- Array + String + Object + Date APIs
- require('mo/lang/es5')支持:
Array#forEach/Array#map/Array#filter/Array#reduce/Array#reduceRight/Array#some/Array#every/Array#indexOf/Array#lastIndexOf/Array.isArrayString#trimDate.nowObject.keys/Object.getPrototypeOf
- require('mo/lang/es5')不支持:
Number#toFixed/String#split/Date.parse/Date#toJSON/Date#toISOString
- 其他shim:es5-shim
- require('mo/lang/es5')支持:
JSON
Object.create/Function#bind- require('mo/lang/es5')支持
- 其他shim:es5-shim
Object.defineProperty/Object.defineProperties/Object.seal/Object.freeze/Object.preventExtensions/Object.isSealed/Object.isFrozen/Object.isExtensible/Object.getOwnPropertyDescriptor/Object.getOwnPropertyNames- Getter / Setter
- Strict mode
"foobar"[3]{ if: 1 }