Skip to content
dherman edited this page Nov 5, 2012 · 1 revision

Goals

Absolute compatibility

  • all syntax should be valid JS
  • absolutely no divergence in behavior from existing JS engines

Explicit opt-in

  • should be able to provide console information when validation fails
  • fallback behavior is execution in normal engine

Statelessness

  • compiled code should carry no stateful environment
  • should be forwards-compatible with possible API for pre-compiling Worker-sendable code or caching pre-compiled code

No pointless coercions

  • literals should never have coercions
  • as much as possible, avoid no-op coercions that only serve as annotations for the validator

No implicit coercions between int and double

  • enforces desired performance model

No bailouts

  • no operations should require dynamic guards that have to bail out to a different engine
  • the only interface to ordinary JS should be through very explicit touch points:
  • FFI function calls
  • coercions of results of FFI function calls
Clone this wiki locally