Conversion functions.
TODO(joshualitt): Only a small set of types currently work:
JS -> Dart:
null
strings
arrays
opaque Dart objects passed to JS
Dart -> JS:
null
boolean
doubles
strings
lists
opaque JS objects passed to Dart
In the future we would like to support more types, at least maps,
and to fix some of the issues returning some types from JS.
Extension methods for conversions.
Gets a String name property off of a JS object o, invokes it as
a constructor with a JS array of arguments args, and returns the
constructed JS object.
Raw public JS functions.
These are public temporarily to give performance conscious users an escape
hatch while we decide what this API will actually look like. They may
become private in the future, or disappear entirely. For descriptions of the
API, please see the corresponding non-raw functions.