A complete JavaScript semantics