Start with an ES6 base.
- typeof null === 'null'
- no let or const
- no globally leaking vars
- node-style requires
- no high-level objects that can be implemented trivially in userland (EventEmitter, Promise)
- functions as true objects (can set set prototype)
- Multiple prototypes (maybe protos)?
- No sugar for sugars sake, remove:
- Generators. not needed in a dynamic language with first-class functions
- Class..
- Map, WeakMap, Set, WeakSet
- Object mutation events
- Proxy
... tbc ...