Skip to content

BEAM-native JS engine and compiler#5

Open
dannote wants to merge 1015 commits into
masterfrom
beam-vm-interpreter
Open

BEAM-native JS engine and compiler#5
dannote wants to merge 1015 commits into
masterfrom
beam-vm-interpreter

Conversation

@dannote
Copy link
Copy Markdown
Member

@dannote dannote commented Apr 15, 2026

Adds a second QuickJS execution backend that runs decoded QuickJS bytecode on the BEAM, plus an experimental compiler path that lowers QuickJS bytecode to BEAM modules.

Public API and runtime modes

  • mode: :beam support for running JavaScript through the BEAM VM backend
  • mode: :auto compiler-backed execution with fallback
  • strict compiler audit mode via mode: :beam_compiler
  • QUICKBEAM_MODE=beam_compiler support for audit runs
  • raw BEAM disassembly for the :beam backend via QuickBEAM.disasm/2
  • runtime/context integration, handler dispatch, module loading, dynamic import, globals, and interop for the VM path
  • stack traces, source positions, and Error.captureStackTrace

Bytecode VM

  • QuickJS bytecode decoder in Elixir
  • BEAM interpreter for QuickJS bytecode
  • control-flow, stack-depth, type, and diagnostics analysis passes
  • local/argument/capture slot handling, including large-frame tuple mode
  • generator and async-generator execution support
  • promise scheduling and continuation state
  • runtime invocation helpers for compiled and interpreted functions

Compiler backend

  • hybrid compiler from QuickJS bytecode to BEAM modules
  • block lowering, CFG analysis, stack-depth inference, type inference, and optimizer passes
  • compiled runtime helpers for arithmetic, coercion, calls, construction, refs, globals, with-scope, iterators, objects, classes, promises, generators, and errors
  • strict compiler-vs-interpreter audit harnesses and semantic corpus benches
  • compiler opcode coverage reporting
  • compiler perf/ROI benchmark

JavaScript semantics covered

  • Object, Array, Function, String, Number, Boolean
  • Math, JSON, Date, RegExp
  • Map, Set, WeakMap, WeakSet, collection iterators, and self-iterability
  • Symbol, well-known symbols, property keys, and Symbol.toStringTag
  • Promise, async / await, generators, delegated yield*, and async generators
  • Proxy and Reflect, including descriptor/prototype/extensibility invariants
  • TypedArray, ArrayBuffer, BigInt
  • classes, inheritance, super, private fields, private methods, private accessors, static private members, brand checks, and constructor return semantics
  • descriptors, Object.create, Object.assign, Object.fromEntries, freeze/seal/preventExtensions/isExtensible/isFrozen/isSealed
  • array expando properties, sparse arrays, callbacks, iterators, destructuring, spread, rest/default parameters, and arguments basics
  • eval, with, refs, globals, callback/global write freshness, delete semantics, in, instanceof, new, update operators, arithmetic/coercion edge cases, and BigInt operations
  • try/catch/finally, QuickJS gosub/ret finally control flow, nested catches inside finally, break/continue through finally, and catch-region slot preservation
  • for-in enumeration mutation and nullish object coercion for with/destructuring
  • Web API and Node-compat runtime integration used by the VM path

Static analysis and cleanup

  • updated ex_dna, ex_slop, and credo
  • mix lint now runs ExDNA with a zero-clone budget
  • clone debt removed across VM runtime helpers, parser helpers, Web API modules, and collection/object helpers
  • Bandit clock application startup fixed for --no-start test runs
  • shared runtime/context message handling fixed for context state without :mode

Audit and benchmark tooling

  • bench/vm_compiler_compat.exs
  • bench/vm_compiler_corpus.exs
  • bench/vm_compiler_opcode_coverage.exs
  • bench/vm_compiler_perf.exs
  • bench/vm_compiler_semantic_gaps.exs
  • bench/vm_compiler_test262.exs
  • test/support/vm_compiler_audit.ex
  • compiler acceptance and auto-mode tests

Current compiler audit status

  • QuickJS bytecode opcode coverage: 245 / 246 unique opcodes
    • remaining missing opcode: invalid, intentionally unsupported
  • strict compiler Test262 statement window: 1582 / 1582 passing
  • semantic compiler corpus: 1000 / 1000 compiled with zero mismatches, fallbacks, or crashes
  • compiler invoke perf improved from 45.239µs to 42.845µs
  • current compiler perf audit average speedup: 1.113x

