compute names of bound functions
add three ES6 types: Uint8ClampedArray, WeakMap, WeakSet

WeakMap and WeakSet use the inverted rep and are therefor pretty trivial to implement.  They both use
an aux map/set on their keys/values respectively, with the collection itself used as a key for lookup.

both WeakMap/WeakSet ctors need some work (in the spec, they can take both iterables and ...splats).

Uint8ClampedArray is similarly not fully compatible.  At the moment it's identical in behavior to
Uint8Array.