Recent validation

  • mix compile --warnings-as-errors
  • mix lint
  • mix dialyzer
  • mix test test/js/parser test/vm/auto_mode_test.exs test/vm/compiler_differential_test.exs test/web_apis/beam_fetch_test.exs test/web_apis/beam_text_encoding_test.exs test/web_apis/beam_buffer_test.exs test/web_apis/beam_streams_test.exs test/web_apis/event_source_test.exs
  • mix test --no-start --exclude napi_addon --exclude napi_sqlite test/web_apis/event_source_test.exs test/web_apis/beam_event_source_test.exs
  • PARSER_BENCH=vm_compiler_semantics ./autoresearch.sh
  • TEST262_LIMIT=1500 TEST262_CASE_TIMEOUT=5000 PARSER_BENCH=vm_compiler_test262 ./autoresearch.sh

Previous broad validation:

  • QUICKBEAM_BUILD=1 MIX_ENV=test mix test
  • MIX_ENV=test QUICKBEAM_BUILD=1 mix test test/vm/js_engine_test.exs --include js_engine --seed 0
  • mix format --check-formatted
  • mix credo --strict
  • mix dialyzer
  • mix ex_dna
  • zlint lib/quickbeam/*.zig lib/quickbeam/napi/*.zig
  • bunx oxlint -c oxlint.json --type-aware --type-check priv/ts/
  • bunx jscpd lib/quickbeam/*.zig priv/ts/*.ts --min-tokens 50 --threshold 0

@dannote dannote force-pushed the beam-vm-interpreter branch from 0eb3475 to 7c1c574 Compare April 15, 2026 14:06
@dannote dannote changed the title BEAM-native JS interpreter (Phase 0-1) BEAM-native JS interpreter Apr 16, 2026
@dannote dannote marked this pull request as ready for review April 16, 2026 08:41
@dannote dannote force-pushed the beam-vm-interpreter branch 2 times, most recently from 75fdba5 to 527d5b9 Compare April 20, 2026 08:45
@dannote dannote changed the title BEAM-native JS interpreter BEAM-native JS engine and compiler Apr 21, 2026
dannote added 23 commits May 3, 2026 23:46
Result: {"status":"keep","js_bytecode_existing_failures":42,"js_bytecode_existing_cases":157,"js_bytecode_existing_compiled":116,"js_bytecode_existing_unsupported":40,"js_bytecode_existing_mismatches":1,"js_bytecode_existing_native_loadable":115,"js_bytecode_compiler_cases":130,"js_bytecode_compiler_compiled":130,"js_bytecode_compiler_unsupported":0,"js_bytecode_compiler_mismatches":0,"js_bytecode_compiler_native_loadable":130,"js_bytecode_compiler_failures":0}
Result: {"status":"keep","js_bytecode_existing_failures":29,"js_bytecode_existing_cases":157,"js_bytecode_existing_compiled":129,"js_bytecode_existing_unsupported":27,"js_bytecode_existing_mismatches":1,"js_bytecode_existing_native_loadable":128,"js_bytecode_compiler_cases":130,"js_bytecode_compiler_compiled":130,"js_bytecode_compiler_unsupported":0,"js_bytecode_compiler_mismatches":0,"js_bytecode_compiler_native_loadable":130,"js_bytecode_compiler_failures":0}
…losure mutation

Result: {"status":"keep","js_bytecode_existing_failures":29,"js_bytecode_existing_cases":157,"js_bytecode_existing_compiled":129,"js_bytecode_existing_unsupported":27,"js_bytecode_existing_mismatches":1,"js_bytecode_existing_native_loadable":128,"js_bytecode_compiler_cases":130,"js_bytecode_compiler_compiled":130,"js_bytecode_compiler_unsupported":0,"js_bytecode_compiler_mismatches":0,"js_bytecode_compiler_native_loadable":130,"js_bytecode_compiler_failures":0}
Result: {"status":"keep","js_bytecode_existing_failures":24,"js_bytecode_existing_cases":157,"js_bytecode_existing_compiled":137,"js_bytecode_existing_unsupported":19,"js_bytecode_existing_mismatches":4,"js_bytecode_existing_native_loadable":135,"js_bytecode_compiler_cases":130,"js_bytecode_compiler_compiled":130,"js_bytecode_compiler_unsupported":0,"js_bytecode_compiler_mismatches":0,"js_bytecode_compiler_native_loadable":130,"js_bytecode_compiler_failures":0}
Result: {"status":"keep","js_bytecode_existing_failures":24,"js_bytecode_existing_cases":157,"js_bytecode_existing_compiled":137,"js_bytecode_existing_unsupported":19,"js_bytecode_existing_mismatches":4,"js_bytecode_existing_native_loadable":135,"js_bytecode_compiler_cases":130,"js_bytecode_compiler_compiled":130,"js_bytecode_compiler_unsupported":0,"js_bytecode_compiler_mismatches":0,"js_bytecode_compiler_native_loadable":130,"js_bytecode_compiler_failures":0}
Result: {"status":"keep","js_bytecode_existing_failures":23,"js_bytecode_existing_cases":157,"js_bytecode_existing_compiled":139,"js_bytecode_existing_unsupported":17,"js_bytecode_existing_mismatches":5,"js_bytecode_existing_native_loadable":136,"js_bytecode_compiler_cases":130,"js_bytecode_compiler_compiled":130,"js_bytecode_compiler_unsupported":0,"js_bytecode_compiler_mismatches":0,"js_bytecode_compiler_native_loadable":130,"js_bytecode_compiler_failures":0}
…s, var_ref, eval opcode)

Result: {"status":"keep","js_bytecode_existing_failures":23,"js_bytecode_existing_cases":157,"js_bytecode_existing_compiled":139,"js_bytecode_existing_unsupported":17,"js_bytecode_existing_mismatches":5,"js_bytecode_existing_native_loadable":136,"js_bytecode_compiler_cases":130,"js_bytecode_compiler_compiled":130,"js_bytecode_compiler_unsupported":0,"js_bytecode_compiler_mismatches":0,"js_bytecode_compiler_native_loadable":130,"js_bytecode_compiler_failures":0}
Result: {"status":"keep","js_bytecode_existing_failures":22,"js_bytecode_existing_cases":157,"js_bytecode_existing_compiled":139,"js_bytecode_existing_unsupported":17,"js_bytecode_existing_mismatches":4,"js_bytecode_existing_native_loadable":137,"js_bytecode_compiler_cases":130,"js_bytecode_compiler_compiled":130,"js_bytecode_compiler_unsupported":0,"js_bytecode_compiler_mismatches":0,"js_bytecode_compiler_native_loadable":130,"js_bytecode_compiler_failures":0}
Result: {"status":"keep","js_bytecode_existing_failures":22,"js_bytecode_existing_cases":157,"js_bytecode_existing_compiled":139,"js_bytecode_existing_unsupported":17,"js_bytecode_existing_mismatches":4,"js_bytecode_existing_native_loadable":137,"js_bytecode_compiler_cases":130,"js_bytecode_compiler_compiled":130,"js_bytecode_compiler_unsupported":0,"js_bytecode_compiler_mismatches":0,"js_bytecode_compiler_native_loadable":130,"js_bytecode_compiler_failures":0}
Result: {"status":"keep","js_bytecode_existing_failures":21,"js_bytecode_existing_cases":157,"js_bytecode_existing_compiled":140,"js_bytecode_existing_unsupported":16,"js_bytecode_existing_mismatches":4,"js_bytecode_existing_native_loadable":138,"js_bytecode_compiler_cases":132,"js_bytecode_compiler_compiled":132,"js_bytecode_compiler_unsupported":0,"js_bytecode_compiler_mismatches":0,"js_bytecode_compiler_native_loadable":132,"js_bytecode_compiler_failures":0}
Result: {"status":"keep","js_bytecode_existing_failures":21,"js_bytecode_existing_cases":157,"js_bytecode_existing_compiled":140,"js_bytecode_existing_unsupported":16,"js_bytecode_existing_mismatches":4,"js_bytecode_existing_native_loadable":138,"js_bytecode_compiler_cases":132,"js_bytecode_compiler_compiled":132,"js_bytecode_compiler_unsupported":0,"js_bytecode_compiler_mismatches":0,"js_bytecode_compiler_native_loadable":132,"js_bytecode_compiler_failures":0}
Result: {"status":"keep","js_bytecode_existing_failures":18,"js_bytecode_existing_cases":157,"js_bytecode_existing_compiled":143,"js_bytecode_existing_unsupported":13,"js_bytecode_existing_mismatches":4,"js_bytecode_existing_native_loadable":141,"js_bytecode_compiler_cases":132,"js_bytecode_compiler_compiled":132,"js_bytecode_compiler_unsupported":0,"js_bytecode_compiler_mismatches":0,"js_bytecode_compiler_native_loadable":132,"js_bytecode_compiler_failures":0}
Result: {"status":"keep","js_bytecode_existing_failures":18,"js_bytecode_existing_cases":157,"js_bytecode_existing_compiled":143,"js_bytecode_existing_unsupported":13,"js_bytecode_existing_mismatches":4,"js_bytecode_existing_native_loadable":141,"js_bytecode_compiler_cases":132,"js_bytecode_compiler_compiled":132,"js_bytecode_compiler_unsupported":0,"js_bytecode_compiler_mismatches":0,"js_bytecode_compiler_native_loadable":132,"js_bytecode_compiler_failures":0}
Result: {"status":"keep","js_bytecode_existing_failures":18,"js_bytecode_existing_cases":157,"js_bytecode_existing_compiled":143,"js_bytecode_existing_unsupported":13,"js_bytecode_existing_mismatches":4,"js_bytecode_existing_native_loadable":141,"js_bytecode_compiler_cases":132,"js_bytecode_compiler_compiled":132,"js_bytecode_compiler_unsupported":0,"js_bytecode_compiler_mismatches":0,"js_bytecode_compiler_native_loadable":132,"js_bytecode_compiler_failures":0}
Result: {"status":"keep","js_bytecode_existing_failures":16,"js_bytecode_existing_cases":157,"js_bytecode_existing_compiled":143,"js_bytecode_existing_unsupported":13,"js_bytecode_existing_mismatches":2,"js_bytecode_existing_native_loadable":141,"js_bytecode_compiler_cases":132,"js_bytecode_compiler_compiled":132,"js_bytecode_compiler_unsupported":0,"js_bytecode_compiler_mismatches":0,"js_bytecode_compiler_native_loadable":132,"js_bytecode_compiler_failures":0}
Result: {"status":"keep","js_bytecode_existing_failures":16,"js_bytecode_existing_cases":157,"js_bytecode_existing_compiled":143,"js_bytecode_existing_unsupported":13,"js_bytecode_existing_mismatches":2,"js_bytecode_existing_native_loadable":141,"js_bytecode_compiler_cases":132,"js_bytecode_compiler_compiled":132,"js_bytecode_compiler_unsupported":0,"js_bytecode_compiler_mismatches":0,"js_bytecode_compiler_native_loadable":132,"js_bytecode_compiler_failures":0}
Result: {"status":"keep","js_bytecode_existing_failures":16,"js_bytecode_existing_cases":157,"js_bytecode_existing_compiled":143,"js_bytecode_existing_unsupported":13,"js_bytecode_existing_mismatches":2,"js_bytecode_existing_native_loadable":141,"js_bytecode_compiler_cases":132,"js_bytecode_compiler_compiled":132,"js_bytecode_compiler_unsupported":0,"js_bytecode_compiler_mismatches":0,"js_bytecode_compiler_native_loadable":132,"js_bytecode_compiler_failures":0}
Result: {"status":"keep","js_bytecode_existing_failures":16,"js_bytecode_existing_cases":157,"js_bytecode_existing_compiled":143,"js_bytecode_existing_unsupported":13,"js_bytecode_existing_mismatches":2,"js_bytecode_existing_native_loadable":141,"js_bytecode_compiler_cases":132,"js_bytecode_compiler_compiled":132,"js_bytecode_compiler_unsupported":0,"js_bytecode_compiler_mismatches":0,"js_bytecode_compiler_native_loadable":132,"js_bytecode_compiler_failures":0}
…ture

Result: {"status":"keep","js_bytecode_existing_failures":16,"js_bytecode_existing_cases":157,"js_bytecode_existing_compiled":143,"js_bytecode_existing_unsupported":13,"js_bytecode_existing_mismatches":2,"js_bytecode_existing_native_loadable":141,"js_bytecode_compiler_cases":132,"js_bytecode_compiler_compiled":132,"js_bytecode_compiler_unsupported":0,"js_bytecode_compiler_mismatches":0,"js_bytecode_compiler_native_loadable":132,"js_bytecode_compiler_failures":0}
Result: {"status":"keep","js_bytecode_existing_failures":16,"js_bytecode_existing_cases":157,"js_bytecode_existing_compiled":143,"js_bytecode_existing_unsupported":13,"js_bytecode_existing_mismatches":2,"js_bytecode_existing_native_loadable":141,"js_bytecode_compiler_cases":132,"js_bytecode_compiler_compiled":132,"js_bytecode_compiler_unsupported":0,"js_bytecode_compiler_mismatches":0,"js_bytecode_compiler_native_loadable":132,"js_bytecode_compiler_failures":0}
…ed function atom tables

Result: {"status":"keep","js_bytecode_existing_failures":16,"js_bytecode_existing_cases":157,"js_bytecode_existing_compiled":143,"js_bytecode_existing_unsupported":13,"js_bytecode_existing_mismatches":2,"js_bytecode_existing_native_loadable":141,"js_bytecode_compiler_cases":132,"js_bytecode_compiler_compiled":132,"js_bytecode_compiler_unsupported":0,"js_bytecode_compiler_mismatches":0,"js_bytecode_compiler_native_loadable":132,"js_bytecode_compiler_failures":0}
Result: {"status":"keep","js_bytecode_existing_failures":16,"js_bytecode_existing_cases":157,"js_bytecode_existing_compiled":143,"js_bytecode_existing_unsupported":13,"js_bytecode_existing_mismatches":2,"js_bytecode_existing_native_loadable":141,"js_bytecode_compiler_cases":132,"js_bytecode_compiler_compiled":132,"js_bytecode_compiler_unsupported":0,"js_bytecode_compiler_mismatches":0,"js_bytecode_compiler_native_loadable":132,"js_bytecode_compiler_failures":0}
Result: {"status":"keep","js_bytecode_existing_failures":16,"js_bytecode_existing_cases":157,"js_bytecode_existing_compiled":143,"js_bytecode_existing_unsupported":13,"js_bytecode_existing_mismatches":2,"js_bytecode_existing_native_loadable":141,"js_bytecode_compiler_cases":132,"js_bytecode_compiler_compiled":132,"js_bytecode_compiler_unsupported":0,"js_bytecode_compiler_mismatches":0,"js_bytecode_compiler_native_loadable":132,"js_bytecode_compiler_failures":0}
dannote added 30 commits May 13, 2026 00:14
Result: {"status":"keep","compatibility_failures":6,"compiler_test262_cases":153,"compiler_test262_pass":147,"compiler_test262_failures":6,"compiler_test262_compiler_errors":0,"compiler_test262_compiler_crashes":0,"compiler_test262_compiler_fails":0,"compiler_test262_both_fail":5,"compiler_test262_interpreter_fail_compiler_pass":0,"compatibility_pass":147,"compatibility_cases":153,"compiler_errors":0,"compiler_crashes":0,"compiler_fails":0,"both_fail":5,"interpreter_fail_compiler_pass":0,"elapsed_ms":10489}
Result: {"status":"keep","compatibility_failures":5,"compiler_test262_cases":153,"compiler_test262_pass":148,"compiler_test262_failures":5,"compiler_test262_compiler_errors":0,"compiler_test262_compiler_crashes":0,"compiler_test262_compiler_fails":0,"compiler_test262_both_fail":5,"compiler_test262_interpreter_fail_compiler_pass":0,"compatibility_pass":148,"compatibility_cases":153,"compiler_errors":0,"compiler_crashes":0,"compiler_fails":0,"both_fail":5,"interpreter_fail_compiler_pass":0,"elapsed_ms":7006}
Result: {"status":"keep","compatibility_failures":4,"compiler_test262_cases":153,"compiler_test262_pass":149,"compiler_test262_failures":4,"compiler_test262_compiler_errors":0,"compiler_test262_compiler_crashes":0,"compiler_test262_compiler_fails":0,"compiler_test262_both_fail":4,"compiler_test262_interpreter_fail_compiler_pass":0,"compatibility_pass":149,"compatibility_cases":153,"compiler_errors":0,"compiler_crashes":0,"compiler_fails":0,"both_fail":4,"interpreter_fail_compiler_pass":0,"elapsed_ms":6853}
Result: {"status":"keep","compatibility_failures":5,"compiler_test262_cases":300,"compiler_test262_pass":295,"compiler_test262_failures":5,"compiler_test262_compiler_errors":0,"compiler_test262_compiler_crashes":0,"compiler_test262_compiler_fails":0,"compiler_test262_both_fail":5,"compiler_test262_interpreter_fail_compiler_pass":0,"compatibility_pass":295,"compatibility_cases":300,"compiler_errors":0,"compiler_crashes":0,"compiler_fails":0,"both_fail":5,"interpreter_fail_compiler_pass":0,"elapsed_ms":11094}
Result: {"status":"keep","compatibility_failures":4,"compiler_test262_cases":300,"compiler_test262_pass":296,"compiler_test262_failures":4,"compiler_test262_compiler_errors":0,"compiler_test262_compiler_crashes":0,"compiler_test262_compiler_fails":0,"compiler_test262_both_fail":4,"compiler_test262_interpreter_fail_compiler_pass":0,"compatibility_pass":296,"compatibility_cases":300,"compiler_errors":0,"compiler_crashes":0,"compiler_fails":0,"both_fail":4,"interpreter_fail_compiler_pass":0,"elapsed_ms":10888}
Result: {"status":"keep","compatibility_failures":101,"compiler_test262_cases":509,"compiler_test262_pass":408,"compiler_test262_failures":101,"compiler_test262_compiler_errors":0,"compiler_test262_compiler_crashes":0,"compiler_test262_compiler_fails":2,"compiler_test262_both_fail":94,"compiler_test262_interpreter_fail_compiler_pass":3,"compatibility_pass":408,"compatibility_cases":509,"compiler_errors":0,"compiler_crashes":0,"compiler_fails":2,"both_fail":94,"interpreter_fail_compiler_pass":3,"elapsed_ms":52527}
Result: {"status":"keep","compatibility_failures":96,"compiler_test262_cases":509,"compiler_test262_pass":413,"compiler_test262_failures":96,"compiler_test262_compiler_errors":0,"compiler_test262_compiler_crashes":0,"compiler_test262_compiler_fails":2,"compiler_test262_both_fail":89,"compiler_test262_interpreter_fail_compiler_pass":3,"compatibility_pass":413,"compatibility_cases":509,"compiler_errors":0,"compiler_crashes":0,"compiler_fails":2,"both_fail":89,"interpreter_fail_compiler_pass":3,"elapsed_ms":52785}
Result: {"status":"keep","compatibility_failures":94,"compiler_test262_cases":509,"compiler_test262_pass":415,"compiler_test262_failures":94,"compiler_test262_compiler_errors":0,"compiler_test262_compiler_crashes":0,"compiler_test262_compiler_fails":2,"compiler_test262_both_fail":87,"compiler_test262_interpreter_fail_compiler_pass":3,"compatibility_pass":415,"compatibility_cases":509,"compiler_errors":0,"compiler_crashes":0,"compiler_fails":2,"both_fail":87,"interpreter_fail_compiler_pass":3,"elapsed_ms":53446}
Result: {"status":"keep","compatibility_failures":92,"compiler_test262_cases":509,"compiler_test262_pass":417,"compiler_test262_failures":92,"compiler_test262_compiler_errors":0,"compiler_test262_compiler_crashes":0,"compiler_test262_compiler_fails":2,"compiler_test262_both_fail":85,"compiler_test262_interpreter_fail_compiler_pass":3,"compatibility_pass":417,"compatibility_cases":509,"compiler_errors":0,"compiler_crashes":0,"compiler_fails":2,"both_fail":85,"interpreter_fail_compiler_pass":3,"elapsed_ms":52621}
Result: {"status":"keep","compatibility_failures":87,"compiler_test262_cases":509,"compiler_test262_pass":422,"compiler_test262_failures":87,"compiler_test262_compiler_errors":0,"compiler_test262_compiler_crashes":0,"compiler_test262_compiler_fails":2,"compiler_test262_both_fail":80,"compiler_test262_interpreter_fail_compiler_pass":3,"compatibility_pass":422,"compatibility_cases":509,"compiler_errors":0,"compiler_crashes":0,"compiler_fails":2,"both_fail":80,"interpreter_fail_compiler_pass":3,"elapsed_ms":52808}
Result: {"status":"keep","compatibility_failures":85,"compiler_test262_cases":509,"compiler_test262_pass":424,"compiler_test262_failures":85,"compiler_test262_compiler_errors":0,"compiler_test262_compiler_crashes":0,"compiler_test262_compiler_fails":2,"compiler_test262_both_fail":78,"compiler_test262_interpreter_fail_compiler_pass":3,"compatibility_pass":424,"compatibility_cases":509,"compiler_errors":0,"compiler_crashes":0,"compiler_fails":2,"both_fail":78,"interpreter_fail_compiler_pass":3,"elapsed_ms":53528}
Result: {"status":"keep","compatibility_failures":83,"compiler_test262_cases":509,"compiler_test262_pass":426,"compiler_test262_failures":83,"compiler_test262_compiler_errors":0,"compiler_test262_compiler_crashes":0,"compiler_test262_compiler_fails":2,"compiler_test262_both_fail":76,"compiler_test262_interpreter_fail_compiler_pass":3,"compatibility_pass":426,"compatibility_cases":509,"compiler_errors":0,"compiler_crashes":0,"compiler_fails":2,"both_fail":76,"interpreter_fail_compiler_pass":3,"elapsed_ms":53330}
Result: {"status":"keep","compatibility_failures":82,"compiler_test262_cases":509,"compiler_test262_pass":427,"compiler_test262_failures":82,"compiler_test262_compiler_errors":0,"compiler_test262_compiler_crashes":0,"compiler_test262_compiler_fails":2,"compiler_test262_both_fail":75,"compiler_test262_interpreter_fail_compiler_pass":3,"compatibility_pass":427,"compatibility_cases":509,"compiler_errors":0,"compiler_crashes":0,"compiler_fails":2,"both_fail":75,"interpreter_fail_compiler_pass":3,"elapsed_ms":54589}
Result: {"status":"keep","compatibility_failures":79,"compiler_test262_cases":509,"compiler_test262_pass":430,"compiler_test262_failures":79,"compiler_test262_compiler_errors":0,"compiler_test262_compiler_crashes":0,"compiler_test262_compiler_fails":2,"compiler_test262_both_fail":72,"compiler_test262_interpreter_fail_compiler_pass":3,"compatibility_pass":430,"compatibility_cases":509,"compiler_errors":0,"compiler_crashes":0,"compiler_fails":2,"both_fail":72,"interpreter_fail_compiler_pass":3,"elapsed_ms":54858}
Result: {"status":"keep","compatibility_failures":76,"compiler_test262_cases":509,"compiler_test262_pass":433,"compiler_test262_failures":76,"compiler_test262_compiler_errors":0,"compiler_test262_compiler_crashes":0,"compiler_test262_compiler_fails":2,"compiler_test262_both_fail":69,"compiler_test262_interpreter_fail_compiler_pass":3,"compatibility_pass":433,"compatibility_cases":509,"compiler_errors":0,"compiler_crashes":0,"compiler_fails":2,"both_fail":69,"interpreter_fail_compiler_pass":3,"elapsed_ms":55003}
Result: {"status":"keep","compatibility_failures":74,"compiler_test262_cases":509,"compiler_test262_pass":435,"compiler_test262_failures":74,"compiler_test262_compiler_errors":0,"compiler_test262_compiler_crashes":0,"compiler_test262_compiler_fails":2,"compiler_test262_both_fail":66,"compiler_test262_interpreter_fail_compiler_pass":4,"compatibility_pass":435,"compatibility_cases":509,"compiler_errors":0,"compiler_crashes":0,"compiler_fails":2,"both_fail":66,"interpreter_fail_compiler_pass":4,"elapsed_ms":53779}
Result: {"status":"keep","compatibility_failures":73,"compiler_test262_cases":509,"compiler_test262_pass":436,"compiler_test262_failures":73,"compiler_test262_compiler_errors":0,"compiler_test262_compiler_crashes":0,"compiler_test262_compiler_fails":2,"compiler_test262_both_fail":66,"compiler_test262_interpreter_fail_compiler_pass":3,"compatibility_pass":436,"compatibility_cases":509,"compiler_errors":0,"compiler_crashes":0,"compiler_fails":2,"both_fail":66,"interpreter_fail_compiler_pass":3,"elapsed_ms":53580}
Result: {"status":"keep","compatibility_failures":67,"compiler_test262_cases":509,"compiler_test262_pass":442,"compiler_test262_failures":67,"compiler_test262_compiler_errors":0,"compiler_test262_compiler_crashes":0,"compiler_test262_compiler_fails":2,"compiler_test262_both_fail":60,"compiler_test262_interpreter_fail_compiler_pass":3,"compatibility_pass":442,"compatibility_cases":509,"compiler_errors":0,"compiler_crashes":0,"compiler_fails":2,"both_fail":60,"interpreter_fail_compiler_pass":3,"elapsed_ms":52710}
Result: {"status":"keep","compatibility_failures":66,"compiler_test262_cases":509,"compiler_test262_pass":443,"compiler_test262_failures":66,"compiler_test262_compiler_errors":0,"compiler_test262_compiler_crashes":0,"compiler_test262_compiler_fails":2,"compiler_test262_both_fail":59,"compiler_test262_interpreter_fail_compiler_pass":3,"compatibility_pass":443,"compatibility_cases":509,"compiler_errors":0,"compiler_crashes":0,"compiler_fails":2,"both_fail":59,"interpreter_fail_compiler_pass":3,"elapsed_ms":54121}
Result: {"status":"keep","compatibility_failures":65,"compiler_test262_cases":509,"compiler_test262_pass":444,"compiler_test262_failures":65,"compiler_test262_compiler_errors":0,"compiler_test262_compiler_crashes":0,"compiler_test262_compiler_fails":2,"compiler_test262_both_fail":58,"compiler_test262_interpreter_fail_compiler_pass":3,"compatibility_pass":444,"compatibility_cases":509,"compiler_errors":0,"compiler_crashes":0,"compiler_fails":2,"both_fail":58,"interpreter_fail_compiler_pass":3,"elapsed_ms":53853}
Result: {"status":"keep","compatibility_failures":63,"compiler_test262_cases":509,"compiler_test262_pass":446,"compiler_test262_failures":63,"compiler_test262_compiler_errors":0,"compiler_test262_compiler_crashes":0,"compiler_test262_compiler_fails":2,"compiler_test262_both_fail":56,"compiler_test262_interpreter_fail_compiler_pass":3,"compatibility_pass":446,"compatibility_cases":509,"compiler_errors":0,"compiler_crashes":0,"compiler_fails":2,"both_fail":56,"interpreter_fail_compiler_pass":3,"elapsed_ms":53710}
Result: {"status":"keep","compatibility_failures":60,"compiler_test262_cases":509,"compiler_test262_pass":449,"compiler_test262_failures":60,"compiler_test262_compiler_errors":0,"compiler_test262_compiler_crashes":0,"compiler_test262_compiler_fails":2,"compiler_test262_both_fail":53,"compiler_test262_interpreter_fail_compiler_pass":3,"compatibility_pass":449,"compatibility_cases":509,"compiler_errors":0,"compiler_crashes":0,"compiler_fails":2,"both_fail":53,"interpreter_fail_compiler_pass":3,"elapsed_ms":52538}
Result: {"status":"keep","compatibility_failures":59,"compiler_test262_cases":509,"compiler_test262_pass":450,"compiler_test262_failures":59,"compiler_test262_compiler_errors":0,"compiler_test262_compiler_crashes":0,"compiler_test262_compiler_fails":2,"compiler_test262_both_fail":52,"compiler_test262_interpreter_fail_compiler_pass":3,"compatibility_pass":450,"compatibility_cases":509,"compiler_errors":0,"compiler_crashes":0,"compiler_fails":2,"both_fail":52,"interpreter_fail_compiler_pass":3,"elapsed_ms":54064}
Result: {"status":"keep","compatibility_failures":58,"compiler_test262_cases":509,"compiler_test262_pass":451,"compiler_test262_failures":58,"compiler_test262_compiler_errors":0,"compiler_test262_compiler_crashes":0,"compiler_test262_compiler_fails":2,"compiler_test262_both_fail":51,"compiler_test262_interpreter_fail_compiler_pass":3,"compatibility_pass":451,"compatibility_cases":509,"compiler_errors":0,"compiler_crashes":0,"compiler_fails":2,"both_fail":51,"interpreter_fail_compiler_pass":3,"elapsed_ms":54072}
Result: {"status":"keep","compatibility_failures":54,"compiler_test262_cases":509,"compiler_test262_pass":455,"compiler_test262_failures":54,"compiler_test262_compiler_errors":0,"compiler_test262_compiler_crashes":0,"compiler_test262_compiler_fails":2,"compiler_test262_both_fail":47,"compiler_test262_interpreter_fail_compiler_pass":3,"compatibility_pass":455,"compatibility_cases":509,"compiler_errors":0,"compiler_crashes":0,"compiler_fails":2,"both_fail":47,"interpreter_fail_compiler_pass":3,"elapsed_ms":53153}
Result: {"status":"keep","compatibility_failures":52,"compiler_test262_cases":509,"compiler_test262_pass":457,"compiler_test262_failures":52,"compiler_test262_compiler_errors":0,"compiler_test262_compiler_crashes":0,"compiler_test262_compiler_fails":2,"compiler_test262_both_fail":47,"compiler_test262_interpreter_fail_compiler_pass":1,"compatibility_pass":457,"compatibility_cases":509,"compiler_errors":0,"compiler_crashes":0,"compiler_fails":2,"both_fail":47,"interpreter_fail_compiler_pass":1,"elapsed_ms":53553}
Result: {"status":"keep","compatibility_failures":43,"compiler_test262_cases":509,"compiler_test262_pass":466,"compiler_test262_failures":43,"compiler_test262_compiler_errors":0,"compiler_test262_compiler_crashes":0,"compiler_test262_compiler_fails":2,"compiler_test262_both_fail":38,"compiler_test262_interpreter_fail_compiler_pass":1,"compatibility_pass":466,"compatibility_cases":509,"compiler_errors":0,"compiler_crashes":0,"compiler_fails":2,"both_fail":38,"interpreter_fail_compiler_pass":1,"elapsed_ms":53010}
Result: {"status":"keep","compatibility_failures":43,"compiler_test262_cases":509,"compiler_test262_pass":466,"compiler_test262_failures":43,"compiler_test262_compiler_errors":0,"compiler_test262_compiler_crashes":0,"compiler_test262_compiler_fails":2,"compiler_test262_both_fail":38,"compiler_test262_interpreter_fail_compiler_pass":1,"compatibility_pass":466,"compatibility_cases":509,"compiler_errors":0,"compiler_crashes":0,"compiler_fails":2,"both_fail":38,"interpreter_fail_compiler_pass":1,"elapsed_ms":54997}
Result: {"status":"keep","compatibility_failures":41,"compiler_test262_cases":509,"compiler_test262_pass":468,"compiler_test262_failures":41,"compiler_test262_compiler_errors":0,"compiler_test262_compiler_crashes":0,"compiler_test262_compiler_fails":0,"compiler_test262_both_fail":38,"compiler_test262_interpreter_fail_compiler_pass":1,"compatibility_pass":468,"compatibility_cases":509,"compiler_errors":0,"compiler_crashes":0,"compiler_fails":0,"both_fail":38,"interpreter_fail_compiler_pass":1,"elapsed_ms":52777}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant