From 47351efa53d86f610582b86545e9cbee8b45fe54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Juli=C3=A1n=20Espina?= Date: Wed, 6 Dec 2023 17:09:10 -0600 Subject: [PATCH] Reestructure repo and CI improvements (#3505) * Reestructure repo * cargo update & fmt * Fix CI * Add newline * Fix playground CI * Fix CI * Fix CI (for real this time) * Fix CI (fr fr) --- .github/dependabot.yml | 50 ++++- .github/workflows/pull_request.yml | 2 +- .github/workflows/release.yml | 4 +- .github/workflows/rust.yml | 28 +-- .github/workflows/webassembly.yml | 17 +- .gitignore | 4 +- .prettierignore | 7 +- .vscode/launch.json | 24 ++- .vscode/tasks.json | 23 +- Cargo.lock | 204 +++++++++--------- Cargo.toml | 52 ++--- {boa_ast => cli}/ABOUT.md | 0 {boa_cli => cli}/Cargo.toml | 0 {boa_cli => cli}/src/debug/function.rs | 0 {boa_cli => cli}/src/debug/gc.rs | 0 {boa_cli => cli}/src/debug/limits.rs | 0 {boa_cli => cli}/src/debug/mod.rs | 0 {boa_cli => cli}/src/debug/object.rs | 0 {boa_cli => cli}/src/debug/optimizer.rs | 0 {boa_cli => cli}/src/debug/realm.rs | 0 {boa_cli => cli}/src/debug/shape.rs | 0 {boa_cli => cli}/src/helper.rs | 0 {boa_cli => cli}/src/main.rs | 0 {boa_cli => core/ast}/ABOUT.md | 0 {boa_ast => core/ast}/Cargo.toml | 0 .../ast}/src/declaration/export.rs | 0 .../ast}/src/declaration/import.rs | 0 {boa_ast => core/ast}/src/declaration/mod.rs | 0 .../ast}/src/declaration/variable.rs | 0 .../ast}/src/expression/access.rs | 0 {boa_ast => core/ast}/src/expression/await.rs | 0 {boa_ast => core/ast}/src/expression/call.rs | 0 .../ast}/src/expression/identifier.rs | 0 .../ast}/src/expression/literal/array.rs | 0 .../ast}/src/expression/literal/mod.rs | 0 .../ast}/src/expression/literal/object.rs | 0 .../ast}/src/expression/literal/template.rs | 0 {boa_ast => core/ast}/src/expression/mod.rs | 0 {boa_ast => core/ast}/src/expression/new.rs | 0 .../src/expression/operator/assign/mod.rs | 0 .../ast}/src/expression/operator/assign/op.rs | 0 .../src/expression/operator/binary/mod.rs | 0 .../ast}/src/expression/operator/binary/op.rs | 0 .../src/expression/operator/conditional.rs | 0 .../ast}/src/expression/operator/mod.rs | 0 .../ast}/src/expression/operator/unary/mod.rs | 0 .../ast}/src/expression/operator/unary/op.rs | 0 .../src/expression/operator/update/mod.rs | 0 .../ast}/src/expression/operator/update/op.rs | 0 .../ast}/src/expression/optional.rs | 0 .../ast}/src/expression/parenthesized.rs | 0 .../ast}/src/expression/regexp.rs | 0 .../ast}/src/expression/spread.rs | 0 .../ast}/src/expression/tagged_template.rs | 0 {boa_ast => core/ast}/src/expression/yield.rs | 0 .../ast}/src/function/arrow_function.rs | 0 .../ast}/src/function/async_arrow_function.rs | 0 .../ast}/src/function/async_function.rs | 0 .../ast}/src/function/async_generator.rs | 0 {boa_ast => core/ast}/src/function/class.rs | 0 .../ast}/src/function/generator.rs | 0 {boa_ast => core/ast}/src/function/mod.rs | 0 .../ast}/src/function/parameters.rs | 0 {boa_ast => core/ast}/src/keyword/mod.rs | 0 {boa_ast => core/ast}/src/keyword/tests.rs | 0 {boa_ast => core/ast}/src/lib.rs | 0 .../ast}/src/module_item_list/mod.rs | 0 {boa_ast => core/ast}/src/operations.rs | 0 {boa_ast => core/ast}/src/pattern.rs | 0 {boa_ast => core/ast}/src/position.rs | 0 {boa_ast => core/ast}/src/property.rs | 0 {boa_ast => core/ast}/src/punctuator/mod.rs | 0 {boa_ast => core/ast}/src/punctuator/tests.rs | 0 {boa_ast => core/ast}/src/source.rs | 0 {boa_ast => core/ast}/src/statement/block.rs | 0 {boa_ast => core/ast}/src/statement/if.rs | 0 .../ast}/src/statement/iteration/break.rs | 0 .../ast}/src/statement/iteration/continue.rs | 0 .../src/statement/iteration/do_while_loop.rs | 0 .../src/statement/iteration/for_in_loop.rs | 0 .../ast}/src/statement/iteration/for_loop.rs | 0 .../src/statement/iteration/for_of_loop.rs | 0 .../ast}/src/statement/iteration/mod.rs | 0 .../src/statement/iteration/while_loop.rs | 0 .../ast}/src/statement/labelled.rs | 0 {boa_ast => core/ast}/src/statement/mod.rs | 0 {boa_ast => core/ast}/src/statement/return.rs | 0 {boa_ast => core/ast}/src/statement/switch.rs | 0 {boa_ast => core/ast}/src/statement/throw.rs | 0 {boa_ast => core/ast}/src/statement/try.rs | 0 {boa_ast => core/ast}/src/statement/with.rs | 0 {boa_ast => core/ast}/src/statement_list.rs | 0 {boa_ast => core/ast}/src/visitor.rs | 0 {boa_engine => core/engine}/ABOUT.md | 0 {boa_engine => core/engine}/Cargo.toml | 0 {boa_engine => core/engine}/benches/README.md | 0 .../bench_scripts/arithmetic_operations.js | 0 .../benches/bench_scripts/array_access.js | 0 .../benches/bench_scripts/array_create.js | 0 .../benches/bench_scripts/array_pop.js | 0 .../bench_scripts/boolean_object_access.js | 0 .../engine}/benches/bench_scripts/clean_js.js | 0 .../benches/bench_scripts/fibonacci.js | 0 .../engine}/benches/bench_scripts/for_loop.js | 0 .../engine}/benches/bench_scripts/mini_js.js | 0 .../bench_scripts/number_object_access.js | 0 .../benches/bench_scripts/object_creation.js | 0 .../bench_scripts/object_prop_access_const.js | 0 .../bench_scripts/object_prop_access_dyn.js | 0 .../engine}/benches/bench_scripts/regexp.js | 0 .../benches/bench_scripts/regexp_creation.js | 0 .../benches/bench_scripts/regexp_literal.js | 0 .../bench_scripts/regexp_literal_creation.js | 0 .../benches/bench_scripts/string_compare.js | 0 .../benches/bench_scripts/string_concat.js | 0 .../benches/bench_scripts/string_copy.js | 0 .../bench_scripts/string_object_access.js | 0 .../benches/bench_scripts/symbol_creation.js | 0 {boa_engine => core/engine}/benches/full.rs | 0 {boa_engine => core/engine}/src/bigint.rs | 0 .../src/builtins/array/array_iterator.rs | 0 .../engine}/src/builtins/array/mod.rs | 0 .../engine}/src/builtins/array/tests.rs | 0 .../engine}/src/builtins/array_buffer/mod.rs | 0 .../src/builtins/array_buffer/shared.rs | 0 .../src/builtins/array_buffer/tests.rs | 0 .../src/builtins/array_buffer/utils.rs | 0 .../src/builtins/async_function/mod.rs | 0 .../src/builtins/async_generator/mod.rs | 0 .../builtins/async_generator_function/mod.rs | 0 .../engine}/src/builtins/atomics/futex.rs | 0 .../engine}/src/builtins/atomics/mod.rs | 0 .../engine}/src/builtins/bigint/mod.rs | 0 .../engine}/src/builtins/bigint/tests.rs | 0 .../engine}/src/builtins/boolean/mod.rs | 0 .../engine}/src/builtins/boolean/tests.rs | 0 .../engine}/src/builtins/builder.rs | 0 .../engine}/src/builtins/dataview/mod.rs | 0 .../engine}/src/builtins/date/mod.rs | 0 .../engine}/src/builtins/date/tests.rs | 0 .../engine}/src/builtins/date/utils.rs | 0 .../engine}/src/builtins/error/aggregate.rs | 0 .../engine}/src/builtins/error/eval.rs | 0 .../engine}/src/builtins/error/mod.rs | 0 .../engine}/src/builtins/error/range.rs | 0 .../engine}/src/builtins/error/reference.rs | 0 .../engine}/src/builtins/error/syntax.rs | 0 .../engine}/src/builtins/error/tests.rs | 0 .../engine}/src/builtins/error/type.rs | 0 .../engine}/src/builtins/error/uri.rs | 0 .../engine}/src/builtins/escape/mod.rs | 0 .../engine}/src/builtins/eval/mod.rs | 0 .../src/builtins/function/arguments.rs | 0 .../engine}/src/builtins/function/bound.rs | 0 .../engine}/src/builtins/function/mod.rs | 0 .../engine}/src/builtins/function/tests.rs | 0 .../engine}/src/builtins/generator/mod.rs | 0 .../src/builtins/generator_function/mod.rs | 0 .../engine}/src/builtins/intl/collator/mod.rs | 0 .../src/builtins/intl/collator/options.rs | 0 .../src/builtins/intl/date_time_format.rs | 0 .../src/builtins/intl/list_format/mod.rs | 0 .../src/builtins/intl/list_format/options.rs | 0 .../engine}/src/builtins/intl/locale/mod.rs | 0 .../src/builtins/intl/locale/options.rs | 0 .../engine}/src/builtins/intl/locale/tests.rs | 0 .../engine}/src/builtins/intl/locale/utils.rs | 0 .../engine}/src/builtins/intl/mod.rs | 0 .../src/builtins/intl/number_format/mod.rs | 0 .../builtins/intl/number_format/options.rs | 0 .../src/builtins/intl/number_format/utils.rs | 0 .../engine}/src/builtins/intl/options.rs | 0 .../src/builtins/intl/plural_rules/mod.rs | 0 .../src/builtins/intl/plural_rules/options.rs | 0 .../src/builtins/intl/segmenter/iterator.rs | 0 .../src/builtins/intl/segmenter/mod.rs | 0 .../src/builtins/intl/segmenter/options.rs | 0 .../src/builtins/intl/segmenter/segments.rs | 0 .../iterable/async_from_sync_iterator.rs | 0 .../engine}/src/builtins/iterable/mod.rs | 0 .../engine}/src/builtins/json/mod.rs | 0 .../engine}/src/builtins/json/tests.rs | 0 .../engine}/src/builtins/map/map_iterator.rs | 0 .../engine}/src/builtins/map/mod.rs | 0 .../engine}/src/builtins/map/ordered_map.rs | 0 .../engine}/src/builtins/map/tests.rs | 0 .../engine}/src/builtins/math/mod.rs | 0 .../engine}/src/builtins/math/tests.rs | 0 .../engine}/src/builtins/mod.rs | 0 .../src/builtins/number/conversions.rs | 0 .../engine}/src/builtins/number/globals.rs | 0 .../engine}/src/builtins/number/mod.rs | 0 .../engine}/src/builtins/number/tests.rs | 0 .../src/builtins/object/for_in_iterator.rs | 0 .../engine}/src/builtins/object/mod.rs | 0 .../engine}/src/builtins/object/tests.rs | 0 .../engine}/src/builtins/options.rs | 0 .../engine}/src/builtins/promise/mod.rs | 0 .../engine}/src/builtins/promise/tests.rs | 0 .../engine}/src/builtins/proxy/mod.rs | 0 .../engine}/src/builtins/reflect/mod.rs | 0 .../engine}/src/builtins/reflect/tests.rs | 0 .../engine}/src/builtins/regexp/mod.rs | 0 .../builtins/regexp/regexp_string_iterator.rs | 0 .../engine}/src/builtins/regexp/tests.rs | 0 .../engine}/src/builtins/set/mod.rs | 0 .../engine}/src/builtins/set/ordered_set.rs | 0 .../engine}/src/builtins/set/set_iterator.rs | 0 .../engine}/src/builtins/set/tests.rs | 0 .../engine}/src/builtins/string/mod.rs | 0 .../src/builtins/string/string_iterator.rs | 0 .../engine}/src/builtins/string/tests.rs | 0 .../engine}/src/builtins/symbol/mod.rs | 0 .../engine}/src/builtins/symbol/tests.rs | 0 .../src/builtins/temporal/calendar/mod.rs | 0 .../src/builtins/temporal/calendar/object.rs | 0 .../src/builtins/temporal/calendar/tests.rs | 0 .../src/builtins/temporal/duration/mod.rs | 0 .../src/builtins/temporal/duration/tests.rs | 0 .../engine}/src/builtins/temporal/error.rs | 0 .../engine}/src/builtins/temporal/fields.rs | 0 .../src/builtins/temporal/instant/mod.rs | 0 .../engine}/src/builtins/temporal/mod.rs | 0 .../engine}/src/builtins/temporal/now.rs | 0 .../engine}/src/builtins/temporal/options.rs | 0 .../src/builtins/temporal/plain_date/mod.rs | 0 .../builtins/temporal/plain_date_time/mod.rs | 0 .../builtins/temporal/plain_month_day/mod.rs | 0 .../src/builtins/temporal/plain_time/mod.rs | 0 .../builtins/temporal/plain_year_month/mod.rs | 0 .../engine}/src/builtins/temporal/tests.rs | 0 .../src/builtins/temporal/time_zone/mod.rs | 0 .../builtins/temporal/zoned_date_time/mod.rs | 0 .../src/builtins/typed_array/builtin.rs | 0 .../builtins/typed_array/element/atomic.rs | 0 .../src/builtins/typed_array/element/mod.rs | 0 .../typed_array/integer_indexed_object.rs | 0 .../engine}/src/builtins/typed_array/mod.rs | 0 .../engine}/src/builtins/uri/consts.rs | 0 .../engine}/src/builtins/uri/mod.rs | 0 .../engine}/src/builtins/weak/mod.rs | 0 .../engine}/src/builtins/weak/weak_ref.rs | 0 .../engine}/src/builtins/weak_map/mod.rs | 0 .../engine}/src/builtins/weak_set/mod.rs | 0 .../engine}/src/bytecompiler/class.rs | 0 .../declaration/declaration_pattern.rs | 0 .../src/bytecompiler/declaration/mod.rs | 0 .../engine}/src/bytecompiler/declarations.rs | 0 .../engine}/src/bytecompiler/env.rs | 0 .../src/bytecompiler/expression/assign.rs | 0 .../src/bytecompiler/expression/binary.rs | 0 .../src/bytecompiler/expression/mod.rs | 0 .../bytecompiler/expression/object_literal.rs | 0 .../src/bytecompiler/expression/unary.rs | 0 .../src/bytecompiler/expression/update.rs | 0 .../engine}/src/bytecompiler/function.rs | 0 .../engine}/src/bytecompiler/jump_control.rs | 0 .../engine}/src/bytecompiler/mod.rs | 0 .../engine}/src/bytecompiler/module.rs | 0 .../src/bytecompiler/statement/block.rs | 0 .../src/bytecompiler/statement/break.rs | 0 .../src/bytecompiler/statement/continue.rs | 0 .../engine}/src/bytecompiler/statement/if.rs | 0 .../src/bytecompiler/statement/labelled.rs | 0 .../src/bytecompiler/statement/loop.rs | 0 .../engine}/src/bytecompiler/statement/mod.rs | 0 .../src/bytecompiler/statement/switch.rs | 0 .../engine}/src/bytecompiler/statement/try.rs | 0 .../src/bytecompiler/statement/with.rs | 0 .../engine}/src/bytecompiler/utils.rs | 0 {boa_engine => core/engine}/src/class.rs | 0 .../engine}/src/context/hooks.rs | 0 .../engine}/src/context/icu.rs | 0 .../engine}/src/context/intrinsics.rs | 0 .../engine}/src/context/mod.rs | 0 .../engine}/src/environments/compile.rs | 0 .../engine}/src/environments/mod.rs | 0 .../runtime/declarative/function.rs | 0 .../runtime/declarative/global.rs | 0 .../runtime/declarative/lexical.rs | 0 .../environments/runtime/declarative/mod.rs | 0 .../runtime/declarative/module.rs | 0 .../engine}/src/environments/runtime/mod.rs | 0 .../src/environments/runtime/private.rs | 0 .../engine}/src/environments/tests.rs | 0 {boa_engine => core/engine}/src/error.rs | 0 .../engine}/src/host_defined.rs | 0 {boa_engine => core/engine}/src/job.rs | 0 {boa_engine => core/engine}/src/lib.rs | 0 .../engine}/src/module/loader.rs | 0 {boa_engine => core/engine}/src/module/mod.rs | 0 .../engine}/src/module/namespace.rs | 0 .../engine}/src/module/source.rs | 0 .../engine}/src/module/synthetic.rs | 0 .../engine}/src/native_function.rs | 0 .../engine}/src/object/builtins/jsarray.rs | 0 .../src/object/builtins/jsarraybuffer.rs | 0 .../engine}/src/object/builtins/jsdataview.rs | 0 .../engine}/src/object/builtins/jsdate.rs | 0 .../engine}/src/object/builtins/jsfunction.rs | 0 .../src/object/builtins/jsgenerator.rs | 0 .../engine}/src/object/builtins/jsmap.rs | 0 .../src/object/builtins/jsmap_iterator.rs | 0 .../engine}/src/object/builtins/jspromise.rs | 0 .../engine}/src/object/builtins/jsproxy.rs | 0 .../engine}/src/object/builtins/jsregexp.rs | 0 .../engine}/src/object/builtins/jsset.rs | 0 .../src/object/builtins/jsset_iterator.rs | 0 .../object/builtins/jssharedarraybuffer.rs | 0 .../src/object/builtins/jstypedarray.rs | 0 .../engine}/src/object/builtins/mod.rs | 0 .../engine}/src/object/datatypes.rs | 0 .../internal_methods/immutable_prototype.rs | 0 .../src/object/internal_methods/mod.rs | 0 .../src/object/internal_methods/string.rs | 0 .../engine}/src/object/jsobject.rs | 0 {boa_engine => core/engine}/src/object/mod.rs | 0 .../engine}/src/object/operations.rs | 0 .../engine}/src/object/property_map.rs | 0 .../engine}/src/object/shape/mod.rs | 0 .../src/object/shape/property_table.rs | 0 .../engine}/src/object/shape/root_shape.rs | 0 .../shape/shared_shape/forward_transition.rs | 0 .../src/object/shape/shared_shape/mod.rs | 0 .../src/object/shape/shared_shape/template.rs | 0 .../src/object/shape/shared_shape/tests.rs | 0 .../engine}/src/object/shape/slot.rs | 0 .../engine}/src/object/shape/unique_shape.rs | 0 .../engine}/src/object/tests.rs | 0 .../engine}/src/optimizer/mod.rs | 0 .../src/optimizer/pass/constant_folding.rs | 0 .../engine}/src/optimizer/pass/mod.rs | 0 .../engine}/src/optimizer/walker.rs | 0 .../engine}/src/property/attribute/mod.rs | 0 .../engine}/src/property/attribute/tests.rs | 0 .../engine}/src/property/mod.rs | 0 .../engine}/src/property/nonmaxu32.rs | 0 {boa_engine => core/engine}/src/realm.rs | 0 {boa_engine => core/engine}/src/script.rs | 0 .../engine}/src/small_map/entry.rs | 0 .../engine}/src/small_map/mod.rs | 0 .../engine}/src/string/common.rs | 0 {boa_engine => core/engine}/src/string/mod.rs | 0 {boa_engine => core/engine}/src/symbol.rs | 0 .../engine}/src/sys/fallback/mod.rs | 0 {boa_engine => core/engine}/src/sys/js/mod.rs | 0 {boa_engine => core/engine}/src/sys/mod.rs | 0 {boa_engine => core/engine}/src/tagged.rs | 0 .../engine}/src/tests/control_flow/loops.rs | 0 .../engine}/src/tests/control_flow/mod.rs | 0 {boa_engine => core/engine}/src/tests/env.rs | 0 .../engine}/src/tests/function.rs | 0 .../engine}/src/tests/iterators.rs | 0 {boa_engine => core/engine}/src/tests/mod.rs | 0 .../engine}/src/tests/operators.rs | 0 .../engine}/src/tests/promise.rs | 0 .../engine}/src/tests/spread.rs | 0 .../engine}/src/value/conversions/mod.rs | 0 .../src/value/conversions/serde_json.rs | 0 .../src/value/conversions/try_from_js.rs | 0 .../engine}/src/value/display.rs | 0 .../engine}/src/value/equality.rs | 0 {boa_engine => core/engine}/src/value/hash.rs | 0 .../engine}/src/value/integer.rs | 0 {boa_engine => core/engine}/src/value/mod.rs | 0 .../engine}/src/value/operations.rs | 0 .../engine}/src/value/tests.rs | 0 {boa_engine => core/engine}/src/value/type.rs | 0 .../engine}/src/vm/call_frame/mod.rs | 0 .../engine}/src/vm/code_block.rs | 0 .../engine}/src/vm/completion_record.rs | 0 .../engine}/src/vm/flowgraph/color.rs | 0 .../engine}/src/vm/flowgraph/edge.rs | 0 .../engine}/src/vm/flowgraph/graph.rs | 0 .../engine}/src/vm/flowgraph/mod.rs | 0 .../engine}/src/vm/flowgraph/node.rs | 0 {boa_engine => core/engine}/src/vm/mod.rs | 0 .../engine}/src/vm/opcode/arguments.rs | 0 .../engine}/src/vm/opcode/await/mod.rs | 0 .../src/vm/opcode/binary_ops/logical.rs | 0 .../src/vm/opcode/binary_ops/macro_defined.rs | 0 .../engine}/src/vm/opcode/binary_ops/mod.rs | 0 .../engine}/src/vm/opcode/call/mod.rs | 0 .../engine}/src/vm/opcode/concat/mod.rs | 0 .../src/vm/opcode/control_flow/jump.rs | 0 .../engine}/src/vm/opcode/control_flow/mod.rs | 0 .../src/vm/opcode/control_flow/return.rs | 0 .../src/vm/opcode/control_flow/throw.rs | 0 .../engine}/src/vm/opcode/copy/mod.rs | 0 .../src/vm/opcode/define/class/getter.rs | 0 .../src/vm/opcode/define/class/method.rs | 0 .../engine}/src/vm/opcode/define/class/mod.rs | 0 .../src/vm/opcode/define/class/setter.rs | 0 .../engine}/src/vm/opcode/define/mod.rs | 0 .../src/vm/opcode/define/own_property.rs | 0 .../engine}/src/vm/opcode/delete/mod.rs | 0 .../engine}/src/vm/opcode/dup/mod.rs | 0 .../engine}/src/vm/opcode/environment/mod.rs | 0 .../engine}/src/vm/opcode/generator/mod.rs | 0 .../src/vm/opcode/generator/yield_stm.rs | 0 .../engine}/src/vm/opcode/get/argument.rs | 0 .../engine}/src/vm/opcode/get/function.rs | 0 .../engine}/src/vm/opcode/get/mod.rs | 0 .../engine}/src/vm/opcode/get/name.rs | 0 .../engine}/src/vm/opcode/get/private.rs | 0 .../engine}/src/vm/opcode/get/property.rs | 0 .../engine}/src/vm/opcode/iteration/for_in.rs | 0 .../engine}/src/vm/opcode/iteration/get.rs | 0 .../src/vm/opcode/iteration/iterator.rs | 0 .../src/vm/opcode/iteration/loop_ops.rs | 0 .../engine}/src/vm/opcode/iteration/mod.rs | 0 .../engine}/src/vm/opcode/meta/mod.rs | 0 .../engine}/src/vm/opcode/mod.rs | 0 .../engine}/src/vm/opcode/modifier.rs | 0 .../engine}/src/vm/opcode/new/mod.rs | 0 .../engine}/src/vm/opcode/nop/mod.rs | 0 .../engine}/src/vm/opcode/pop/mod.rs | 0 .../engine}/src/vm/opcode/push/array.rs | 0 .../engine}/src/vm/opcode/push/class/field.rs | 0 .../engine}/src/vm/opcode/push/class/mod.rs | 0 .../src/vm/opcode/push/class/private.rs | 0 .../engine}/src/vm/opcode/push/environment.rs | 0 .../engine}/src/vm/opcode/push/literal.rs | 0 .../engine}/src/vm/opcode/push/mod.rs | 0 .../engine}/src/vm/opcode/push/numbers.rs | 0 .../engine}/src/vm/opcode/push/object.rs | 0 .../engine}/src/vm/opcode/require/mod.rs | 0 .../src/vm/opcode/rest_parameter/mod.rs | 0 .../src/vm/opcode/set/class_prototype.rs | 0 .../engine}/src/vm/opcode/set/home_object.rs | 0 .../engine}/src/vm/opcode/set/mod.rs | 0 .../engine}/src/vm/opcode/set/name.rs | 0 .../engine}/src/vm/opcode/set/private.rs | 0 .../engine}/src/vm/opcode/set/property.rs | 0 .../engine}/src/vm/opcode/set/prototype.rs | 0 .../engine}/src/vm/opcode/swap/mod.rs | 0 .../engine}/src/vm/opcode/switch/mod.rs | 0 .../engine}/src/vm/opcode/templates/mod.rs | 0 .../engine}/src/vm/opcode/to/mod.rs | 0 .../src/vm/opcode/unary_ops/decrement.rs | 0 .../src/vm/opcode/unary_ops/increment.rs | 0 .../src/vm/opcode/unary_ops/logical.rs | 0 .../engine}/src/vm/opcode/unary_ops/mod.rs | 0 .../engine}/src/vm/opcode/unary_ops/void.rs | 0 .../engine}/src/vm/opcode/value/mod.rs | 0 .../engine}/src/vm/runtime_limits.rs | 0 {boa_engine => core/engine}/src/vm/tests.rs | 0 {boa_gc => core/gc}/ABOUT.md | 0 {boa_gc => core/gc}/Cargo.toml | 0 {boa_gc => core/gc}/src/cell.rs | 0 .../gc}/src/internals/ephemeron_box.rs | 0 {boa_gc => core/gc}/src/internals/gc_box.rs | 0 {boa_gc => core/gc}/src/internals/mod.rs | 0 .../gc}/src/internals/weak_map_box.rs | 0 {boa_gc => core/gc}/src/lib.rs | 0 {boa_gc => core/gc}/src/pointers/ephemeron.rs | 0 {boa_gc => core/gc}/src/pointers/gc.rs | 0 {boa_gc => core/gc}/src/pointers/mod.rs | 0 {boa_gc => core/gc}/src/pointers/weak.rs | 0 {boa_gc => core/gc}/src/pointers/weak_map.rs | 0 {boa_gc => core/gc}/src/test/allocation.rs | 0 {boa_gc => core/gc}/src/test/cell.rs | 0 {boa_gc => core/gc}/src/test/mod.rs | 0 {boa_gc => core/gc}/src/test/weak.rs | 0 {boa_gc => core/gc}/src/test/weak_map.rs | 0 {boa_gc => core/gc}/src/trace.rs | 0 .../icu_provider}/ABOUT.md | 0 .../icu_provider}/Cargo.toml | 0 .../icu_provider}/README.md | 0 .../icu_provider}/data/icudata.postcard | Bin .../icu_provider}/src/bin/datagen.rs | 0 .../icu_provider}/src/lib.rs | 0 {boa_interner => core/interner}/ABOUT.md | 0 {boa_interner => core/interner}/Cargo.toml | 0 .../interner}/src/fixed_string.rs | 0 .../interner}/src/interned_str.rs | 0 {boa_interner => core/interner}/src/lib.rs | 0 {boa_interner => core/interner}/src/raw.rs | 0 {boa_interner => core/interner}/src/sym.rs | 0 {boa_interner => core/interner}/src/tests.rs | 0 {boa_macros => core/macros}/ABOUT.md | 0 {boa_macros => core/macros}/Cargo.toml | 0 {boa_macros => core/macros}/src/lib.rs | 0 {boa_macros => core/macros}/tests/tests.rs | 0 {boa_parser => core/parser}/ABOUT.md | 0 {boa_parser => core/parser}/Cargo.toml | 0 {boa_parser => core/parser}/src/error/mod.rs | 0 .../parser}/src/error/tests.rs | 0 .../parser}/src/lexer/comment.rs | 0 .../parser}/src/lexer/cursor.rs | 0 .../parser}/src/lexer/error.rs | 0 .../parser}/src/lexer/identifier.rs | 0 {boa_parser => core/parser}/src/lexer/mod.rs | 0 .../parser}/src/lexer/number.rs | 0 .../parser}/src/lexer/operator.rs | 0 .../parser}/src/lexer/private_identifier.rs | 0 .../parser}/src/lexer/regex.rs | 0 .../parser}/src/lexer/spread.rs | 0 .../parser}/src/lexer/string.rs | 0 .../parser}/src/lexer/template.rs | 0 .../parser}/src/lexer/tests.rs | 0 .../parser}/src/lexer/token.rs | 0 {boa_parser => core/parser}/src/lib.rs | 0 .../src/parser/cursor/buffered_lexer/mod.rs | 0 .../src/parser/cursor/buffered_lexer/tests.rs | 0 .../parser}/src/parser/cursor/mod.rs | 0 .../expression/assignment/arrow_function.rs | 0 .../assignment/async_arrow_function.rs | 0 .../expression/assignment/conditional.rs | 0 .../expression/assignment/exponentiation.rs | 0 .../src/parser/expression/assignment/mod.rs | 0 .../src/parser/expression/assignment/yield.rs | 0 .../src/parser/expression/await_expr.rs | 0 .../src/parser/expression/identifiers.rs | 0 .../expression/left_hand_side/arguments.rs | 0 .../parser/expression/left_hand_side/call.rs | 0 .../expression/left_hand_side/member.rs | 0 .../parser/expression/left_hand_side/mod.rs | 0 .../expression/left_hand_side/optional/mod.rs | 0 .../left_hand_side/optional/tests.rs | 0 .../expression/left_hand_side/template.rs | 0 .../parser/expression/left_hand_side/tests.rs | 0 .../parser}/src/parser/expression/mod.rs | 0 .../primary/array_initializer/mod.rs | 0 .../primary/array_initializer/tests.rs | 0 .../primary/async_function_expression/mod.rs | 0 .../async_function_expression/tests.rs | 0 .../primary/async_generator_expression/mod.rs | 0 .../async_generator_expression/tests.rs | 0 .../primary/class_expression/mod.rs | 0 .../primary/function_expression/mod.rs | 0 .../primary/function_expression/tests.rs | 0 .../primary/generator_expression/mod.rs | 0 .../primary/generator_expression/tests.rs | 0 .../src/parser/expression/primary/mod.rs | 0 .../primary/object_initializer/mod.rs | 0 .../primary/object_initializer/tests.rs | 0 .../parser/expression/primary/template/mod.rs | 0 .../src/parser/expression/primary/tests.rs | 0 .../parser}/src/parser/expression/tests.rs | 0 .../parser}/src/parser/expression/unary.rs | 0 .../parser}/src/parser/expression/update.rs | 0 .../parser}/src/parser/function/mod.rs | 0 .../parser}/src/parser/function/tests.rs | 0 {boa_parser => core/parser}/src/parser/mod.rs | 0 .../parser}/src/parser/statement/block/mod.rs | 0 .../src/parser/statement/block/tests.rs | 0 .../src/parser/statement/break_stm/mod.rs | 0 .../src/parser/statement/break_stm/tests.rs | 0 .../src/parser/statement/continue_stm/mod.rs | 0 .../parser/statement/continue_stm/tests.rs | 0 .../parser/statement/declaration/export.rs | 0 .../hoistable/async_function_decl/mod.rs | 0 .../hoistable/async_function_decl/tests.rs | 0 .../hoistable/async_generator_decl/mod.rs | 0 .../hoistable/async_generator_decl/tests.rs | 0 .../declaration/hoistable/class_decl/mod.rs | 0 .../declaration/hoistable/class_decl/tests.rs | 0 .../hoistable/function_decl/mod.rs | 0 .../hoistable/function_decl/tests.rs | 0 .../hoistable/generator_decl/mod.rs | 0 .../hoistable/generator_decl/tests.rs | 0 .../statement/declaration/hoistable/mod.rs | 0 .../statement/declaration/hoistable/tests.rs | 0 .../parser/statement/declaration/import.rs | 0 .../parser/statement/declaration/lexical.rs | 0 .../src/parser/statement/declaration/mod.rs | 0 .../src/parser/statement/declaration/tests.rs | 0 .../src/parser/statement/expression/mod.rs | 0 .../src/parser/statement/if_stm/mod.rs | 0 .../src/parser/statement/if_stm/tests.rs | 0 .../statement/iteration/do_while_statement.rs | 0 .../statement/iteration/for_statement.rs | 0 .../src/parser/statement/iteration/mod.rs | 0 .../src/parser/statement/iteration/tests.rs | 0 .../statement/iteration/while_statement.rs | 0 .../src/parser/statement/labelled_stm/mod.rs | 0 .../parser}/src/parser/statement/mod.rs | 0 .../src/parser/statement/return_stm/mod.rs | 0 .../src/parser/statement/switch/mod.rs | 0 .../src/parser/statement/switch/tests.rs | 0 .../parser}/src/parser/statement/throw/mod.rs | 0 .../src/parser/statement/throw/tests.rs | 0 .../src/parser/statement/try_stm/catch.rs | 0 .../src/parser/statement/try_stm/finally.rs | 0 .../src/parser/statement/try_stm/mod.rs | 0 .../src/parser/statement/try_stm/tests.rs | 0 .../src/parser/statement/variable/mod.rs | 0 .../parser}/src/parser/statement/with/mod.rs | 0 .../src/parser/tests/format/declaration.rs | 0 .../src/parser/tests/format/expression.rs | 0 .../src/parser/tests/format/function/class.rs | 0 .../src/parser/tests/format/function/mod.rs | 0 .../parser}/src/parser/tests/format/mod.rs | 0 .../src/parser/tests/format/statement.rs | 0 .../parser}/src/parser/tests/mod.rs | 0 .../parser}/src/parser/tests/test.js | 0 {boa_parser => core/parser}/src/source.rs | 0 {boa_profiler => core/profiler}/ABOUT.md | 0 {boa_profiler => core/profiler}/Cargo.toml | 0 {boa_profiler => core/profiler}/src/lib.rs | 0 {boa_runtime => core/runtime}/ABOUT.md | 0 {boa_runtime => core/runtime}/Cargo.toml | 0 .../runtime}/src/console/mod.rs | 0 .../runtime}/src/console/tests.rs | 0 {boa_runtime => core/runtime}/src/lib.rs | 0 {boa_tester => core/temporal}/ABOUT.md | 0 {boa_temporal => core/temporal}/Cargo.toml | 0 {boa_temporal => core/temporal}/README.md | 0 .../temporal}/src/components/calendar.rs | 0 .../temporal}/src/components/calendar/iso.rs | 0 .../temporal}/src/components/date.rs | 0 .../temporal}/src/components/datetime.rs | 0 .../temporal}/src/components/duration.rs | 0 .../temporal}/src/components/instant.rs | 0 .../temporal}/src/components/mod.rs | 0 .../temporal}/src/components/month_day.rs | 0 .../temporal}/src/components/time.rs | 0 .../temporal}/src/components/tz.rs | 0 .../temporal}/src/components/year_month.rs | 0 .../temporal}/src/components/zoneddatetime.rs | 0 {boa_temporal => core/temporal}/src/error.rs | 0 {boa_temporal => core/temporal}/src/fields.rs | 0 {boa_temporal => core/temporal}/src/iso.rs | 0 {boa_temporal => core/temporal}/src/lib.rs | 2 +- .../temporal}/src/options.rs | 0 .../temporal}/src/parser/annotations.rs | 0 .../temporal}/src/parser/date_time.rs | 0 .../temporal}/src/parser/duration.rs | 0 .../temporal}/src/parser/grammar.rs | 0 .../temporal}/src/parser/mod.rs | 0 .../temporal}/src/parser/nodes.rs | 0 .../temporal}/src/parser/tests.rs | 0 .../temporal}/src/parser/time.rs | 0 .../temporal}/src/parser/time_zone.rs | 0 {boa_temporal => core/temporal}/src/utils.rs | 0 {boa_examples => examples}/Cargo.toml | 0 {boa_examples => examples}/README.md | 0 {boa_examples => examples}/scripts/calc.js | 0 .../scripts/calctest.js | 0 .../scripts/enhancedglobal.js | 0 .../scripts/helloworld.js | 0 .../scripts/modules/operations.mjs | 0 .../scripts/modules/trig.mjs | 0 {boa_examples => examples}/src/bin/classes.rs | 0 .../src/bin/closures.rs | 0 .../src/bin/commuter_visitor.rs | 0 {boa_examples => examples}/src/bin/derive.rs | 0 {boa_examples => examples}/src/bin/futures.rs | 0 .../src/bin/host_defined.rs | 0 {boa_examples => examples}/src/bin/jsarray.rs | 0 .../src/bin/jsarraybuffer.rs | 0 {boa_examples => examples}/src/bin/jsdate.rs | 0 {boa_examples => examples}/src/bin/jsmap.rs | 0 .../src/bin/jsregexp.rs | 0 {boa_examples => examples}/src/bin/jsset.rs | 0 .../src/bin/jstypedarray.rs | 0 .../src/bin/loadfile.rs | 0 .../src/bin/loadstring.rs | 0 .../src/bin/modulehandler.rs | 0 {boa_examples => examples}/src/bin/modules.rs | 0 .../src/bin/runtime_limits.rs | 0 .../src/bin/symbol_visitor.rs | 0 .../src/bin/synthetic.rs | 0 {boa_wasm => ffi/wasm}/.gitignore | 0 {boa_wasm => ffi/wasm}/ABOUT.md | 0 {boa_wasm => ffi/wasm}/Cargo.toml | 0 .../wasm}/e2e_test/boa_demo.spec.ts | 0 .../wasm}/e2e_test/playwright.config.ts | 0 {boa_wasm => ffi/wasm}/e2e_test/server.mjs | 4 +- {boa_wasm => ffi/wasm}/src/lib.rs | 0 index.js | 2 +- package.json | 2 +- test262_config.toml | 10 +- tests/Cargo.toml | 12 ++ {fuzz => tests/fuzz}/.gitignore | 0 {fuzz => tests/fuzz}/Cargo.lock | 178 +++++++++------ {fuzz => tests/fuzz}/Cargo.toml | 14 +- {fuzz => tests/fuzz}/README.md | 8 +- .../fuzz_targets/bytecompiler-implied.rs | 0 {fuzz => tests/fuzz}/fuzz_targets/common.rs | 0 .../fuzz}/fuzz_targets/parser-idempotency.rs | 0 .../fuzz}/fuzz_targets/vm-implied.rs | 0 {boa_macros_tests => tests/macros}/Cargo.toml | 0 .../macros}/tests/derive/from_js_with.rs | 0 .../macros}/tests/derive/simple_struct.rs | 0 .../macros}/tests/tests.rs | 0 tests/src/lib.rs | 1 + tests/tester/ABOUT.md | 33 +++ {boa_tester => tests/tester}/Cargo.toml | 0 {boa_tester => tests/tester}/src/edition.rs | 8 + .../tester}/src/exec/js262.rs | 0 {boa_tester => tests/tester}/src/exec/mod.rs | 0 {boa_tester => tests/tester}/src/main.rs | 0 {boa_tester => tests/tester}/src/read.rs | 58 +++-- {boa_tester => tests/tester}/src/results.rs | 0 webpack.config.js | 21 +- 697 files changed, 475 insertions(+), 293 deletions(-) rename {boa_ast => cli}/ABOUT.md (100%) rename {boa_cli => cli}/Cargo.toml (100%) rename {boa_cli => cli}/src/debug/function.rs (100%) rename {boa_cli => cli}/src/debug/gc.rs (100%) rename {boa_cli => cli}/src/debug/limits.rs (100%) rename {boa_cli => cli}/src/debug/mod.rs (100%) rename {boa_cli => cli}/src/debug/object.rs (100%) rename {boa_cli => cli}/src/debug/optimizer.rs (100%) rename {boa_cli => cli}/src/debug/realm.rs (100%) rename {boa_cli => cli}/src/debug/shape.rs (100%) rename {boa_cli => cli}/src/helper.rs (100%) rename {boa_cli => cli}/src/main.rs (100%) rename {boa_cli => core/ast}/ABOUT.md (100%) rename {boa_ast => core/ast}/Cargo.toml (100%) rename {boa_ast => core/ast}/src/declaration/export.rs (100%) rename {boa_ast => core/ast}/src/declaration/import.rs (100%) rename {boa_ast => core/ast}/src/declaration/mod.rs (100%) rename {boa_ast => core/ast}/src/declaration/variable.rs (100%) rename {boa_ast => core/ast}/src/expression/access.rs (100%) rename {boa_ast => core/ast}/src/expression/await.rs (100%) rename {boa_ast => core/ast}/src/expression/call.rs (100%) rename {boa_ast => core/ast}/src/expression/identifier.rs (100%) rename {boa_ast => core/ast}/src/expression/literal/array.rs (100%) rename {boa_ast => core/ast}/src/expression/literal/mod.rs (100%) rename {boa_ast => core/ast}/src/expression/literal/object.rs (100%) rename {boa_ast => core/ast}/src/expression/literal/template.rs (100%) rename {boa_ast => core/ast}/src/expression/mod.rs (100%) rename {boa_ast => core/ast}/src/expression/new.rs (100%) rename {boa_ast => core/ast}/src/expression/operator/assign/mod.rs (100%) rename {boa_ast => core/ast}/src/expression/operator/assign/op.rs (100%) rename {boa_ast => core/ast}/src/expression/operator/binary/mod.rs (100%) rename {boa_ast => core/ast}/src/expression/operator/binary/op.rs (100%) rename {boa_ast => core/ast}/src/expression/operator/conditional.rs (100%) rename {boa_ast => core/ast}/src/expression/operator/mod.rs (100%) rename {boa_ast => core/ast}/src/expression/operator/unary/mod.rs (100%) rename {boa_ast => core/ast}/src/expression/operator/unary/op.rs (100%) rename {boa_ast => core/ast}/src/expression/operator/update/mod.rs (100%) rename {boa_ast => core/ast}/src/expression/operator/update/op.rs (100%) rename {boa_ast => core/ast}/src/expression/optional.rs (100%) rename {boa_ast => core/ast}/src/expression/parenthesized.rs (100%) rename {boa_ast => core/ast}/src/expression/regexp.rs (100%) rename {boa_ast => core/ast}/src/expression/spread.rs (100%) rename {boa_ast => core/ast}/src/expression/tagged_template.rs (100%) rename {boa_ast => core/ast}/src/expression/yield.rs (100%) rename {boa_ast => core/ast}/src/function/arrow_function.rs (100%) rename {boa_ast => core/ast}/src/function/async_arrow_function.rs (100%) rename {boa_ast => core/ast}/src/function/async_function.rs (100%) rename {boa_ast => core/ast}/src/function/async_generator.rs (100%) rename {boa_ast => core/ast}/src/function/class.rs (100%) rename {boa_ast => core/ast}/src/function/generator.rs (100%) rename {boa_ast => core/ast}/src/function/mod.rs (100%) rename {boa_ast => core/ast}/src/function/parameters.rs (100%) rename {boa_ast => core/ast}/src/keyword/mod.rs (100%) rename {boa_ast => core/ast}/src/keyword/tests.rs (100%) rename {boa_ast => core/ast}/src/lib.rs (100%) rename {boa_ast => core/ast}/src/module_item_list/mod.rs (100%) rename {boa_ast => core/ast}/src/operations.rs (100%) rename {boa_ast => core/ast}/src/pattern.rs (100%) rename {boa_ast => core/ast}/src/position.rs (100%) rename {boa_ast => core/ast}/src/property.rs (100%) rename {boa_ast => core/ast}/src/punctuator/mod.rs (100%) rename {boa_ast => core/ast}/src/punctuator/tests.rs (100%) rename {boa_ast => core/ast}/src/source.rs (100%) rename {boa_ast => core/ast}/src/statement/block.rs (100%) rename {boa_ast => core/ast}/src/statement/if.rs (100%) rename {boa_ast => core/ast}/src/statement/iteration/break.rs (100%) rename {boa_ast => core/ast}/src/statement/iteration/continue.rs (100%) rename {boa_ast => core/ast}/src/statement/iteration/do_while_loop.rs (100%) rename {boa_ast => core/ast}/src/statement/iteration/for_in_loop.rs (100%) rename {boa_ast => core/ast}/src/statement/iteration/for_loop.rs (100%) rename {boa_ast => core/ast}/src/statement/iteration/for_of_loop.rs (100%) rename {boa_ast => core/ast}/src/statement/iteration/mod.rs (100%) rename {boa_ast => core/ast}/src/statement/iteration/while_loop.rs (100%) rename {boa_ast => core/ast}/src/statement/labelled.rs (100%) rename {boa_ast => core/ast}/src/statement/mod.rs (100%) rename {boa_ast => core/ast}/src/statement/return.rs (100%) rename {boa_ast => core/ast}/src/statement/switch.rs (100%) rename {boa_ast => core/ast}/src/statement/throw.rs (100%) rename {boa_ast => core/ast}/src/statement/try.rs (100%) rename {boa_ast => core/ast}/src/statement/with.rs (100%) rename {boa_ast => core/ast}/src/statement_list.rs (100%) rename {boa_ast => core/ast}/src/visitor.rs (100%) rename {boa_engine => core/engine}/ABOUT.md (100%) rename {boa_engine => core/engine}/Cargo.toml (100%) rename {boa_engine => core/engine}/benches/README.md (100%) rename {boa_engine => core/engine}/benches/bench_scripts/arithmetic_operations.js (100%) rename {boa_engine => core/engine}/benches/bench_scripts/array_access.js (100%) rename {boa_engine => core/engine}/benches/bench_scripts/array_create.js (100%) rename {boa_engine => core/engine}/benches/bench_scripts/array_pop.js (100%) rename {boa_engine => core/engine}/benches/bench_scripts/boolean_object_access.js (100%) rename {boa_engine => core/engine}/benches/bench_scripts/clean_js.js (100%) rename {boa_engine => core/engine}/benches/bench_scripts/fibonacci.js (100%) rename {boa_engine => core/engine}/benches/bench_scripts/for_loop.js (100%) rename {boa_engine => core/engine}/benches/bench_scripts/mini_js.js (100%) rename {boa_engine => core/engine}/benches/bench_scripts/number_object_access.js (100%) rename {boa_engine => core/engine}/benches/bench_scripts/object_creation.js (100%) rename {boa_engine => core/engine}/benches/bench_scripts/object_prop_access_const.js (100%) rename {boa_engine => core/engine}/benches/bench_scripts/object_prop_access_dyn.js (100%) rename {boa_engine => core/engine}/benches/bench_scripts/regexp.js (100%) rename {boa_engine => core/engine}/benches/bench_scripts/regexp_creation.js (100%) rename {boa_engine => core/engine}/benches/bench_scripts/regexp_literal.js (100%) rename {boa_engine => core/engine}/benches/bench_scripts/regexp_literal_creation.js (100%) rename {boa_engine => core/engine}/benches/bench_scripts/string_compare.js (100%) rename {boa_engine => core/engine}/benches/bench_scripts/string_concat.js (100%) rename {boa_engine => core/engine}/benches/bench_scripts/string_copy.js (100%) rename {boa_engine => core/engine}/benches/bench_scripts/string_object_access.js (100%) rename {boa_engine => core/engine}/benches/bench_scripts/symbol_creation.js (100%) rename {boa_engine => core/engine}/benches/full.rs (100%) rename {boa_engine => core/engine}/src/bigint.rs (100%) rename {boa_engine => core/engine}/src/builtins/array/array_iterator.rs (100%) rename {boa_engine => core/engine}/src/builtins/array/mod.rs (100%) rename {boa_engine => core/engine}/src/builtins/array/tests.rs (100%) rename {boa_engine => core/engine}/src/builtins/array_buffer/mod.rs (100%) rename {boa_engine => core/engine}/src/builtins/array_buffer/shared.rs (100%) rename {boa_engine => core/engine}/src/builtins/array_buffer/tests.rs (100%) rename {boa_engine => core/engine}/src/builtins/array_buffer/utils.rs (100%) rename {boa_engine => core/engine}/src/builtins/async_function/mod.rs (100%) rename {boa_engine => core/engine}/src/builtins/async_generator/mod.rs (100%) rename {boa_engine => core/engine}/src/builtins/async_generator_function/mod.rs (100%) rename {boa_engine => core/engine}/src/builtins/atomics/futex.rs (100%) rename {boa_engine => core/engine}/src/builtins/atomics/mod.rs (100%) rename {boa_engine => core/engine}/src/builtins/bigint/mod.rs (100%) rename {boa_engine => core/engine}/src/builtins/bigint/tests.rs (100%) rename {boa_engine => core/engine}/src/builtins/boolean/mod.rs (100%) rename {boa_engine => core/engine}/src/builtins/boolean/tests.rs (100%) rename {boa_engine => core/engine}/src/builtins/builder.rs (100%) rename {boa_engine => core/engine}/src/builtins/dataview/mod.rs (100%) rename {boa_engine => core/engine}/src/builtins/date/mod.rs (100%) rename {boa_engine => core/engine}/src/builtins/date/tests.rs (100%) rename {boa_engine => core/engine}/src/builtins/date/utils.rs (100%) rename {boa_engine => core/engine}/src/builtins/error/aggregate.rs (100%) rename {boa_engine => core/engine}/src/builtins/error/eval.rs (100%) rename {boa_engine => core/engine}/src/builtins/error/mod.rs (100%) rename {boa_engine => core/engine}/src/builtins/error/range.rs (100%) rename {boa_engine => core/engine}/src/builtins/error/reference.rs (100%) rename {boa_engine => core/engine}/src/builtins/error/syntax.rs (100%) rename {boa_engine => core/engine}/src/builtins/error/tests.rs (100%) rename {boa_engine => core/engine}/src/builtins/error/type.rs (100%) rename {boa_engine => core/engine}/src/builtins/error/uri.rs (100%) rename {boa_engine => core/engine}/src/builtins/escape/mod.rs (100%) rename {boa_engine => core/engine}/src/builtins/eval/mod.rs (100%) rename {boa_engine => core/engine}/src/builtins/function/arguments.rs (100%) rename {boa_engine => core/engine}/src/builtins/function/bound.rs (100%) rename {boa_engine => core/engine}/src/builtins/function/mod.rs (100%) rename {boa_engine => core/engine}/src/builtins/function/tests.rs (100%) rename {boa_engine => core/engine}/src/builtins/generator/mod.rs (100%) rename {boa_engine => core/engine}/src/builtins/generator_function/mod.rs (100%) rename {boa_engine => core/engine}/src/builtins/intl/collator/mod.rs (100%) rename {boa_engine => core/engine}/src/builtins/intl/collator/options.rs (100%) rename {boa_engine => core/engine}/src/builtins/intl/date_time_format.rs (100%) rename {boa_engine => core/engine}/src/builtins/intl/list_format/mod.rs (100%) rename {boa_engine => core/engine}/src/builtins/intl/list_format/options.rs (100%) rename {boa_engine => core/engine}/src/builtins/intl/locale/mod.rs (100%) rename {boa_engine => core/engine}/src/builtins/intl/locale/options.rs (100%) rename {boa_engine => core/engine}/src/builtins/intl/locale/tests.rs (100%) rename {boa_engine => core/engine}/src/builtins/intl/locale/utils.rs (100%) rename {boa_engine => core/engine}/src/builtins/intl/mod.rs (100%) rename {boa_engine => core/engine}/src/builtins/intl/number_format/mod.rs (100%) rename {boa_engine => core/engine}/src/builtins/intl/number_format/options.rs (100%) rename {boa_engine => core/engine}/src/builtins/intl/number_format/utils.rs (100%) rename {boa_engine => core/engine}/src/builtins/intl/options.rs (100%) rename {boa_engine => core/engine}/src/builtins/intl/plural_rules/mod.rs (100%) rename {boa_engine => core/engine}/src/builtins/intl/plural_rules/options.rs (100%) rename {boa_engine => core/engine}/src/builtins/intl/segmenter/iterator.rs (100%) rename {boa_engine => core/engine}/src/builtins/intl/segmenter/mod.rs (100%) rename {boa_engine => core/engine}/src/builtins/intl/segmenter/options.rs (100%) rename {boa_engine => core/engine}/src/builtins/intl/segmenter/segments.rs (100%) rename {boa_engine => core/engine}/src/builtins/iterable/async_from_sync_iterator.rs (100%) rename {boa_engine => core/engine}/src/builtins/iterable/mod.rs (100%) rename {boa_engine => core/engine}/src/builtins/json/mod.rs (100%) rename {boa_engine => core/engine}/src/builtins/json/tests.rs (100%) rename {boa_engine => core/engine}/src/builtins/map/map_iterator.rs (100%) rename {boa_engine => core/engine}/src/builtins/map/mod.rs (100%) rename {boa_engine => core/engine}/src/builtins/map/ordered_map.rs (100%) rename {boa_engine => core/engine}/src/builtins/map/tests.rs (100%) rename {boa_engine => core/engine}/src/builtins/math/mod.rs (100%) rename {boa_engine => core/engine}/src/builtins/math/tests.rs (100%) rename {boa_engine => core/engine}/src/builtins/mod.rs (100%) rename {boa_engine => core/engine}/src/builtins/number/conversions.rs (100%) rename {boa_engine => core/engine}/src/builtins/number/globals.rs (100%) rename {boa_engine => core/engine}/src/builtins/number/mod.rs (100%) rename {boa_engine => core/engine}/src/builtins/number/tests.rs (100%) rename {boa_engine => core/engine}/src/builtins/object/for_in_iterator.rs (100%) rename {boa_engine => core/engine}/src/builtins/object/mod.rs (100%) rename {boa_engine => core/engine}/src/builtins/object/tests.rs (100%) rename {boa_engine => core/engine}/src/builtins/options.rs (100%) rename {boa_engine => core/engine}/src/builtins/promise/mod.rs (100%) rename {boa_engine => core/engine}/src/builtins/promise/tests.rs (100%) rename {boa_engine => core/engine}/src/builtins/proxy/mod.rs (100%) rename {boa_engine => core/engine}/src/builtins/reflect/mod.rs (100%) rename {boa_engine => core/engine}/src/builtins/reflect/tests.rs (100%) rename {boa_engine => core/engine}/src/builtins/regexp/mod.rs (100%) rename {boa_engine => core/engine}/src/builtins/regexp/regexp_string_iterator.rs (100%) rename {boa_engine => core/engine}/src/builtins/regexp/tests.rs (100%) rename {boa_engine => core/engine}/src/builtins/set/mod.rs (100%) rename {boa_engine => core/engine}/src/builtins/set/ordered_set.rs (100%) rename {boa_engine => core/engine}/src/builtins/set/set_iterator.rs (100%) rename {boa_engine => core/engine}/src/builtins/set/tests.rs (100%) rename {boa_engine => core/engine}/src/builtins/string/mod.rs (100%) rename {boa_engine => core/engine}/src/builtins/string/string_iterator.rs (100%) rename {boa_engine => core/engine}/src/builtins/string/tests.rs (100%) rename {boa_engine => core/engine}/src/builtins/symbol/mod.rs (100%) rename {boa_engine => core/engine}/src/builtins/symbol/tests.rs (100%) rename {boa_engine => core/engine}/src/builtins/temporal/calendar/mod.rs (100%) rename {boa_engine => core/engine}/src/builtins/temporal/calendar/object.rs (100%) rename {boa_engine => core/engine}/src/builtins/temporal/calendar/tests.rs (100%) rename {boa_engine => core/engine}/src/builtins/temporal/duration/mod.rs (100%) rename {boa_engine => core/engine}/src/builtins/temporal/duration/tests.rs (100%) rename {boa_engine => core/engine}/src/builtins/temporal/error.rs (100%) rename {boa_engine => core/engine}/src/builtins/temporal/fields.rs (100%) rename {boa_engine => core/engine}/src/builtins/temporal/instant/mod.rs (100%) rename {boa_engine => core/engine}/src/builtins/temporal/mod.rs (100%) rename {boa_engine => core/engine}/src/builtins/temporal/now.rs (100%) rename {boa_engine => core/engine}/src/builtins/temporal/options.rs (100%) rename {boa_engine => core/engine}/src/builtins/temporal/plain_date/mod.rs (100%) rename {boa_engine => core/engine}/src/builtins/temporal/plain_date_time/mod.rs (100%) rename {boa_engine => core/engine}/src/builtins/temporal/plain_month_day/mod.rs (100%) rename {boa_engine => core/engine}/src/builtins/temporal/plain_time/mod.rs (100%) rename {boa_engine => core/engine}/src/builtins/temporal/plain_year_month/mod.rs (100%) rename {boa_engine => core/engine}/src/builtins/temporal/tests.rs (100%) rename {boa_engine => core/engine}/src/builtins/temporal/time_zone/mod.rs (100%) rename {boa_engine => core/engine}/src/builtins/temporal/zoned_date_time/mod.rs (100%) rename {boa_engine => core/engine}/src/builtins/typed_array/builtin.rs (100%) rename {boa_engine => core/engine}/src/builtins/typed_array/element/atomic.rs (100%) rename {boa_engine => core/engine}/src/builtins/typed_array/element/mod.rs (100%) rename {boa_engine => core/engine}/src/builtins/typed_array/integer_indexed_object.rs (100%) rename {boa_engine => core/engine}/src/builtins/typed_array/mod.rs (100%) rename {boa_engine => core/engine}/src/builtins/uri/consts.rs (100%) rename {boa_engine => core/engine}/src/builtins/uri/mod.rs (100%) rename {boa_engine => core/engine}/src/builtins/weak/mod.rs (100%) rename {boa_engine => core/engine}/src/builtins/weak/weak_ref.rs (100%) rename {boa_engine => core/engine}/src/builtins/weak_map/mod.rs (100%) rename {boa_engine => core/engine}/src/builtins/weak_set/mod.rs (100%) rename {boa_engine => core/engine}/src/bytecompiler/class.rs (100%) rename {boa_engine => core/engine}/src/bytecompiler/declaration/declaration_pattern.rs (100%) rename {boa_engine => core/engine}/src/bytecompiler/declaration/mod.rs (100%) rename {boa_engine => core/engine}/src/bytecompiler/declarations.rs (100%) rename {boa_engine => core/engine}/src/bytecompiler/env.rs (100%) rename {boa_engine => core/engine}/src/bytecompiler/expression/assign.rs (100%) rename {boa_engine => core/engine}/src/bytecompiler/expression/binary.rs (100%) rename {boa_engine => core/engine}/src/bytecompiler/expression/mod.rs (100%) rename {boa_engine => core/engine}/src/bytecompiler/expression/object_literal.rs (100%) rename {boa_engine => core/engine}/src/bytecompiler/expression/unary.rs (100%) rename {boa_engine => core/engine}/src/bytecompiler/expression/update.rs (100%) rename {boa_engine => core/engine}/src/bytecompiler/function.rs (100%) rename {boa_engine => core/engine}/src/bytecompiler/jump_control.rs (100%) rename {boa_engine => core/engine}/src/bytecompiler/mod.rs (100%) rename {boa_engine => core/engine}/src/bytecompiler/module.rs (100%) rename {boa_engine => core/engine}/src/bytecompiler/statement/block.rs (100%) rename {boa_engine => core/engine}/src/bytecompiler/statement/break.rs (100%) rename {boa_engine => core/engine}/src/bytecompiler/statement/continue.rs (100%) rename {boa_engine => core/engine}/src/bytecompiler/statement/if.rs (100%) rename {boa_engine => core/engine}/src/bytecompiler/statement/labelled.rs (100%) rename {boa_engine => core/engine}/src/bytecompiler/statement/loop.rs (100%) rename {boa_engine => core/engine}/src/bytecompiler/statement/mod.rs (100%) rename {boa_engine => core/engine}/src/bytecompiler/statement/switch.rs (100%) rename {boa_engine => core/engine}/src/bytecompiler/statement/try.rs (100%) rename {boa_engine => core/engine}/src/bytecompiler/statement/with.rs (100%) rename {boa_engine => core/engine}/src/bytecompiler/utils.rs (100%) rename {boa_engine => core/engine}/src/class.rs (100%) rename {boa_engine => core/engine}/src/context/hooks.rs (100%) rename {boa_engine => core/engine}/src/context/icu.rs (100%) rename {boa_engine => core/engine}/src/context/intrinsics.rs (100%) rename {boa_engine => core/engine}/src/context/mod.rs (100%) rename {boa_engine => core/engine}/src/environments/compile.rs (100%) rename {boa_engine => core/engine}/src/environments/mod.rs (100%) rename {boa_engine => core/engine}/src/environments/runtime/declarative/function.rs (100%) rename {boa_engine => core/engine}/src/environments/runtime/declarative/global.rs (100%) rename {boa_engine => core/engine}/src/environments/runtime/declarative/lexical.rs (100%) rename {boa_engine => core/engine}/src/environments/runtime/declarative/mod.rs (100%) rename {boa_engine => core/engine}/src/environments/runtime/declarative/module.rs (100%) rename {boa_engine => core/engine}/src/environments/runtime/mod.rs (100%) rename {boa_engine => core/engine}/src/environments/runtime/private.rs (100%) rename {boa_engine => core/engine}/src/environments/tests.rs (100%) rename {boa_engine => core/engine}/src/error.rs (100%) rename {boa_engine => core/engine}/src/host_defined.rs (100%) rename {boa_engine => core/engine}/src/job.rs (100%) rename {boa_engine => core/engine}/src/lib.rs (100%) rename {boa_engine => core/engine}/src/module/loader.rs (100%) rename {boa_engine => core/engine}/src/module/mod.rs (100%) rename {boa_engine => core/engine}/src/module/namespace.rs (100%) rename {boa_engine => core/engine}/src/module/source.rs (100%) rename {boa_engine => core/engine}/src/module/synthetic.rs (100%) rename {boa_engine => core/engine}/src/native_function.rs (100%) rename {boa_engine => core/engine}/src/object/builtins/jsarray.rs (100%) rename {boa_engine => core/engine}/src/object/builtins/jsarraybuffer.rs (100%) rename {boa_engine => core/engine}/src/object/builtins/jsdataview.rs (100%) rename {boa_engine => core/engine}/src/object/builtins/jsdate.rs (100%) rename {boa_engine => core/engine}/src/object/builtins/jsfunction.rs (100%) rename {boa_engine => core/engine}/src/object/builtins/jsgenerator.rs (100%) rename {boa_engine => core/engine}/src/object/builtins/jsmap.rs (100%) rename {boa_engine => core/engine}/src/object/builtins/jsmap_iterator.rs (100%) rename {boa_engine => core/engine}/src/object/builtins/jspromise.rs (100%) rename {boa_engine => core/engine}/src/object/builtins/jsproxy.rs (100%) rename {boa_engine => core/engine}/src/object/builtins/jsregexp.rs (100%) rename {boa_engine => core/engine}/src/object/builtins/jsset.rs (100%) rename {boa_engine => core/engine}/src/object/builtins/jsset_iterator.rs (100%) rename {boa_engine => core/engine}/src/object/builtins/jssharedarraybuffer.rs (100%) rename {boa_engine => core/engine}/src/object/builtins/jstypedarray.rs (100%) rename {boa_engine => core/engine}/src/object/builtins/mod.rs (100%) rename {boa_engine => core/engine}/src/object/datatypes.rs (100%) rename {boa_engine => core/engine}/src/object/internal_methods/immutable_prototype.rs (100%) rename {boa_engine => core/engine}/src/object/internal_methods/mod.rs (100%) rename {boa_engine => core/engine}/src/object/internal_methods/string.rs (100%) rename {boa_engine => core/engine}/src/object/jsobject.rs (100%) rename {boa_engine => core/engine}/src/object/mod.rs (100%) rename {boa_engine => core/engine}/src/object/operations.rs (100%) rename {boa_engine => core/engine}/src/object/property_map.rs (100%) rename {boa_engine => core/engine}/src/object/shape/mod.rs (100%) rename {boa_engine => core/engine}/src/object/shape/property_table.rs (100%) rename {boa_engine => core/engine}/src/object/shape/root_shape.rs (100%) rename {boa_engine => core/engine}/src/object/shape/shared_shape/forward_transition.rs (100%) rename {boa_engine => core/engine}/src/object/shape/shared_shape/mod.rs (100%) rename {boa_engine => core/engine}/src/object/shape/shared_shape/template.rs (100%) rename {boa_engine => core/engine}/src/object/shape/shared_shape/tests.rs (100%) rename {boa_engine => core/engine}/src/object/shape/slot.rs (100%) rename {boa_engine => core/engine}/src/object/shape/unique_shape.rs (100%) rename {boa_engine => core/engine}/src/object/tests.rs (100%) rename {boa_engine => core/engine}/src/optimizer/mod.rs (100%) rename {boa_engine => core/engine}/src/optimizer/pass/constant_folding.rs (100%) rename {boa_engine => core/engine}/src/optimizer/pass/mod.rs (100%) rename {boa_engine => core/engine}/src/optimizer/walker.rs (100%) rename {boa_engine => core/engine}/src/property/attribute/mod.rs (100%) rename {boa_engine => core/engine}/src/property/attribute/tests.rs (100%) rename {boa_engine => core/engine}/src/property/mod.rs (100%) rename {boa_engine => core/engine}/src/property/nonmaxu32.rs (100%) rename {boa_engine => core/engine}/src/realm.rs (100%) rename {boa_engine => core/engine}/src/script.rs (100%) rename {boa_engine => core/engine}/src/small_map/entry.rs (100%) rename {boa_engine => core/engine}/src/small_map/mod.rs (100%) rename {boa_engine => core/engine}/src/string/common.rs (100%) rename {boa_engine => core/engine}/src/string/mod.rs (100%) rename {boa_engine => core/engine}/src/symbol.rs (100%) rename {boa_engine => core/engine}/src/sys/fallback/mod.rs (100%) rename {boa_engine => core/engine}/src/sys/js/mod.rs (100%) rename {boa_engine => core/engine}/src/sys/mod.rs (100%) rename {boa_engine => core/engine}/src/tagged.rs (100%) rename {boa_engine => core/engine}/src/tests/control_flow/loops.rs (100%) rename {boa_engine => core/engine}/src/tests/control_flow/mod.rs (100%) rename {boa_engine => core/engine}/src/tests/env.rs (100%) rename {boa_engine => core/engine}/src/tests/function.rs (100%) rename {boa_engine => core/engine}/src/tests/iterators.rs (100%) rename {boa_engine => core/engine}/src/tests/mod.rs (100%) rename {boa_engine => core/engine}/src/tests/operators.rs (100%) rename {boa_engine => core/engine}/src/tests/promise.rs (100%) rename {boa_engine => core/engine}/src/tests/spread.rs (100%) rename {boa_engine => core/engine}/src/value/conversions/mod.rs (100%) rename {boa_engine => core/engine}/src/value/conversions/serde_json.rs (100%) rename {boa_engine => core/engine}/src/value/conversions/try_from_js.rs (100%) rename {boa_engine => core/engine}/src/value/display.rs (100%) rename {boa_engine => core/engine}/src/value/equality.rs (100%) rename {boa_engine => core/engine}/src/value/hash.rs (100%) rename {boa_engine => core/engine}/src/value/integer.rs (100%) rename {boa_engine => core/engine}/src/value/mod.rs (100%) rename {boa_engine => core/engine}/src/value/operations.rs (100%) rename {boa_engine => core/engine}/src/value/tests.rs (100%) rename {boa_engine => core/engine}/src/value/type.rs (100%) rename {boa_engine => core/engine}/src/vm/call_frame/mod.rs (100%) rename {boa_engine => core/engine}/src/vm/code_block.rs (100%) rename {boa_engine => core/engine}/src/vm/completion_record.rs (100%) rename {boa_engine => core/engine}/src/vm/flowgraph/color.rs (100%) rename {boa_engine => core/engine}/src/vm/flowgraph/edge.rs (100%) rename {boa_engine => core/engine}/src/vm/flowgraph/graph.rs (100%) rename {boa_engine => core/engine}/src/vm/flowgraph/mod.rs (100%) rename {boa_engine => core/engine}/src/vm/flowgraph/node.rs (100%) rename {boa_engine => core/engine}/src/vm/mod.rs (100%) rename {boa_engine => core/engine}/src/vm/opcode/arguments.rs (100%) rename {boa_engine => core/engine}/src/vm/opcode/await/mod.rs (100%) rename {boa_engine => core/engine}/src/vm/opcode/binary_ops/logical.rs (100%) rename {boa_engine => core/engine}/src/vm/opcode/binary_ops/macro_defined.rs (100%) rename {boa_engine => core/engine}/src/vm/opcode/binary_ops/mod.rs (100%) rename {boa_engine => core/engine}/src/vm/opcode/call/mod.rs (100%) rename {boa_engine => core/engine}/src/vm/opcode/concat/mod.rs (100%) rename {boa_engine => core/engine}/src/vm/opcode/control_flow/jump.rs (100%) rename {boa_engine => core/engine}/src/vm/opcode/control_flow/mod.rs (100%) rename {boa_engine => core/engine}/src/vm/opcode/control_flow/return.rs (100%) rename {boa_engine => core/engine}/src/vm/opcode/control_flow/throw.rs (100%) rename {boa_engine => core/engine}/src/vm/opcode/copy/mod.rs (100%) rename {boa_engine => core/engine}/src/vm/opcode/define/class/getter.rs (100%) rename {boa_engine => core/engine}/src/vm/opcode/define/class/method.rs (100%) rename {boa_engine => core/engine}/src/vm/opcode/define/class/mod.rs (100%) rename {boa_engine => core/engine}/src/vm/opcode/define/class/setter.rs (100%) rename {boa_engine => core/engine}/src/vm/opcode/define/mod.rs (100%) rename {boa_engine => core/engine}/src/vm/opcode/define/own_property.rs (100%) rename {boa_engine => core/engine}/src/vm/opcode/delete/mod.rs (100%) rename {boa_engine => core/engine}/src/vm/opcode/dup/mod.rs (100%) rename {boa_engine => core/engine}/src/vm/opcode/environment/mod.rs (100%) rename {boa_engine => core/engine}/src/vm/opcode/generator/mod.rs (100%) rename {boa_engine => core/engine}/src/vm/opcode/generator/yield_stm.rs (100%) rename {boa_engine => core/engine}/src/vm/opcode/get/argument.rs (100%) rename {boa_engine => core/engine}/src/vm/opcode/get/function.rs (100%) rename {boa_engine => core/engine}/src/vm/opcode/get/mod.rs (100%) rename {boa_engine => core/engine}/src/vm/opcode/get/name.rs (100%) rename {boa_engine => core/engine}/src/vm/opcode/get/private.rs (100%) rename {boa_engine => core/engine}/src/vm/opcode/get/property.rs (100%) rename {boa_engine => core/engine}/src/vm/opcode/iteration/for_in.rs (100%) rename {boa_engine => core/engine}/src/vm/opcode/iteration/get.rs (100%) rename {boa_engine => core/engine}/src/vm/opcode/iteration/iterator.rs (100%) rename {boa_engine => core/engine}/src/vm/opcode/iteration/loop_ops.rs (100%) rename {boa_engine => core/engine}/src/vm/opcode/iteration/mod.rs (100%) rename {boa_engine => core/engine}/src/vm/opcode/meta/mod.rs (100%) rename {boa_engine => core/engine}/src/vm/opcode/mod.rs (100%) rename {boa_engine => core/engine}/src/vm/opcode/modifier.rs (100%) rename {boa_engine => core/engine}/src/vm/opcode/new/mod.rs (100%) rename {boa_engine => core/engine}/src/vm/opcode/nop/mod.rs (100%) rename {boa_engine => core/engine}/src/vm/opcode/pop/mod.rs (100%) rename {boa_engine => core/engine}/src/vm/opcode/push/array.rs (100%) rename {boa_engine => core/engine}/src/vm/opcode/push/class/field.rs (100%) rename {boa_engine => core/engine}/src/vm/opcode/push/class/mod.rs (100%) rename {boa_engine => core/engine}/src/vm/opcode/push/class/private.rs (100%) rename {boa_engine => core/engine}/src/vm/opcode/push/environment.rs (100%) rename {boa_engine => core/engine}/src/vm/opcode/push/literal.rs (100%) rename {boa_engine => core/engine}/src/vm/opcode/push/mod.rs (100%) rename {boa_engine => core/engine}/src/vm/opcode/push/numbers.rs (100%) rename {boa_engine => core/engine}/src/vm/opcode/push/object.rs (100%) rename {boa_engine => core/engine}/src/vm/opcode/require/mod.rs (100%) rename {boa_engine => core/engine}/src/vm/opcode/rest_parameter/mod.rs (100%) rename {boa_engine => core/engine}/src/vm/opcode/set/class_prototype.rs (100%) rename {boa_engine => core/engine}/src/vm/opcode/set/home_object.rs (100%) rename {boa_engine => core/engine}/src/vm/opcode/set/mod.rs (100%) rename {boa_engine => core/engine}/src/vm/opcode/set/name.rs (100%) rename {boa_engine => core/engine}/src/vm/opcode/set/private.rs (100%) rename {boa_engine => core/engine}/src/vm/opcode/set/property.rs (100%) rename {boa_engine => core/engine}/src/vm/opcode/set/prototype.rs (100%) rename {boa_engine => core/engine}/src/vm/opcode/swap/mod.rs (100%) rename {boa_engine => core/engine}/src/vm/opcode/switch/mod.rs (100%) rename {boa_engine => core/engine}/src/vm/opcode/templates/mod.rs (100%) rename {boa_engine => core/engine}/src/vm/opcode/to/mod.rs (100%) rename {boa_engine => core/engine}/src/vm/opcode/unary_ops/decrement.rs (100%) rename {boa_engine => core/engine}/src/vm/opcode/unary_ops/increment.rs (100%) rename {boa_engine => core/engine}/src/vm/opcode/unary_ops/logical.rs (100%) rename {boa_engine => core/engine}/src/vm/opcode/unary_ops/mod.rs (100%) rename {boa_engine => core/engine}/src/vm/opcode/unary_ops/void.rs (100%) rename {boa_engine => core/engine}/src/vm/opcode/value/mod.rs (100%) rename {boa_engine => core/engine}/src/vm/runtime_limits.rs (100%) rename {boa_engine => core/engine}/src/vm/tests.rs (100%) rename {boa_gc => core/gc}/ABOUT.md (100%) rename {boa_gc => core/gc}/Cargo.toml (100%) rename {boa_gc => core/gc}/src/cell.rs (100%) rename {boa_gc => core/gc}/src/internals/ephemeron_box.rs (100%) rename {boa_gc => core/gc}/src/internals/gc_box.rs (100%) rename {boa_gc => core/gc}/src/internals/mod.rs (100%) rename {boa_gc => core/gc}/src/internals/weak_map_box.rs (100%) rename {boa_gc => core/gc}/src/lib.rs (100%) rename {boa_gc => core/gc}/src/pointers/ephemeron.rs (100%) rename {boa_gc => core/gc}/src/pointers/gc.rs (100%) rename {boa_gc => core/gc}/src/pointers/mod.rs (100%) rename {boa_gc => core/gc}/src/pointers/weak.rs (100%) rename {boa_gc => core/gc}/src/pointers/weak_map.rs (100%) rename {boa_gc => core/gc}/src/test/allocation.rs (100%) rename {boa_gc => core/gc}/src/test/cell.rs (100%) rename {boa_gc => core/gc}/src/test/mod.rs (100%) rename {boa_gc => core/gc}/src/test/weak.rs (100%) rename {boa_gc => core/gc}/src/test/weak_map.rs (100%) rename {boa_gc => core/gc}/src/trace.rs (100%) rename {boa_icu_provider => core/icu_provider}/ABOUT.md (100%) rename {boa_icu_provider => core/icu_provider}/Cargo.toml (100%) rename {boa_icu_provider => core/icu_provider}/README.md (100%) rename {boa_icu_provider => core/icu_provider}/data/icudata.postcard (100%) rename {boa_icu_provider => core/icu_provider}/src/bin/datagen.rs (100%) rename {boa_icu_provider => core/icu_provider}/src/lib.rs (100%) rename {boa_interner => core/interner}/ABOUT.md (100%) rename {boa_interner => core/interner}/Cargo.toml (100%) rename {boa_interner => core/interner}/src/fixed_string.rs (100%) rename {boa_interner => core/interner}/src/interned_str.rs (100%) rename {boa_interner => core/interner}/src/lib.rs (100%) rename {boa_interner => core/interner}/src/raw.rs (100%) rename {boa_interner => core/interner}/src/sym.rs (100%) rename {boa_interner => core/interner}/src/tests.rs (100%) rename {boa_macros => core/macros}/ABOUT.md (100%) rename {boa_macros => core/macros}/Cargo.toml (100%) rename {boa_macros => core/macros}/src/lib.rs (100%) rename {boa_macros => core/macros}/tests/tests.rs (100%) rename {boa_parser => core/parser}/ABOUT.md (100%) rename {boa_parser => core/parser}/Cargo.toml (100%) rename {boa_parser => core/parser}/src/error/mod.rs (100%) rename {boa_parser => core/parser}/src/error/tests.rs (100%) rename {boa_parser => core/parser}/src/lexer/comment.rs (100%) rename {boa_parser => core/parser}/src/lexer/cursor.rs (100%) rename {boa_parser => core/parser}/src/lexer/error.rs (100%) rename {boa_parser => core/parser}/src/lexer/identifier.rs (100%) rename {boa_parser => core/parser}/src/lexer/mod.rs (100%) rename {boa_parser => core/parser}/src/lexer/number.rs (100%) rename {boa_parser => core/parser}/src/lexer/operator.rs (100%) rename {boa_parser => core/parser}/src/lexer/private_identifier.rs (100%) rename {boa_parser => core/parser}/src/lexer/regex.rs (100%) rename {boa_parser => core/parser}/src/lexer/spread.rs (100%) rename {boa_parser => core/parser}/src/lexer/string.rs (100%) rename {boa_parser => core/parser}/src/lexer/template.rs (100%) rename {boa_parser => core/parser}/src/lexer/tests.rs (100%) rename {boa_parser => core/parser}/src/lexer/token.rs (100%) rename {boa_parser => core/parser}/src/lib.rs (100%) rename {boa_parser => core/parser}/src/parser/cursor/buffered_lexer/mod.rs (100%) rename {boa_parser => core/parser}/src/parser/cursor/buffered_lexer/tests.rs (100%) rename {boa_parser => core/parser}/src/parser/cursor/mod.rs (100%) rename {boa_parser => core/parser}/src/parser/expression/assignment/arrow_function.rs (100%) rename {boa_parser => core/parser}/src/parser/expression/assignment/async_arrow_function.rs (100%) rename {boa_parser => core/parser}/src/parser/expression/assignment/conditional.rs (100%) rename {boa_parser => core/parser}/src/parser/expression/assignment/exponentiation.rs (100%) rename {boa_parser => core/parser}/src/parser/expression/assignment/mod.rs (100%) rename {boa_parser => core/parser}/src/parser/expression/assignment/yield.rs (100%) rename {boa_parser => core/parser}/src/parser/expression/await_expr.rs (100%) rename {boa_parser => core/parser}/src/parser/expression/identifiers.rs (100%) rename {boa_parser => core/parser}/src/parser/expression/left_hand_side/arguments.rs (100%) rename {boa_parser => core/parser}/src/parser/expression/left_hand_side/call.rs (100%) rename {boa_parser => core/parser}/src/parser/expression/left_hand_side/member.rs (100%) rename {boa_parser => core/parser}/src/parser/expression/left_hand_side/mod.rs (100%) rename {boa_parser => core/parser}/src/parser/expression/left_hand_side/optional/mod.rs (100%) rename {boa_parser => core/parser}/src/parser/expression/left_hand_side/optional/tests.rs (100%) rename {boa_parser => core/parser}/src/parser/expression/left_hand_side/template.rs (100%) rename {boa_parser => core/parser}/src/parser/expression/left_hand_side/tests.rs (100%) rename {boa_parser => core/parser}/src/parser/expression/mod.rs (100%) rename {boa_parser => core/parser}/src/parser/expression/primary/array_initializer/mod.rs (100%) rename {boa_parser => core/parser}/src/parser/expression/primary/array_initializer/tests.rs (100%) rename {boa_parser => core/parser}/src/parser/expression/primary/async_function_expression/mod.rs (100%) rename {boa_parser => core/parser}/src/parser/expression/primary/async_function_expression/tests.rs (100%) rename {boa_parser => core/parser}/src/parser/expression/primary/async_generator_expression/mod.rs (100%) rename {boa_parser => core/parser}/src/parser/expression/primary/async_generator_expression/tests.rs (100%) rename {boa_parser => core/parser}/src/parser/expression/primary/class_expression/mod.rs (100%) rename {boa_parser => core/parser}/src/parser/expression/primary/function_expression/mod.rs (100%) rename {boa_parser => core/parser}/src/parser/expression/primary/function_expression/tests.rs (100%) rename {boa_parser => core/parser}/src/parser/expression/primary/generator_expression/mod.rs (100%) rename {boa_parser => core/parser}/src/parser/expression/primary/generator_expression/tests.rs (100%) rename {boa_parser => core/parser}/src/parser/expression/primary/mod.rs (100%) rename {boa_parser => core/parser}/src/parser/expression/primary/object_initializer/mod.rs (100%) rename {boa_parser => core/parser}/src/parser/expression/primary/object_initializer/tests.rs (100%) rename {boa_parser => core/parser}/src/parser/expression/primary/template/mod.rs (100%) rename {boa_parser => core/parser}/src/parser/expression/primary/tests.rs (100%) rename {boa_parser => core/parser}/src/parser/expression/tests.rs (100%) rename {boa_parser => core/parser}/src/parser/expression/unary.rs (100%) rename {boa_parser => core/parser}/src/parser/expression/update.rs (100%) rename {boa_parser => core/parser}/src/parser/function/mod.rs (100%) rename {boa_parser => core/parser}/src/parser/function/tests.rs (100%) rename {boa_parser => core/parser}/src/parser/mod.rs (100%) rename {boa_parser => core/parser}/src/parser/statement/block/mod.rs (100%) rename {boa_parser => core/parser}/src/parser/statement/block/tests.rs (100%) rename {boa_parser => core/parser}/src/parser/statement/break_stm/mod.rs (100%) rename {boa_parser => core/parser}/src/parser/statement/break_stm/tests.rs (100%) rename {boa_parser => core/parser}/src/parser/statement/continue_stm/mod.rs (100%) rename {boa_parser => core/parser}/src/parser/statement/continue_stm/tests.rs (100%) rename {boa_parser => core/parser}/src/parser/statement/declaration/export.rs (100%) rename {boa_parser => core/parser}/src/parser/statement/declaration/hoistable/async_function_decl/mod.rs (100%) rename {boa_parser => core/parser}/src/parser/statement/declaration/hoistable/async_function_decl/tests.rs (100%) rename {boa_parser => core/parser}/src/parser/statement/declaration/hoistable/async_generator_decl/mod.rs (100%) rename {boa_parser => core/parser}/src/parser/statement/declaration/hoistable/async_generator_decl/tests.rs (100%) rename {boa_parser => core/parser}/src/parser/statement/declaration/hoistable/class_decl/mod.rs (100%) rename {boa_parser => core/parser}/src/parser/statement/declaration/hoistable/class_decl/tests.rs (100%) rename {boa_parser => core/parser}/src/parser/statement/declaration/hoistable/function_decl/mod.rs (100%) rename {boa_parser => core/parser}/src/parser/statement/declaration/hoistable/function_decl/tests.rs (100%) rename {boa_parser => core/parser}/src/parser/statement/declaration/hoistable/generator_decl/mod.rs (100%) rename {boa_parser => core/parser}/src/parser/statement/declaration/hoistable/generator_decl/tests.rs (100%) rename {boa_parser => core/parser}/src/parser/statement/declaration/hoistable/mod.rs (100%) rename {boa_parser => core/parser}/src/parser/statement/declaration/hoistable/tests.rs (100%) rename {boa_parser => core/parser}/src/parser/statement/declaration/import.rs (100%) rename {boa_parser => core/parser}/src/parser/statement/declaration/lexical.rs (100%) rename {boa_parser => core/parser}/src/parser/statement/declaration/mod.rs (100%) rename {boa_parser => core/parser}/src/parser/statement/declaration/tests.rs (100%) rename {boa_parser => core/parser}/src/parser/statement/expression/mod.rs (100%) rename {boa_parser => core/parser}/src/parser/statement/if_stm/mod.rs (100%) rename {boa_parser => core/parser}/src/parser/statement/if_stm/tests.rs (100%) rename {boa_parser => core/parser}/src/parser/statement/iteration/do_while_statement.rs (100%) rename {boa_parser => core/parser}/src/parser/statement/iteration/for_statement.rs (100%) rename {boa_parser => core/parser}/src/parser/statement/iteration/mod.rs (100%) rename {boa_parser => core/parser}/src/parser/statement/iteration/tests.rs (100%) rename {boa_parser => core/parser}/src/parser/statement/iteration/while_statement.rs (100%) rename {boa_parser => core/parser}/src/parser/statement/labelled_stm/mod.rs (100%) rename {boa_parser => core/parser}/src/parser/statement/mod.rs (100%) rename {boa_parser => core/parser}/src/parser/statement/return_stm/mod.rs (100%) rename {boa_parser => core/parser}/src/parser/statement/switch/mod.rs (100%) rename {boa_parser => core/parser}/src/parser/statement/switch/tests.rs (100%) rename {boa_parser => core/parser}/src/parser/statement/throw/mod.rs (100%) rename {boa_parser => core/parser}/src/parser/statement/throw/tests.rs (100%) rename {boa_parser => core/parser}/src/parser/statement/try_stm/catch.rs (100%) rename {boa_parser => core/parser}/src/parser/statement/try_stm/finally.rs (100%) rename {boa_parser => core/parser}/src/parser/statement/try_stm/mod.rs (100%) rename {boa_parser => core/parser}/src/parser/statement/try_stm/tests.rs (100%) rename {boa_parser => core/parser}/src/parser/statement/variable/mod.rs (100%) rename {boa_parser => core/parser}/src/parser/statement/with/mod.rs (100%) rename {boa_parser => core/parser}/src/parser/tests/format/declaration.rs (100%) rename {boa_parser => core/parser}/src/parser/tests/format/expression.rs (100%) rename {boa_parser => core/parser}/src/parser/tests/format/function/class.rs (100%) rename {boa_parser => core/parser}/src/parser/tests/format/function/mod.rs (100%) rename {boa_parser => core/parser}/src/parser/tests/format/mod.rs (100%) rename {boa_parser => core/parser}/src/parser/tests/format/statement.rs (100%) rename {boa_parser => core/parser}/src/parser/tests/mod.rs (100%) rename {boa_parser => core/parser}/src/parser/tests/test.js (100%) rename {boa_parser => core/parser}/src/source.rs (100%) rename {boa_profiler => core/profiler}/ABOUT.md (100%) rename {boa_profiler => core/profiler}/Cargo.toml (100%) rename {boa_profiler => core/profiler}/src/lib.rs (100%) rename {boa_runtime => core/runtime}/ABOUT.md (100%) rename {boa_runtime => core/runtime}/Cargo.toml (100%) rename {boa_runtime => core/runtime}/src/console/mod.rs (100%) rename {boa_runtime => core/runtime}/src/console/tests.rs (100%) rename {boa_runtime => core/runtime}/src/lib.rs (100%) rename {boa_tester => core/temporal}/ABOUT.md (100%) rename {boa_temporal => core/temporal}/Cargo.toml (100%) rename {boa_temporal => core/temporal}/README.md (100%) rename {boa_temporal => core/temporal}/src/components/calendar.rs (100%) rename {boa_temporal => core/temporal}/src/components/calendar/iso.rs (100%) rename {boa_temporal => core/temporal}/src/components/date.rs (100%) rename {boa_temporal => core/temporal}/src/components/datetime.rs (100%) rename {boa_temporal => core/temporal}/src/components/duration.rs (100%) rename {boa_temporal => core/temporal}/src/components/instant.rs (100%) rename {boa_temporal => core/temporal}/src/components/mod.rs (100%) rename {boa_temporal => core/temporal}/src/components/month_day.rs (100%) rename {boa_temporal => core/temporal}/src/components/time.rs (100%) rename {boa_temporal => core/temporal}/src/components/tz.rs (100%) rename {boa_temporal => core/temporal}/src/components/year_month.rs (100%) rename {boa_temporal => core/temporal}/src/components/zoneddatetime.rs (100%) rename {boa_temporal => core/temporal}/src/error.rs (100%) rename {boa_temporal => core/temporal}/src/fields.rs (100%) rename {boa_temporal => core/temporal}/src/iso.rs (100%) rename {boa_temporal => core/temporal}/src/lib.rs (98%) rename {boa_temporal => core/temporal}/src/options.rs (100%) rename {boa_temporal => core/temporal}/src/parser/annotations.rs (100%) rename {boa_temporal => core/temporal}/src/parser/date_time.rs (100%) rename {boa_temporal => core/temporal}/src/parser/duration.rs (100%) rename {boa_temporal => core/temporal}/src/parser/grammar.rs (100%) rename {boa_temporal => core/temporal}/src/parser/mod.rs (100%) rename {boa_temporal => core/temporal}/src/parser/nodes.rs (100%) rename {boa_temporal => core/temporal}/src/parser/tests.rs (100%) rename {boa_temporal => core/temporal}/src/parser/time.rs (100%) rename {boa_temporal => core/temporal}/src/parser/time_zone.rs (100%) rename {boa_temporal => core/temporal}/src/utils.rs (100%) rename {boa_examples => examples}/Cargo.toml (100%) rename {boa_examples => examples}/README.md (100%) rename {boa_examples => examples}/scripts/calc.js (100%) rename {boa_examples => examples}/scripts/calctest.js (100%) rename {boa_examples => examples}/scripts/enhancedglobal.js (100%) rename {boa_examples => examples}/scripts/helloworld.js (100%) rename {boa_examples => examples}/scripts/modules/operations.mjs (100%) rename {boa_examples => examples}/scripts/modules/trig.mjs (100%) rename {boa_examples => examples}/src/bin/classes.rs (100%) rename {boa_examples => examples}/src/bin/closures.rs (100%) rename {boa_examples => examples}/src/bin/commuter_visitor.rs (100%) rename {boa_examples => examples}/src/bin/derive.rs (100%) rename {boa_examples => examples}/src/bin/futures.rs (100%) rename {boa_examples => examples}/src/bin/host_defined.rs (100%) rename {boa_examples => examples}/src/bin/jsarray.rs (100%) rename {boa_examples => examples}/src/bin/jsarraybuffer.rs (100%) rename {boa_examples => examples}/src/bin/jsdate.rs (100%) rename {boa_examples => examples}/src/bin/jsmap.rs (100%) rename {boa_examples => examples}/src/bin/jsregexp.rs (100%) rename {boa_examples => examples}/src/bin/jsset.rs (100%) rename {boa_examples => examples}/src/bin/jstypedarray.rs (100%) rename {boa_examples => examples}/src/bin/loadfile.rs (100%) rename {boa_examples => examples}/src/bin/loadstring.rs (100%) rename {boa_examples => examples}/src/bin/modulehandler.rs (100%) rename {boa_examples => examples}/src/bin/modules.rs (100%) rename {boa_examples => examples}/src/bin/runtime_limits.rs (100%) rename {boa_examples => examples}/src/bin/symbol_visitor.rs (100%) rename {boa_examples => examples}/src/bin/synthetic.rs (100%) rename {boa_wasm => ffi/wasm}/.gitignore (100%) rename {boa_wasm => ffi/wasm}/ABOUT.md (100%) rename {boa_wasm => ffi/wasm}/Cargo.toml (100%) rename {boa_wasm => ffi/wasm}/e2e_test/boa_demo.spec.ts (100%) rename {boa_wasm => ffi/wasm}/e2e_test/playwright.config.ts (100%) rename {boa_wasm => ffi/wasm}/e2e_test/server.mjs (80%) rename {boa_wasm => ffi/wasm}/src/lib.rs (100%) create mode 100644 tests/Cargo.toml rename {fuzz => tests/fuzz}/.gitignore (100%) rename {fuzz => tests/fuzz}/Cargo.lock (87%) rename {fuzz => tests/fuzz}/Cargo.toml (63%) rename {fuzz => tests/fuzz}/README.md (88%) rename {fuzz => tests/fuzz}/fuzz_targets/bytecompiler-implied.rs (100%) rename {fuzz => tests/fuzz}/fuzz_targets/common.rs (100%) rename {fuzz => tests/fuzz}/fuzz_targets/parser-idempotency.rs (100%) rename {fuzz => tests/fuzz}/fuzz_targets/vm-implied.rs (100%) rename {boa_macros_tests => tests/macros}/Cargo.toml (100%) rename {boa_macros_tests => tests/macros}/tests/derive/from_js_with.rs (100%) rename {boa_macros_tests => tests/macros}/tests/derive/simple_struct.rs (100%) rename {boa_macros_tests => tests/macros}/tests/tests.rs (100%) create mode 100644 tests/src/lib.rs create mode 100644 tests/tester/ABOUT.md rename {boa_tester => tests/tester}/Cargo.toml (100%) rename {boa_tester => tests/tester}/src/edition.rs (98%) rename {boa_tester => tests/tester}/src/exec/js262.rs (100%) rename {boa_tester => tests/tester}/src/exec/mod.rs (100%) rename {boa_tester => tests/tester}/src/main.rs (100%) rename {boa_tester => tests/tester}/src/read.rs (84%) rename {boa_tester => tests/tester}/src/results.rs (100%) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 01ec9b9080..125eeee974 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -12,39 +12,67 @@ updates: directory: / schedule: interval: daily + # CLI - package-ecosystem: cargo - directory: /boa_cli/ + directory: /cli/ schedule: interval: daily + # CORE - package-ecosystem: cargo - directory: /boa_engine/ + directory: /core/ast/ schedule: interval: daily - package-ecosystem: cargo - directory: /boa_gc/ + directory: /core/engine/ schedule: interval: daily - package-ecosystem: cargo - directory: /boa_interner/ + directory: /core/gc/ schedule: interval: daily - package-ecosystem: cargo - directory: /boa_profiler/ + directory: /core/icu_provider/ schedule: interval: daily - package-ecosystem: cargo - directory: /boa_tester/ + directory: /core/interner/ schedule: interval: daily - package-ecosystem: cargo - directory: /boa_wasm/ + directory: /core/macros/ schedule: interval: daily - package-ecosystem: cargo - directory: /fuzz/ + directory: /core/parser/ schedule: interval: daily - - package-ecosystem: gitsubmodule - directory: / + - package-ecosystem: cargo + directory: /core/profiler/ + schedule: + interval: daily + - package-ecosystem: cargo + directory: /core/runtime/ + schedule: + interval: daily + - package-ecosystem: cargo + directory: /core/temporal/ + schedule: + interval: daily + # TESTS + - package-ecosystem: cargo + directory: /tests/tester/ schedule: - interval: weekly + interval: daily + - package-ecosystem: cargo + directory: /tests/macros/ + schedule: + interval: daily + - package-ecosystem: cargo + directory: /tests/fuzz/ + schedule: + interval: daily + # FFI + - package-ecosystem: cargo + directory: /ffi/wasm/ + schedule: + interval: daily diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 78e3735789..2c04defaa9 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -32,4 +32,4 @@ jobs: with: token: ${{ secrets.GITHUB_TOKEN }} branchName: ${{ github.base_ref }} - cwd: ./boa_engine + cwd: ./core/engine diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 71bb1175a1..cb9ce7c946 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -67,11 +67,11 @@ jobs: path: | node_modules target - boa_wasm/pkg + ffi/wasm/pkg ~/.cargo/git ~/.cargo/registry key: ${{ runner.os }}-npm-build-target-${{ hashFiles('**/package-lock.json') }} - - run: wasm-pack build ./boa_wasm + - run: wasm-pack build ./ffi/wasm - run: npm run build:prod - name: Deploy uses: peaceiris/actions-gh-pages@v3 diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 9c51af9ba9..66765ee48d 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -25,13 +25,13 @@ jobs: toolchain: stable override: true profile: minimal + - uses: Swatinem/rust-cache@v2 + with: + key: tarpaulin - name: Install cargo-tarpaulin uses: baptiste0928/cargo-install@v2.2.0 with: crate: cargo-tarpaulin - - uses: Swatinem/rust-cache@v2 - with: - key: tarpaulin - name: Run tarpaulin uses: actions-rs/cargo@v1 with: @@ -114,13 +114,13 @@ jobs: override: true profile: minimal components: clippy + - uses: Swatinem/rust-cache@v2 + with: + key: clippy - name: Install cargo-workspaces uses: actions-rs/install@v0.1 with: crate: cargo-workspaces - - uses: Swatinem/rust-cache@v2 - with: - key: clippy - name: Clippy (All features) run: cargo workspaces exec cargo clippy --all-features --all-targets - name: Clippy (No features) @@ -162,16 +162,16 @@ jobs: toolchain: stable override: true profile: minimal + - uses: Swatinem/rust-cache@v2 + with: + key: build-fuzz - name: Install cargo-fuzz uses: actions-rs/install@v0.1 with: crate: cargo-fuzz version: latest - - uses: Swatinem/rust-cache@v2 - with: - key: build-fuzz - name: Build fuzz - run: cargo fuzz build -s none + run: cd tests/fuzz && cargo fuzz build -s none --dev build-run-examples: name: Build & run examples @@ -184,13 +184,13 @@ jobs: toolchain: stable override: true profile: minimal + - uses: Swatinem/rust-cache@v2 + with: + key: build-run-examples - name: Install cargo-workspaces uses: actions-rs/install@v0.1 with: crate: cargo-workspaces - - uses: Swatinem/rust-cache@v2 - with: - key: build-run-examples - name: Build (All features) run: cargo workspaces exec cargo build --all-features --all-targets --profile ci @@ -199,7 +199,7 @@ jobs: - name: Run examples run: | - cd boa_examples + cd examples cargo run -p boa_examples --bin 2>&1 \ | grep -E '^ ' \ | xargs -n1 sh -c 'cargo run -p boa_examples --profile ci --bin $0 || exit 255' diff --git a/.github/workflows/webassembly.yml b/.github/workflows/webassembly.yml index c1f71460e2..a38159a1e0 100644 --- a/.github/workflows/webassembly.yml +++ b/.github/workflows/webassembly.yml @@ -35,24 +35,25 @@ jobs: toolchain: stable override: true profile: minimal - - name: Install wasm-pack - run: curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh + - uses: Swatinem/rust-cache@v2 - name: Cache npm build uses: actions/cache@v3 with: path: | node_modules - target - ~/.cargo/git - ~/.cargo/registry - boa_wasm/pkg key: ${{ runner.os }}-npm-build-target-${{ hashFiles('**/package-lock.json') }} + - name: Install wasm-pack + uses: baptiste0928/cargo-install@v2.2.0 + with: + crate: wasm-pack - uses: actions/setup-node@v4 with: node-version: "16" - run: npm ci - - run: cd boa_wasm && wasm-pack --verbose build --out-name index --out-dir ./pkg - - run: npm run build + - name: Build Playground + run: | + wasm-pack build ./ffi/wasm --verbose + npm run build - name: Install Playwright Browsers run: npx playwright install --with-deps - name: Run Playwright test diff --git a/.gitignore b/.gitignore index 132f32c4e8..b55acd881a 100644 --- a/.gitignore +++ b/.gitignore @@ -15,8 +15,8 @@ node_modules yarn-error.log .vscode/settings.json -# tests/js is used for testing changes locally -tests/js +# debug is used for testing changes locally +/debug .boa_history # test262 testing suite diff --git a/.prettierignore b/.prettierignore index 6f86fe09e2..7366f173fb 100644 --- a/.prettierignore +++ b/.prettierignore @@ -3,11 +3,10 @@ *.yml target node_modules -boa_engine/benches/bench_scripts/mini_js.js -boa_engine/benches/bench_scripts/clean_js.js -boa_wasm/pkg +core/engine/benches/bench_scripts/mini_js.js +core/engine/benches/bench_scripts/clean_js.js +ffi/wasm/pkg dist test262 -tests/js/test.js playwright-report test-results diff --git a/.vscode/launch.json b/.vscode/launch.json index 55b75dc5ab..ee01298161 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -7,32 +7,46 @@ { "type": "lldb", "request": "launch", - "name": "Launch (Script)", + "name": "Debug Boa (Script mode)", "windows": { "program": "${workspaceFolder}/target/debug/boa.exe" }, "program": "${workspaceFolder}/target/debug/boa", - "args": ["${workspaceFolder}/tests/js/test.js", "--debug-object"], + "args": ["${workspaceFolder}/${input:filePath}", "--debug-object"], "sourceLanguages": ["rust"], "preLaunchTask": "Cargo Build boa_cli" }, { "type": "lldb", "request": "launch", - "name": "Launch (Module)", + "name": "Debug Boa (Module mode)", "windows": { "program": "${workspaceFolder}/target/debug/boa.exe" }, "program": "${workspaceFolder}/target/debug/boa", "args": [ - "${workspaceFolder}/tests/js/test.js", + "${workspaceFolder}/${input:filePath}", "--debug-object", "-m", "-r", - "tests/js" + "${workspaceFolder}/${input:modulePath}" ], "sourceLanguages": ["rust"], "preLaunchTask": "Cargo Build boa_cli" } + ], + "inputs": [ + { + "id": "filePath", + "description": "Relative path to the file to run", + "default": "debug/script.js", + "type": "promptString" + }, + { + "id": "modulePath", + "description": "Relative path to the module root directory", + "default": "debug", + "type": "promptString" + } ] } diff --git a/.vscode/tasks.json b/.vscode/tasks.json index 1c0b67ad97..5940f85e3d 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -25,9 +25,9 @@ }, { "type": "process", - "label": "Cargo Run", + "label": "Run JS file", "command": "cargo", - "args": ["run", "--bin", "boa", "./tests/js/test.js"], + "args": ["run", "--bin", "boa", "${file}"], "group": { "kind": "build", "isDefault": true @@ -44,20 +44,15 @@ }, { "type": "process", - "label": "Cargo Run (Profiler)", + "label": "Run JS file (Profiler)", "command": "cargo", - "args": [ - "run", - "--features", - "boa_engine/profiler", - "../tests/js/test.js" - ], + "args": ["run", "--features", "profiler", "${file}"], "group": "build", "options": { "env": { "RUST_BACKTRACE": "full" }, - "cwd": "${workspaceFolder}/boa_cli" + "cwd": "${workspaceFolder}/cli" }, "presentation": { "clear": true @@ -66,9 +61,9 @@ }, { "type": "process", - "label": "Run with VM trace", + "label": "Run JS file with VM trace", "command": "cargo", - "args": ["run", "--bin", "boa", "--", "-t", "./tests/js/test.js"], + "args": ["run", "--bin", "boa", "--", "-t", "${file}"], "group": "build", "presentation": { "clear": true @@ -77,9 +72,9 @@ }, { "type": "process", - "label": "Get AST", + "label": "Get AST for JS file", "command": "cargo", - "args": ["run", "--bin", "boa", "--", "-a=Debug", "./tests/js/test.js"], + "args": ["run", "--bin", "boa", "--", "-a=Debug", "${file}"], "group": "build", "presentation": { "clear": true diff --git a/Cargo.lock b/Cargo.lock index e2135fa6fc..6b533b7552 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -8,7 +8,7 @@ version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" dependencies = [ - "gimli 0.28.0", + "gimli 0.28.1", ] [[package]] @@ -92,30 +92,30 @@ checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87" [[package]] name = "anstyle-parse" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "317b9a89c1868f5ea6ff1d9539a69f45dffc21ce321ac1fd1160dfa48c8e2140" +checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b" +checksum = "a3a318f1f38d2418400f8209655bfd825785afd25aa30bb7ba6cc792e4596748" dependencies = [ - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] name = "anstyle-wincon" -version = "3.0.1" +version = "3.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0699d10d2f4d628a98ee7b57b289abbc98ff3bad977cb3152709d4bf2330628" +checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7" dependencies = [ "anstyle", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -146,12 +146,12 @@ dependencies = [ [[package]] name = "async-channel" -version = "2.1.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d37875bd9915b7d67c2f117ea2c30a0989874d0b2cb694fe25403c85763c0c9e" +checksum = "1ca33f4bc4ed1babef42cad36cc1f51fa88be00420404e5b1e80ab1b18f7678c" dependencies = [ "concurrent-queue", - "event-listener 3.1.0", + "event-listener 4.0.0", "event-listener-strategy", "futures-core", "pin-project-lite", @@ -159,15 +159,15 @@ dependencies = [ [[package]] name = "async-executor" -version = "1.6.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b0c4a4f319e45986f347ee47fef8bf5e81c9abc3f6f58dc2391439f30df65f0" +checksum = "17ae5ebefcc48e7452b4987947920dac9450be1110cadf34d1b8c116bdbaf97c" dependencies = [ - "async-lock 2.8.0", + "async-lock 3.2.0", "async-task", "concurrent-queue", "fastrand 2.0.1", - "futures-lite 1.13.0", + "futures-lite 2.1.0", "slab", ] @@ -205,22 +205,21 @@ dependencies = [ [[package]] name = "async-io" -version = "2.2.0" +version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41ed9d5715c2d329bf1b4da8d60455b99b187f27ba726df2883799af9af60997" +checksum = "d6d3b15875ba253d1110c740755e246537483f152fa334f91abd7fe84c88b3ff" dependencies = [ - "async-lock 3.1.0", + "async-lock 3.2.0", "cfg-if", "concurrent-queue", "futures-io", "futures-lite 2.1.0", "parking", - "polling 3.3.0", - "rustix 0.38.24", + "polling 3.3.1", + "rustix 0.38.26", "slab", "tracing", - "waker-fn", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -234,11 +233,11 @@ dependencies = [ [[package]] name = "async-lock" -version = "3.1.0" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "deb2ab2aa8a746e221ab826c73f48bc6ba41be6763f0855cb249eb6d154cf1d7" +checksum = "7125e42787d53db9dd54261812ef17e937c95a51e4d291373b670342fa44310c" dependencies = [ - "event-listener 3.1.0", + "event-listener 4.0.0", "event-listener-strategy", "pin-project-lite", ] @@ -267,7 +266,7 @@ dependencies = [ "cfg-if", "event-listener 3.1.0", "futures-lite 1.13.0", - "rustix 0.38.24", + "rustix 0.38.26", "windows-sys 0.48.0", ] @@ -277,13 +276,13 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e47d90f65a225c4527103a8d747001fc56e375203592b25ad103e1ca13124c5" dependencies = [ - "async-io 2.2.0", + "async-io 2.2.1", "async-lock 2.8.0", "atomic-waker", "cfg-if", "futures-core", "futures-io", - "rustix 0.38.24", + "rustix 0.38.26", "signal-hook-registry", "slab", "windows-sys 0.48.0", @@ -385,8 +384,8 @@ version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a37913e8dc4ddcc604f0c6d3bf2887c995153af3611de9e23c352b44c1b9118" dependencies = [ - "async-channel 2.1.0", - "async-lock 3.1.0", + "async-channel 2.1.1", + "async-lock 3.2.0", "async-task", "fastrand 2.0.1", "futures-io", @@ -864,9 +863,9 @@ dependencies = [ [[package]] name = "color-spantrace" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ba75b3d9449ecdccb27ecbc479fdc0b87fa2dd43d2f8298f9bf0e59aacc8dce" +checksum = "cd6be1b2a7e382e2b98b43b2adcca6bb0e465af0bdd38123873ae61eb17a72c2" dependencies = [ "once_cell", "owo-colors", @@ -905,9 +904,9 @@ dependencies = [ [[package]] name = "concurrent-queue" -version = "2.3.0" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f057a694a54f12365049b0958a1685bb52d567f5593b355fbf685838e873d400" +checksum = "d16048cd947b08fa32c24458a22f5dc5e835264f689f4f5653210c69fd107363" dependencies = [ "crossbeam-utils", ] @@ -930,9 +929,9 @@ checksum = "fbdcdcb6d86f71c5e97409ad45898af11cbc995b4ee8112d59095a28d376c935" [[package]] name = "core-foundation-sys" -version = "0.8.4" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" +checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" [[package]] name = "core_maths" @@ -1153,9 +1152,9 @@ dependencies = [ [[package]] name = "deranged" -version = "0.3.9" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f32d04922c60427da6f9fef14d042d9edddef64cb9d4ce0d64d0685fbeb1fd3" +checksum = "8eb30d70a07a3b04884d2677f06bec33509dc67ca60d92949e5535352d3191dc" dependencies = [ "powerfmt", ] @@ -1315,12 +1314,12 @@ dependencies = [ [[package]] name = "errno" -version = "0.3.7" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f258a7194e7f7c2a7837a8913aeab7fd8c383457034fa20ce4dd3dcb813e8eb8" +checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" dependencies = [ "libc", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -1346,21 +1345,32 @@ dependencies = [ "pin-project-lite", ] +[[package]] +name = "event-listener" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "770d968249b5d99410d61f5bf89057f3199a077a04d087092f58e7d10692baae" +dependencies = [ + "concurrent-queue", + "parking", + "pin-project-lite", +] + [[package]] name = "event-listener-strategy" -version = "0.3.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d96b852f1345da36d551b9473fa1e2b1eb5c5195585c6c018118bc92a8d91160" +checksum = "958e4d70b6d5e81971bebec42271ec641e7ff4e170a6fa605f2b8a8b65cb97d3" dependencies = [ - "event-listener 3.1.0", + "event-listener 4.0.0", "pin-project-lite", ] [[package]] name = "eyre" -version = "0.6.8" +version = "0.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c2b6b5a29c02cdc822728b7d7b8ae1bab3e3b05d44522770ddd49722eeac7eb" +checksum = "80f656be11ddf91bd709454d15d5bd896fbaf4cc3314e69349e4d1569f5b46cd" dependencies = [ "indenter", "once_cell", @@ -1400,7 +1410,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b93f7a0db71c99f68398f80653ed05afb0b00e062e1a20c7ff849c4edfabbbcc" dependencies = [ "cfg-if", - "rustix 0.38.24", + "rustix 0.38.26", "windows-sys 0.52.0", ] @@ -1443,9 +1453,9 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "form_urlencoded" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" dependencies = [ "percent-encoding", ] @@ -1571,9 +1581,9 @@ dependencies = [ [[package]] name = "gimli" -version = "0.28.0" +version = "0.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0" +checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" [[package]] name = "glob" @@ -2053,9 +2063,9 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "idna" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c" +checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" dependencies = [ "unicode-bidi", "unicode-normalization", @@ -2130,7 +2140,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b" dependencies = [ "hermit-abi", - "rustix 0.38.24", + "rustix 0.38.26", "windows-sys 0.48.0", ] @@ -2180,9 +2190,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.65" +version = "0.3.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54c0c35952f67de54bb584e9fd912b3023117cbafc0a77d8f3dee1fb5f572fe8" +checksum = "cee9c64da59eae3b50095c18d3e74f8b73c0b86d2792824ff01bbce68ba229ca" dependencies = [ "wasm-bindgen", ] @@ -2229,9 +2239,9 @@ checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" [[package]] name = "linux-raw-sys" -version = "0.4.11" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "969488b55f8ac402214f3f5fd243ebb7206cf82de60d3172994707a4bcc2b829" +checksum = "c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456" [[package]] name = "litemap" @@ -2633,9 +2643,9 @@ checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" [[package]] name = "percent-encoding" -version = "2.3.0" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "perf-event-open-sys" @@ -2757,16 +2767,16 @@ dependencies = [ [[package]] name = "polling" -version = "3.3.0" +version = "3.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e53b6af1f60f36f8c2ac2aad5459d75a5a9b4be1e8cdd40264f315d78193e531" +checksum = "cf63fa624ab313c11656b4cda960bfc46c410187ad493c41f6ba2d8c1e991c9e" dependencies = [ "cfg-if", "concurrent-queue", "pin-project-lite", - "rustix 0.38.24", + "rustix 0.38.26", "tracing", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -3049,9 +3059,9 @@ dependencies = [ [[package]] name = "ring" -version = "0.17.5" +version = "0.17.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb0205304757e5d899b9c2e448b867ffd03ae7f988002e47cd24954391394d0b" +checksum = "688c63d65483050968b2a8937f7995f443e27041a0f7700aa59b0822aedebb74" dependencies = [ "cc", "getrandom", @@ -3126,15 +3136,15 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.24" +version = "0.38.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ad981d6c340a49cdc40a1028d9c6084ec7e9fa33fcb839cab656a267071e234" +checksum = "9470c4bf8246c8daf25f9598dca807fb6510347b1e1cfa55749113850c79d88a" dependencies = [ "bitflags 2.4.1", "errno", "libc", - "linux-raw-sys 0.4.11", - "windows-sys 0.48.0", + "linux-raw-sys 0.4.12", + "windows-sys 0.52.0", ] [[package]] @@ -3268,9 +3278,9 @@ dependencies = [ [[package]] name = "serde-aux" -version = "4.2.0" +version = "4.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3dfe1b7eb6f9dcf011bd6fad169cdeaae75eda0d61b1a99a3f015b41b0cae39" +checksum = "184eba62ebddb71658697c8b08822edee89970bf318c5362189f0de27f85b498" dependencies = [ "serde", "serde_json", @@ -3629,7 +3639,7 @@ dependencies = [ "cfg-if", "fastrand 2.0.1", "redox_syscall 0.4.1", - "rustix 0.38.24", + "rustix 0.38.26", "windows-sys 0.48.0", ] @@ -3936,9 +3946,9 @@ dependencies = [ [[package]] name = "unicode-bidi" -version = "0.3.13" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" +checksum = "6f2528f27a9eb2b21e69c95319b30bd0efd85d09c379741b0f78ea1d86be2416" [[package]] name = "unicode-ident" @@ -3993,9 +4003,9 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "ureq" -version = "2.8.0" +version = "2.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5ccd538d4a604753ebc2f17cd9946e89b77bf87f6a8e2309667c6f2e87855e3" +checksum = "f8cdd25c339e200129fe4de81451814e5228c9b771d57378817d6117cc2b3f97" dependencies = [ "base64", "flate2", @@ -4009,9 +4019,9 @@ dependencies = [ [[package]] name = "url" -version = "2.4.1" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5" +checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" dependencies = [ "form_urlencoded", "idna", @@ -4020,15 +4030,15 @@ dependencies = [ [[package]] name = "utf16_iter" -version = "1.0.4" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52df8b7fb78e7910d776fccf2e42ceaf3604d55e8e7eb2dbd183cb1441d8a692" +checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" [[package]] name = "utf8_iter" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64a8922555b9500e3d865caed19330172cd67cbf82203f1a3311d8c305cc9f33" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" [[package]] name = "utf8parse" @@ -4038,9 +4048,9 @@ checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" [[package]] name = "uuid" -version = "1.5.0" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88ad59a7560b41a70d191093a945f0b87bc1deeda46fb237479708a1d6b6cdfc" +checksum = "5e395fcf16a7a3d8127ec99782007af141946b4795001f876d54fb0d55978560" [[package]] name = "valuable" @@ -4408,9 +4418,9 @@ checksum = "718ed7c55c2add6548cca3ddd6383d738cd73b892df400e96b9aa876f0141d7a" [[package]] name = "web-sys" -version = "0.3.65" +version = "0.3.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5db499c5f66323272151db0e666cd34f78617522fb0c1604d31a27c50c206a85" +checksum = "50c24a44ec86bb68fbecd1b3efed7e85ea5621b39b35ef2766b66cd984f8010f" dependencies = [ "js-sys", "wasm-bindgen", @@ -4428,9 +4438,9 @@ dependencies = [ [[package]] name = "webpki-roots" -version = "0.25.2" +version = "0.25.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14247bb57be4f377dfb94c72830b8ce8fc6beac03cf4bf7b9732eadd414123fc" +checksum = "1778a42e8b3b90bff8d0f5032bf22250792889a5cdc752aa0020c84abe3aaf10" [[package]] name = "which" @@ -4441,7 +4451,7 @@ dependencies = [ "either", "home", "once_cell", - "rustix 0.38.24", + "rustix 0.38.26", ] [[package]] @@ -4661,9 +4671,9 @@ checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" [[package]] name = "winnow" -version = "0.5.19" +version = "0.5.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "829846f3e3db426d4cee4510841b71a8e58aa2a76b1132579487ae430ccd9c7b" +checksum = "b7e87b8dfbe3baffbe687eef2e164e32286eff31a5ee16463ce03d991643ec94" dependencies = [ "memchr", ] @@ -4715,18 +4725,18 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.7.26" +version = "0.7.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e97e415490559a91254a2979b4829267a57d2fcd741a98eee8b722fb57289aa0" +checksum = "5d075cf85bbb114e933343e087b92f2146bac0d55b534cbb8188becf0039948e" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.7.26" +version = "0.7.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd7e48ccf166952882ca8bd778a43502c64f33bf94c12ebe2a7f08e5a0f6689f" +checksum = "86cd5ca076997b97ef09d3ad65efe811fa68c9e874cb636ccb211223a813b0c2" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index d3ad9809b4..7219cefa1f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,21 +1,23 @@ [workspace] resolver = "2" members = [ - "boa_ast", - "boa_cli", - "boa_engine", - "boa_examples", - "boa_gc", - "boa_icu_provider", - "boa_interner", - "boa_macros", - "boa_macros_tests", - "boa_parser", - "boa_profiler", - "boa_runtime", - "boa_temporal", - "boa_tester", - "boa_wasm", + # CORE + "core/*", + + # FFI + "ffi/*", + + # TESTS + "tests/*", + + # OTHERS + "examples", + "cli", +] + +exclude = [ + "tests/fuzz", # Does weird things on Windows tests + "tests/src" # Just a hack to have fuzz inside tests ] [workspace.package] @@ -30,16 +32,16 @@ description = "Boa is a Javascript lexer, parser and compiler written in Rust. C [workspace.dependencies] # Repo Crates -boa_ast = { version = "~0.17.0", path = "boa_ast" } -boa_engine = { version = "~0.17.0", path = "boa_engine" } -boa_gc = { version = "~0.17.0", path = "boa_gc" } -boa_icu_provider = { version = "~0.17.0", path = "boa_icu_provider" } -boa_interner = { version = "~0.17.0", path = "boa_interner" } -boa_macros = { version = "~0.17.0", path = "boa_macros" } -boa_parser = { version = "~0.17.0", path = "boa_parser" } -boa_profiler = { version = "~0.17.0", path = "boa_profiler" } -boa_runtime = { version = "~0.17.0", path = "boa_runtime" } -boa_temporal = {version = "~0.17.0", path = "boa_temporal" } +boa_ast = { version = "~0.17.0", path = "core/ast" } +boa_engine = { version = "~0.17.0", path = "core/engine" } +boa_gc = { version = "~0.17.0", path = "core/gc" } +boa_icu_provider = { version = "~0.17.0", path = "core/icu_provider" } +boa_interner = { version = "~0.17.0", path = "core/interner" } +boa_macros = { version = "~0.17.0", path = "core/macros" } +boa_parser = { version = "~0.17.0", path = "core/parser" } +boa_profiler = { version = "~0.17.0", path = "core/profiler" } +boa_runtime = { version = "~0.17.0", path = "core/runtime" } +boa_temporal = { version = "~0.17.0", path = "core/temporal" } # Shared deps arbitrary = "1" diff --git a/boa_ast/ABOUT.md b/cli/ABOUT.md similarity index 100% rename from boa_ast/ABOUT.md rename to cli/ABOUT.md diff --git a/boa_cli/Cargo.toml b/cli/Cargo.toml similarity index 100% rename from boa_cli/Cargo.toml rename to cli/Cargo.toml diff --git a/boa_cli/src/debug/function.rs b/cli/src/debug/function.rs similarity index 100% rename from boa_cli/src/debug/function.rs rename to cli/src/debug/function.rs diff --git a/boa_cli/src/debug/gc.rs b/cli/src/debug/gc.rs similarity index 100% rename from boa_cli/src/debug/gc.rs rename to cli/src/debug/gc.rs diff --git a/boa_cli/src/debug/limits.rs b/cli/src/debug/limits.rs similarity index 100% rename from boa_cli/src/debug/limits.rs rename to cli/src/debug/limits.rs diff --git a/boa_cli/src/debug/mod.rs b/cli/src/debug/mod.rs similarity index 100% rename from boa_cli/src/debug/mod.rs rename to cli/src/debug/mod.rs diff --git a/boa_cli/src/debug/object.rs b/cli/src/debug/object.rs similarity index 100% rename from boa_cli/src/debug/object.rs rename to cli/src/debug/object.rs diff --git a/boa_cli/src/debug/optimizer.rs b/cli/src/debug/optimizer.rs similarity index 100% rename from boa_cli/src/debug/optimizer.rs rename to cli/src/debug/optimizer.rs diff --git a/boa_cli/src/debug/realm.rs b/cli/src/debug/realm.rs similarity index 100% rename from boa_cli/src/debug/realm.rs rename to cli/src/debug/realm.rs diff --git a/boa_cli/src/debug/shape.rs b/cli/src/debug/shape.rs similarity index 100% rename from boa_cli/src/debug/shape.rs rename to cli/src/debug/shape.rs diff --git a/boa_cli/src/helper.rs b/cli/src/helper.rs similarity index 100% rename from boa_cli/src/helper.rs rename to cli/src/helper.rs diff --git a/boa_cli/src/main.rs b/cli/src/main.rs similarity index 100% rename from boa_cli/src/main.rs rename to cli/src/main.rs diff --git a/boa_cli/ABOUT.md b/core/ast/ABOUT.md similarity index 100% rename from boa_cli/ABOUT.md rename to core/ast/ABOUT.md diff --git a/boa_ast/Cargo.toml b/core/ast/Cargo.toml similarity index 100% rename from boa_ast/Cargo.toml rename to core/ast/Cargo.toml diff --git a/boa_ast/src/declaration/export.rs b/core/ast/src/declaration/export.rs similarity index 100% rename from boa_ast/src/declaration/export.rs rename to core/ast/src/declaration/export.rs diff --git a/boa_ast/src/declaration/import.rs b/core/ast/src/declaration/import.rs similarity index 100% rename from boa_ast/src/declaration/import.rs rename to core/ast/src/declaration/import.rs diff --git a/boa_ast/src/declaration/mod.rs b/core/ast/src/declaration/mod.rs similarity index 100% rename from boa_ast/src/declaration/mod.rs rename to core/ast/src/declaration/mod.rs diff --git a/boa_ast/src/declaration/variable.rs b/core/ast/src/declaration/variable.rs similarity index 100% rename from boa_ast/src/declaration/variable.rs rename to core/ast/src/declaration/variable.rs diff --git a/boa_ast/src/expression/access.rs b/core/ast/src/expression/access.rs similarity index 100% rename from boa_ast/src/expression/access.rs rename to core/ast/src/expression/access.rs diff --git a/boa_ast/src/expression/await.rs b/core/ast/src/expression/await.rs similarity index 100% rename from boa_ast/src/expression/await.rs rename to core/ast/src/expression/await.rs diff --git a/boa_ast/src/expression/call.rs b/core/ast/src/expression/call.rs similarity index 100% rename from boa_ast/src/expression/call.rs rename to core/ast/src/expression/call.rs diff --git a/boa_ast/src/expression/identifier.rs b/core/ast/src/expression/identifier.rs similarity index 100% rename from boa_ast/src/expression/identifier.rs rename to core/ast/src/expression/identifier.rs diff --git a/boa_ast/src/expression/literal/array.rs b/core/ast/src/expression/literal/array.rs similarity index 100% rename from boa_ast/src/expression/literal/array.rs rename to core/ast/src/expression/literal/array.rs diff --git a/boa_ast/src/expression/literal/mod.rs b/core/ast/src/expression/literal/mod.rs similarity index 100% rename from boa_ast/src/expression/literal/mod.rs rename to core/ast/src/expression/literal/mod.rs diff --git a/boa_ast/src/expression/literal/object.rs b/core/ast/src/expression/literal/object.rs similarity index 100% rename from boa_ast/src/expression/literal/object.rs rename to core/ast/src/expression/literal/object.rs diff --git a/boa_ast/src/expression/literal/template.rs b/core/ast/src/expression/literal/template.rs similarity index 100% rename from boa_ast/src/expression/literal/template.rs rename to core/ast/src/expression/literal/template.rs diff --git a/boa_ast/src/expression/mod.rs b/core/ast/src/expression/mod.rs similarity index 100% rename from boa_ast/src/expression/mod.rs rename to core/ast/src/expression/mod.rs diff --git a/boa_ast/src/expression/new.rs b/core/ast/src/expression/new.rs similarity index 100% rename from boa_ast/src/expression/new.rs rename to core/ast/src/expression/new.rs diff --git a/boa_ast/src/expression/operator/assign/mod.rs b/core/ast/src/expression/operator/assign/mod.rs similarity index 100% rename from boa_ast/src/expression/operator/assign/mod.rs rename to core/ast/src/expression/operator/assign/mod.rs diff --git a/boa_ast/src/expression/operator/assign/op.rs b/core/ast/src/expression/operator/assign/op.rs similarity index 100% rename from boa_ast/src/expression/operator/assign/op.rs rename to core/ast/src/expression/operator/assign/op.rs diff --git a/boa_ast/src/expression/operator/binary/mod.rs b/core/ast/src/expression/operator/binary/mod.rs similarity index 100% rename from boa_ast/src/expression/operator/binary/mod.rs rename to core/ast/src/expression/operator/binary/mod.rs diff --git a/boa_ast/src/expression/operator/binary/op.rs b/core/ast/src/expression/operator/binary/op.rs similarity index 100% rename from boa_ast/src/expression/operator/binary/op.rs rename to core/ast/src/expression/operator/binary/op.rs diff --git a/boa_ast/src/expression/operator/conditional.rs b/core/ast/src/expression/operator/conditional.rs similarity index 100% rename from boa_ast/src/expression/operator/conditional.rs rename to core/ast/src/expression/operator/conditional.rs diff --git a/boa_ast/src/expression/operator/mod.rs b/core/ast/src/expression/operator/mod.rs similarity index 100% rename from boa_ast/src/expression/operator/mod.rs rename to core/ast/src/expression/operator/mod.rs diff --git a/boa_ast/src/expression/operator/unary/mod.rs b/core/ast/src/expression/operator/unary/mod.rs similarity index 100% rename from boa_ast/src/expression/operator/unary/mod.rs rename to core/ast/src/expression/operator/unary/mod.rs diff --git a/boa_ast/src/expression/operator/unary/op.rs b/core/ast/src/expression/operator/unary/op.rs similarity index 100% rename from boa_ast/src/expression/operator/unary/op.rs rename to core/ast/src/expression/operator/unary/op.rs diff --git a/boa_ast/src/expression/operator/update/mod.rs b/core/ast/src/expression/operator/update/mod.rs similarity index 100% rename from boa_ast/src/expression/operator/update/mod.rs rename to core/ast/src/expression/operator/update/mod.rs diff --git a/boa_ast/src/expression/operator/update/op.rs b/core/ast/src/expression/operator/update/op.rs similarity index 100% rename from boa_ast/src/expression/operator/update/op.rs rename to core/ast/src/expression/operator/update/op.rs diff --git a/boa_ast/src/expression/optional.rs b/core/ast/src/expression/optional.rs similarity index 100% rename from boa_ast/src/expression/optional.rs rename to core/ast/src/expression/optional.rs diff --git a/boa_ast/src/expression/parenthesized.rs b/core/ast/src/expression/parenthesized.rs similarity index 100% rename from boa_ast/src/expression/parenthesized.rs rename to core/ast/src/expression/parenthesized.rs diff --git a/boa_ast/src/expression/regexp.rs b/core/ast/src/expression/regexp.rs similarity index 100% rename from boa_ast/src/expression/regexp.rs rename to core/ast/src/expression/regexp.rs diff --git a/boa_ast/src/expression/spread.rs b/core/ast/src/expression/spread.rs similarity index 100% rename from boa_ast/src/expression/spread.rs rename to core/ast/src/expression/spread.rs diff --git a/boa_ast/src/expression/tagged_template.rs b/core/ast/src/expression/tagged_template.rs similarity index 100% rename from boa_ast/src/expression/tagged_template.rs rename to core/ast/src/expression/tagged_template.rs diff --git a/boa_ast/src/expression/yield.rs b/core/ast/src/expression/yield.rs similarity index 100% rename from boa_ast/src/expression/yield.rs rename to core/ast/src/expression/yield.rs diff --git a/boa_ast/src/function/arrow_function.rs b/core/ast/src/function/arrow_function.rs similarity index 100% rename from boa_ast/src/function/arrow_function.rs rename to core/ast/src/function/arrow_function.rs diff --git a/boa_ast/src/function/async_arrow_function.rs b/core/ast/src/function/async_arrow_function.rs similarity index 100% rename from boa_ast/src/function/async_arrow_function.rs rename to core/ast/src/function/async_arrow_function.rs diff --git a/boa_ast/src/function/async_function.rs b/core/ast/src/function/async_function.rs similarity index 100% rename from boa_ast/src/function/async_function.rs rename to core/ast/src/function/async_function.rs diff --git a/boa_ast/src/function/async_generator.rs b/core/ast/src/function/async_generator.rs similarity index 100% rename from boa_ast/src/function/async_generator.rs rename to core/ast/src/function/async_generator.rs diff --git a/boa_ast/src/function/class.rs b/core/ast/src/function/class.rs similarity index 100% rename from boa_ast/src/function/class.rs rename to core/ast/src/function/class.rs diff --git a/boa_ast/src/function/generator.rs b/core/ast/src/function/generator.rs similarity index 100% rename from boa_ast/src/function/generator.rs rename to core/ast/src/function/generator.rs diff --git a/boa_ast/src/function/mod.rs b/core/ast/src/function/mod.rs similarity index 100% rename from boa_ast/src/function/mod.rs rename to core/ast/src/function/mod.rs diff --git a/boa_ast/src/function/parameters.rs b/core/ast/src/function/parameters.rs similarity index 100% rename from boa_ast/src/function/parameters.rs rename to core/ast/src/function/parameters.rs diff --git a/boa_ast/src/keyword/mod.rs b/core/ast/src/keyword/mod.rs similarity index 100% rename from boa_ast/src/keyword/mod.rs rename to core/ast/src/keyword/mod.rs diff --git a/boa_ast/src/keyword/tests.rs b/core/ast/src/keyword/tests.rs similarity index 100% rename from boa_ast/src/keyword/tests.rs rename to core/ast/src/keyword/tests.rs diff --git a/boa_ast/src/lib.rs b/core/ast/src/lib.rs similarity index 100% rename from boa_ast/src/lib.rs rename to core/ast/src/lib.rs diff --git a/boa_ast/src/module_item_list/mod.rs b/core/ast/src/module_item_list/mod.rs similarity index 100% rename from boa_ast/src/module_item_list/mod.rs rename to core/ast/src/module_item_list/mod.rs diff --git a/boa_ast/src/operations.rs b/core/ast/src/operations.rs similarity index 100% rename from boa_ast/src/operations.rs rename to core/ast/src/operations.rs diff --git a/boa_ast/src/pattern.rs b/core/ast/src/pattern.rs similarity index 100% rename from boa_ast/src/pattern.rs rename to core/ast/src/pattern.rs diff --git a/boa_ast/src/position.rs b/core/ast/src/position.rs similarity index 100% rename from boa_ast/src/position.rs rename to core/ast/src/position.rs diff --git a/boa_ast/src/property.rs b/core/ast/src/property.rs similarity index 100% rename from boa_ast/src/property.rs rename to core/ast/src/property.rs diff --git a/boa_ast/src/punctuator/mod.rs b/core/ast/src/punctuator/mod.rs similarity index 100% rename from boa_ast/src/punctuator/mod.rs rename to core/ast/src/punctuator/mod.rs diff --git a/boa_ast/src/punctuator/tests.rs b/core/ast/src/punctuator/tests.rs similarity index 100% rename from boa_ast/src/punctuator/tests.rs rename to core/ast/src/punctuator/tests.rs diff --git a/boa_ast/src/source.rs b/core/ast/src/source.rs similarity index 100% rename from boa_ast/src/source.rs rename to core/ast/src/source.rs diff --git a/boa_ast/src/statement/block.rs b/core/ast/src/statement/block.rs similarity index 100% rename from boa_ast/src/statement/block.rs rename to core/ast/src/statement/block.rs diff --git a/boa_ast/src/statement/if.rs b/core/ast/src/statement/if.rs similarity index 100% rename from boa_ast/src/statement/if.rs rename to core/ast/src/statement/if.rs diff --git a/boa_ast/src/statement/iteration/break.rs b/core/ast/src/statement/iteration/break.rs similarity index 100% rename from boa_ast/src/statement/iteration/break.rs rename to core/ast/src/statement/iteration/break.rs diff --git a/boa_ast/src/statement/iteration/continue.rs b/core/ast/src/statement/iteration/continue.rs similarity index 100% rename from boa_ast/src/statement/iteration/continue.rs rename to core/ast/src/statement/iteration/continue.rs diff --git a/boa_ast/src/statement/iteration/do_while_loop.rs b/core/ast/src/statement/iteration/do_while_loop.rs similarity index 100% rename from boa_ast/src/statement/iteration/do_while_loop.rs rename to core/ast/src/statement/iteration/do_while_loop.rs diff --git a/boa_ast/src/statement/iteration/for_in_loop.rs b/core/ast/src/statement/iteration/for_in_loop.rs similarity index 100% rename from boa_ast/src/statement/iteration/for_in_loop.rs rename to core/ast/src/statement/iteration/for_in_loop.rs diff --git a/boa_ast/src/statement/iteration/for_loop.rs b/core/ast/src/statement/iteration/for_loop.rs similarity index 100% rename from boa_ast/src/statement/iteration/for_loop.rs rename to core/ast/src/statement/iteration/for_loop.rs diff --git a/boa_ast/src/statement/iteration/for_of_loop.rs b/core/ast/src/statement/iteration/for_of_loop.rs similarity index 100% rename from boa_ast/src/statement/iteration/for_of_loop.rs rename to core/ast/src/statement/iteration/for_of_loop.rs diff --git a/boa_ast/src/statement/iteration/mod.rs b/core/ast/src/statement/iteration/mod.rs similarity index 100% rename from boa_ast/src/statement/iteration/mod.rs rename to core/ast/src/statement/iteration/mod.rs diff --git a/boa_ast/src/statement/iteration/while_loop.rs b/core/ast/src/statement/iteration/while_loop.rs similarity index 100% rename from boa_ast/src/statement/iteration/while_loop.rs rename to core/ast/src/statement/iteration/while_loop.rs diff --git a/boa_ast/src/statement/labelled.rs b/core/ast/src/statement/labelled.rs similarity index 100% rename from boa_ast/src/statement/labelled.rs rename to core/ast/src/statement/labelled.rs diff --git a/boa_ast/src/statement/mod.rs b/core/ast/src/statement/mod.rs similarity index 100% rename from boa_ast/src/statement/mod.rs rename to core/ast/src/statement/mod.rs diff --git a/boa_ast/src/statement/return.rs b/core/ast/src/statement/return.rs similarity index 100% rename from boa_ast/src/statement/return.rs rename to core/ast/src/statement/return.rs diff --git a/boa_ast/src/statement/switch.rs b/core/ast/src/statement/switch.rs similarity index 100% rename from boa_ast/src/statement/switch.rs rename to core/ast/src/statement/switch.rs diff --git a/boa_ast/src/statement/throw.rs b/core/ast/src/statement/throw.rs similarity index 100% rename from boa_ast/src/statement/throw.rs rename to core/ast/src/statement/throw.rs diff --git a/boa_ast/src/statement/try.rs b/core/ast/src/statement/try.rs similarity index 100% rename from boa_ast/src/statement/try.rs rename to core/ast/src/statement/try.rs diff --git a/boa_ast/src/statement/with.rs b/core/ast/src/statement/with.rs similarity index 100% rename from boa_ast/src/statement/with.rs rename to core/ast/src/statement/with.rs diff --git a/boa_ast/src/statement_list.rs b/core/ast/src/statement_list.rs similarity index 100% rename from boa_ast/src/statement_list.rs rename to core/ast/src/statement_list.rs diff --git a/boa_ast/src/visitor.rs b/core/ast/src/visitor.rs similarity index 100% rename from boa_ast/src/visitor.rs rename to core/ast/src/visitor.rs diff --git a/boa_engine/ABOUT.md b/core/engine/ABOUT.md similarity index 100% rename from boa_engine/ABOUT.md rename to core/engine/ABOUT.md diff --git a/boa_engine/Cargo.toml b/core/engine/Cargo.toml similarity index 100% rename from boa_engine/Cargo.toml rename to core/engine/Cargo.toml diff --git a/boa_engine/benches/README.md b/core/engine/benches/README.md similarity index 100% rename from boa_engine/benches/README.md rename to core/engine/benches/README.md diff --git a/boa_engine/benches/bench_scripts/arithmetic_operations.js b/core/engine/benches/bench_scripts/arithmetic_operations.js similarity index 100% rename from boa_engine/benches/bench_scripts/arithmetic_operations.js rename to core/engine/benches/bench_scripts/arithmetic_operations.js diff --git a/boa_engine/benches/bench_scripts/array_access.js b/core/engine/benches/bench_scripts/array_access.js similarity index 100% rename from boa_engine/benches/bench_scripts/array_access.js rename to core/engine/benches/bench_scripts/array_access.js diff --git a/boa_engine/benches/bench_scripts/array_create.js b/core/engine/benches/bench_scripts/array_create.js similarity index 100% rename from boa_engine/benches/bench_scripts/array_create.js rename to core/engine/benches/bench_scripts/array_create.js diff --git a/boa_engine/benches/bench_scripts/array_pop.js b/core/engine/benches/bench_scripts/array_pop.js similarity index 100% rename from boa_engine/benches/bench_scripts/array_pop.js rename to core/engine/benches/bench_scripts/array_pop.js diff --git a/boa_engine/benches/bench_scripts/boolean_object_access.js b/core/engine/benches/bench_scripts/boolean_object_access.js similarity index 100% rename from boa_engine/benches/bench_scripts/boolean_object_access.js rename to core/engine/benches/bench_scripts/boolean_object_access.js diff --git a/boa_engine/benches/bench_scripts/clean_js.js b/core/engine/benches/bench_scripts/clean_js.js similarity index 100% rename from boa_engine/benches/bench_scripts/clean_js.js rename to core/engine/benches/bench_scripts/clean_js.js diff --git a/boa_engine/benches/bench_scripts/fibonacci.js b/core/engine/benches/bench_scripts/fibonacci.js similarity index 100% rename from boa_engine/benches/bench_scripts/fibonacci.js rename to core/engine/benches/bench_scripts/fibonacci.js diff --git a/boa_engine/benches/bench_scripts/for_loop.js b/core/engine/benches/bench_scripts/for_loop.js similarity index 100% rename from boa_engine/benches/bench_scripts/for_loop.js rename to core/engine/benches/bench_scripts/for_loop.js diff --git a/boa_engine/benches/bench_scripts/mini_js.js b/core/engine/benches/bench_scripts/mini_js.js similarity index 100% rename from boa_engine/benches/bench_scripts/mini_js.js rename to core/engine/benches/bench_scripts/mini_js.js diff --git a/boa_engine/benches/bench_scripts/number_object_access.js b/core/engine/benches/bench_scripts/number_object_access.js similarity index 100% rename from boa_engine/benches/bench_scripts/number_object_access.js rename to core/engine/benches/bench_scripts/number_object_access.js diff --git a/boa_engine/benches/bench_scripts/object_creation.js b/core/engine/benches/bench_scripts/object_creation.js similarity index 100% rename from boa_engine/benches/bench_scripts/object_creation.js rename to core/engine/benches/bench_scripts/object_creation.js diff --git a/boa_engine/benches/bench_scripts/object_prop_access_const.js b/core/engine/benches/bench_scripts/object_prop_access_const.js similarity index 100% rename from boa_engine/benches/bench_scripts/object_prop_access_const.js rename to core/engine/benches/bench_scripts/object_prop_access_const.js diff --git a/boa_engine/benches/bench_scripts/object_prop_access_dyn.js b/core/engine/benches/bench_scripts/object_prop_access_dyn.js similarity index 100% rename from boa_engine/benches/bench_scripts/object_prop_access_dyn.js rename to core/engine/benches/bench_scripts/object_prop_access_dyn.js diff --git a/boa_engine/benches/bench_scripts/regexp.js b/core/engine/benches/bench_scripts/regexp.js similarity index 100% rename from boa_engine/benches/bench_scripts/regexp.js rename to core/engine/benches/bench_scripts/regexp.js diff --git a/boa_engine/benches/bench_scripts/regexp_creation.js b/core/engine/benches/bench_scripts/regexp_creation.js similarity index 100% rename from boa_engine/benches/bench_scripts/regexp_creation.js rename to core/engine/benches/bench_scripts/regexp_creation.js diff --git a/boa_engine/benches/bench_scripts/regexp_literal.js b/core/engine/benches/bench_scripts/regexp_literal.js similarity index 100% rename from boa_engine/benches/bench_scripts/regexp_literal.js rename to core/engine/benches/bench_scripts/regexp_literal.js diff --git a/boa_engine/benches/bench_scripts/regexp_literal_creation.js b/core/engine/benches/bench_scripts/regexp_literal_creation.js similarity index 100% rename from boa_engine/benches/bench_scripts/regexp_literal_creation.js rename to core/engine/benches/bench_scripts/regexp_literal_creation.js diff --git a/boa_engine/benches/bench_scripts/string_compare.js b/core/engine/benches/bench_scripts/string_compare.js similarity index 100% rename from boa_engine/benches/bench_scripts/string_compare.js rename to core/engine/benches/bench_scripts/string_compare.js diff --git a/boa_engine/benches/bench_scripts/string_concat.js b/core/engine/benches/bench_scripts/string_concat.js similarity index 100% rename from boa_engine/benches/bench_scripts/string_concat.js rename to core/engine/benches/bench_scripts/string_concat.js diff --git a/boa_engine/benches/bench_scripts/string_copy.js b/core/engine/benches/bench_scripts/string_copy.js similarity index 100% rename from boa_engine/benches/bench_scripts/string_copy.js rename to core/engine/benches/bench_scripts/string_copy.js diff --git a/boa_engine/benches/bench_scripts/string_object_access.js b/core/engine/benches/bench_scripts/string_object_access.js similarity index 100% rename from boa_engine/benches/bench_scripts/string_object_access.js rename to core/engine/benches/bench_scripts/string_object_access.js diff --git a/boa_engine/benches/bench_scripts/symbol_creation.js b/core/engine/benches/bench_scripts/symbol_creation.js similarity index 100% rename from boa_engine/benches/bench_scripts/symbol_creation.js rename to core/engine/benches/bench_scripts/symbol_creation.js diff --git a/boa_engine/benches/full.rs b/core/engine/benches/full.rs similarity index 100% rename from boa_engine/benches/full.rs rename to core/engine/benches/full.rs diff --git a/boa_engine/src/bigint.rs b/core/engine/src/bigint.rs similarity index 100% rename from boa_engine/src/bigint.rs rename to core/engine/src/bigint.rs diff --git a/boa_engine/src/builtins/array/array_iterator.rs b/core/engine/src/builtins/array/array_iterator.rs similarity index 100% rename from boa_engine/src/builtins/array/array_iterator.rs rename to core/engine/src/builtins/array/array_iterator.rs diff --git a/boa_engine/src/builtins/array/mod.rs b/core/engine/src/builtins/array/mod.rs similarity index 100% rename from boa_engine/src/builtins/array/mod.rs rename to core/engine/src/builtins/array/mod.rs diff --git a/boa_engine/src/builtins/array/tests.rs b/core/engine/src/builtins/array/tests.rs similarity index 100% rename from boa_engine/src/builtins/array/tests.rs rename to core/engine/src/builtins/array/tests.rs diff --git a/boa_engine/src/builtins/array_buffer/mod.rs b/core/engine/src/builtins/array_buffer/mod.rs similarity index 100% rename from boa_engine/src/builtins/array_buffer/mod.rs rename to core/engine/src/builtins/array_buffer/mod.rs diff --git a/boa_engine/src/builtins/array_buffer/shared.rs b/core/engine/src/builtins/array_buffer/shared.rs similarity index 100% rename from boa_engine/src/builtins/array_buffer/shared.rs rename to core/engine/src/builtins/array_buffer/shared.rs diff --git a/boa_engine/src/builtins/array_buffer/tests.rs b/core/engine/src/builtins/array_buffer/tests.rs similarity index 100% rename from boa_engine/src/builtins/array_buffer/tests.rs rename to core/engine/src/builtins/array_buffer/tests.rs diff --git a/boa_engine/src/builtins/array_buffer/utils.rs b/core/engine/src/builtins/array_buffer/utils.rs similarity index 100% rename from boa_engine/src/builtins/array_buffer/utils.rs rename to core/engine/src/builtins/array_buffer/utils.rs diff --git a/boa_engine/src/builtins/async_function/mod.rs b/core/engine/src/builtins/async_function/mod.rs similarity index 100% rename from boa_engine/src/builtins/async_function/mod.rs rename to core/engine/src/builtins/async_function/mod.rs diff --git a/boa_engine/src/builtins/async_generator/mod.rs b/core/engine/src/builtins/async_generator/mod.rs similarity index 100% rename from boa_engine/src/builtins/async_generator/mod.rs rename to core/engine/src/builtins/async_generator/mod.rs diff --git a/boa_engine/src/builtins/async_generator_function/mod.rs b/core/engine/src/builtins/async_generator_function/mod.rs similarity index 100% rename from boa_engine/src/builtins/async_generator_function/mod.rs rename to core/engine/src/builtins/async_generator_function/mod.rs diff --git a/boa_engine/src/builtins/atomics/futex.rs b/core/engine/src/builtins/atomics/futex.rs similarity index 100% rename from boa_engine/src/builtins/atomics/futex.rs rename to core/engine/src/builtins/atomics/futex.rs diff --git a/boa_engine/src/builtins/atomics/mod.rs b/core/engine/src/builtins/atomics/mod.rs similarity index 100% rename from boa_engine/src/builtins/atomics/mod.rs rename to core/engine/src/builtins/atomics/mod.rs diff --git a/boa_engine/src/builtins/bigint/mod.rs b/core/engine/src/builtins/bigint/mod.rs similarity index 100% rename from boa_engine/src/builtins/bigint/mod.rs rename to core/engine/src/builtins/bigint/mod.rs diff --git a/boa_engine/src/builtins/bigint/tests.rs b/core/engine/src/builtins/bigint/tests.rs similarity index 100% rename from boa_engine/src/builtins/bigint/tests.rs rename to core/engine/src/builtins/bigint/tests.rs diff --git a/boa_engine/src/builtins/boolean/mod.rs b/core/engine/src/builtins/boolean/mod.rs similarity index 100% rename from boa_engine/src/builtins/boolean/mod.rs rename to core/engine/src/builtins/boolean/mod.rs diff --git a/boa_engine/src/builtins/boolean/tests.rs b/core/engine/src/builtins/boolean/tests.rs similarity index 100% rename from boa_engine/src/builtins/boolean/tests.rs rename to core/engine/src/builtins/boolean/tests.rs diff --git a/boa_engine/src/builtins/builder.rs b/core/engine/src/builtins/builder.rs similarity index 100% rename from boa_engine/src/builtins/builder.rs rename to core/engine/src/builtins/builder.rs diff --git a/boa_engine/src/builtins/dataview/mod.rs b/core/engine/src/builtins/dataview/mod.rs similarity index 100% rename from boa_engine/src/builtins/dataview/mod.rs rename to core/engine/src/builtins/dataview/mod.rs diff --git a/boa_engine/src/builtins/date/mod.rs b/core/engine/src/builtins/date/mod.rs similarity index 100% rename from boa_engine/src/builtins/date/mod.rs rename to core/engine/src/builtins/date/mod.rs diff --git a/boa_engine/src/builtins/date/tests.rs b/core/engine/src/builtins/date/tests.rs similarity index 100% rename from boa_engine/src/builtins/date/tests.rs rename to core/engine/src/builtins/date/tests.rs diff --git a/boa_engine/src/builtins/date/utils.rs b/core/engine/src/builtins/date/utils.rs similarity index 100% rename from boa_engine/src/builtins/date/utils.rs rename to core/engine/src/builtins/date/utils.rs diff --git a/boa_engine/src/builtins/error/aggregate.rs b/core/engine/src/builtins/error/aggregate.rs similarity index 100% rename from boa_engine/src/builtins/error/aggregate.rs rename to core/engine/src/builtins/error/aggregate.rs diff --git a/boa_engine/src/builtins/error/eval.rs b/core/engine/src/builtins/error/eval.rs similarity index 100% rename from boa_engine/src/builtins/error/eval.rs rename to core/engine/src/builtins/error/eval.rs diff --git a/boa_engine/src/builtins/error/mod.rs b/core/engine/src/builtins/error/mod.rs similarity index 100% rename from boa_engine/src/builtins/error/mod.rs rename to core/engine/src/builtins/error/mod.rs diff --git a/boa_engine/src/builtins/error/range.rs b/core/engine/src/builtins/error/range.rs similarity index 100% rename from boa_engine/src/builtins/error/range.rs rename to core/engine/src/builtins/error/range.rs diff --git a/boa_engine/src/builtins/error/reference.rs b/core/engine/src/builtins/error/reference.rs similarity index 100% rename from boa_engine/src/builtins/error/reference.rs rename to core/engine/src/builtins/error/reference.rs diff --git a/boa_engine/src/builtins/error/syntax.rs b/core/engine/src/builtins/error/syntax.rs similarity index 100% rename from boa_engine/src/builtins/error/syntax.rs rename to core/engine/src/builtins/error/syntax.rs diff --git a/boa_engine/src/builtins/error/tests.rs b/core/engine/src/builtins/error/tests.rs similarity index 100% rename from boa_engine/src/builtins/error/tests.rs rename to core/engine/src/builtins/error/tests.rs diff --git a/boa_engine/src/builtins/error/type.rs b/core/engine/src/builtins/error/type.rs similarity index 100% rename from boa_engine/src/builtins/error/type.rs rename to core/engine/src/builtins/error/type.rs diff --git a/boa_engine/src/builtins/error/uri.rs b/core/engine/src/builtins/error/uri.rs similarity index 100% rename from boa_engine/src/builtins/error/uri.rs rename to core/engine/src/builtins/error/uri.rs diff --git a/boa_engine/src/builtins/escape/mod.rs b/core/engine/src/builtins/escape/mod.rs similarity index 100% rename from boa_engine/src/builtins/escape/mod.rs rename to core/engine/src/builtins/escape/mod.rs diff --git a/boa_engine/src/builtins/eval/mod.rs b/core/engine/src/builtins/eval/mod.rs similarity index 100% rename from boa_engine/src/builtins/eval/mod.rs rename to core/engine/src/builtins/eval/mod.rs diff --git a/boa_engine/src/builtins/function/arguments.rs b/core/engine/src/builtins/function/arguments.rs similarity index 100% rename from boa_engine/src/builtins/function/arguments.rs rename to core/engine/src/builtins/function/arguments.rs diff --git a/boa_engine/src/builtins/function/bound.rs b/core/engine/src/builtins/function/bound.rs similarity index 100% rename from boa_engine/src/builtins/function/bound.rs rename to core/engine/src/builtins/function/bound.rs diff --git a/boa_engine/src/builtins/function/mod.rs b/core/engine/src/builtins/function/mod.rs similarity index 100% rename from boa_engine/src/builtins/function/mod.rs rename to core/engine/src/builtins/function/mod.rs diff --git a/boa_engine/src/builtins/function/tests.rs b/core/engine/src/builtins/function/tests.rs similarity index 100% rename from boa_engine/src/builtins/function/tests.rs rename to core/engine/src/builtins/function/tests.rs diff --git a/boa_engine/src/builtins/generator/mod.rs b/core/engine/src/builtins/generator/mod.rs similarity index 100% rename from boa_engine/src/builtins/generator/mod.rs rename to core/engine/src/builtins/generator/mod.rs diff --git a/boa_engine/src/builtins/generator_function/mod.rs b/core/engine/src/builtins/generator_function/mod.rs similarity index 100% rename from boa_engine/src/builtins/generator_function/mod.rs rename to core/engine/src/builtins/generator_function/mod.rs diff --git a/boa_engine/src/builtins/intl/collator/mod.rs b/core/engine/src/builtins/intl/collator/mod.rs similarity index 100% rename from boa_engine/src/builtins/intl/collator/mod.rs rename to core/engine/src/builtins/intl/collator/mod.rs diff --git a/boa_engine/src/builtins/intl/collator/options.rs b/core/engine/src/builtins/intl/collator/options.rs similarity index 100% rename from boa_engine/src/builtins/intl/collator/options.rs rename to core/engine/src/builtins/intl/collator/options.rs diff --git a/boa_engine/src/builtins/intl/date_time_format.rs b/core/engine/src/builtins/intl/date_time_format.rs similarity index 100% rename from boa_engine/src/builtins/intl/date_time_format.rs rename to core/engine/src/builtins/intl/date_time_format.rs diff --git a/boa_engine/src/builtins/intl/list_format/mod.rs b/core/engine/src/builtins/intl/list_format/mod.rs similarity index 100% rename from boa_engine/src/builtins/intl/list_format/mod.rs rename to core/engine/src/builtins/intl/list_format/mod.rs diff --git a/boa_engine/src/builtins/intl/list_format/options.rs b/core/engine/src/builtins/intl/list_format/options.rs similarity index 100% rename from boa_engine/src/builtins/intl/list_format/options.rs rename to core/engine/src/builtins/intl/list_format/options.rs diff --git a/boa_engine/src/builtins/intl/locale/mod.rs b/core/engine/src/builtins/intl/locale/mod.rs similarity index 100% rename from boa_engine/src/builtins/intl/locale/mod.rs rename to core/engine/src/builtins/intl/locale/mod.rs diff --git a/boa_engine/src/builtins/intl/locale/options.rs b/core/engine/src/builtins/intl/locale/options.rs similarity index 100% rename from boa_engine/src/builtins/intl/locale/options.rs rename to core/engine/src/builtins/intl/locale/options.rs diff --git a/boa_engine/src/builtins/intl/locale/tests.rs b/core/engine/src/builtins/intl/locale/tests.rs similarity index 100% rename from boa_engine/src/builtins/intl/locale/tests.rs rename to core/engine/src/builtins/intl/locale/tests.rs diff --git a/boa_engine/src/builtins/intl/locale/utils.rs b/core/engine/src/builtins/intl/locale/utils.rs similarity index 100% rename from boa_engine/src/builtins/intl/locale/utils.rs rename to core/engine/src/builtins/intl/locale/utils.rs diff --git a/boa_engine/src/builtins/intl/mod.rs b/core/engine/src/builtins/intl/mod.rs similarity index 100% rename from boa_engine/src/builtins/intl/mod.rs rename to core/engine/src/builtins/intl/mod.rs diff --git a/boa_engine/src/builtins/intl/number_format/mod.rs b/core/engine/src/builtins/intl/number_format/mod.rs similarity index 100% rename from boa_engine/src/builtins/intl/number_format/mod.rs rename to core/engine/src/builtins/intl/number_format/mod.rs diff --git a/boa_engine/src/builtins/intl/number_format/options.rs b/core/engine/src/builtins/intl/number_format/options.rs similarity index 100% rename from boa_engine/src/builtins/intl/number_format/options.rs rename to core/engine/src/builtins/intl/number_format/options.rs diff --git a/boa_engine/src/builtins/intl/number_format/utils.rs b/core/engine/src/builtins/intl/number_format/utils.rs similarity index 100% rename from boa_engine/src/builtins/intl/number_format/utils.rs rename to core/engine/src/builtins/intl/number_format/utils.rs diff --git a/boa_engine/src/builtins/intl/options.rs b/core/engine/src/builtins/intl/options.rs similarity index 100% rename from boa_engine/src/builtins/intl/options.rs rename to core/engine/src/builtins/intl/options.rs diff --git a/boa_engine/src/builtins/intl/plural_rules/mod.rs b/core/engine/src/builtins/intl/plural_rules/mod.rs similarity index 100% rename from boa_engine/src/builtins/intl/plural_rules/mod.rs rename to core/engine/src/builtins/intl/plural_rules/mod.rs diff --git a/boa_engine/src/builtins/intl/plural_rules/options.rs b/core/engine/src/builtins/intl/plural_rules/options.rs similarity index 100% rename from boa_engine/src/builtins/intl/plural_rules/options.rs rename to core/engine/src/builtins/intl/plural_rules/options.rs diff --git a/boa_engine/src/builtins/intl/segmenter/iterator.rs b/core/engine/src/builtins/intl/segmenter/iterator.rs similarity index 100% rename from boa_engine/src/builtins/intl/segmenter/iterator.rs rename to core/engine/src/builtins/intl/segmenter/iterator.rs diff --git a/boa_engine/src/builtins/intl/segmenter/mod.rs b/core/engine/src/builtins/intl/segmenter/mod.rs similarity index 100% rename from boa_engine/src/builtins/intl/segmenter/mod.rs rename to core/engine/src/builtins/intl/segmenter/mod.rs diff --git a/boa_engine/src/builtins/intl/segmenter/options.rs b/core/engine/src/builtins/intl/segmenter/options.rs similarity index 100% rename from boa_engine/src/builtins/intl/segmenter/options.rs rename to core/engine/src/builtins/intl/segmenter/options.rs diff --git a/boa_engine/src/builtins/intl/segmenter/segments.rs b/core/engine/src/builtins/intl/segmenter/segments.rs similarity index 100% rename from boa_engine/src/builtins/intl/segmenter/segments.rs rename to core/engine/src/builtins/intl/segmenter/segments.rs diff --git a/boa_engine/src/builtins/iterable/async_from_sync_iterator.rs b/core/engine/src/builtins/iterable/async_from_sync_iterator.rs similarity index 100% rename from boa_engine/src/builtins/iterable/async_from_sync_iterator.rs rename to core/engine/src/builtins/iterable/async_from_sync_iterator.rs diff --git a/boa_engine/src/builtins/iterable/mod.rs b/core/engine/src/builtins/iterable/mod.rs similarity index 100% rename from boa_engine/src/builtins/iterable/mod.rs rename to core/engine/src/builtins/iterable/mod.rs diff --git a/boa_engine/src/builtins/json/mod.rs b/core/engine/src/builtins/json/mod.rs similarity index 100% rename from boa_engine/src/builtins/json/mod.rs rename to core/engine/src/builtins/json/mod.rs diff --git a/boa_engine/src/builtins/json/tests.rs b/core/engine/src/builtins/json/tests.rs similarity index 100% rename from boa_engine/src/builtins/json/tests.rs rename to core/engine/src/builtins/json/tests.rs diff --git a/boa_engine/src/builtins/map/map_iterator.rs b/core/engine/src/builtins/map/map_iterator.rs similarity index 100% rename from boa_engine/src/builtins/map/map_iterator.rs rename to core/engine/src/builtins/map/map_iterator.rs diff --git a/boa_engine/src/builtins/map/mod.rs b/core/engine/src/builtins/map/mod.rs similarity index 100% rename from boa_engine/src/builtins/map/mod.rs rename to core/engine/src/builtins/map/mod.rs diff --git a/boa_engine/src/builtins/map/ordered_map.rs b/core/engine/src/builtins/map/ordered_map.rs similarity index 100% rename from boa_engine/src/builtins/map/ordered_map.rs rename to core/engine/src/builtins/map/ordered_map.rs diff --git a/boa_engine/src/builtins/map/tests.rs b/core/engine/src/builtins/map/tests.rs similarity index 100% rename from boa_engine/src/builtins/map/tests.rs rename to core/engine/src/builtins/map/tests.rs diff --git a/boa_engine/src/builtins/math/mod.rs b/core/engine/src/builtins/math/mod.rs similarity index 100% rename from boa_engine/src/builtins/math/mod.rs rename to core/engine/src/builtins/math/mod.rs diff --git a/boa_engine/src/builtins/math/tests.rs b/core/engine/src/builtins/math/tests.rs similarity index 100% rename from boa_engine/src/builtins/math/tests.rs rename to core/engine/src/builtins/math/tests.rs diff --git a/boa_engine/src/builtins/mod.rs b/core/engine/src/builtins/mod.rs similarity index 100% rename from boa_engine/src/builtins/mod.rs rename to core/engine/src/builtins/mod.rs diff --git a/boa_engine/src/builtins/number/conversions.rs b/core/engine/src/builtins/number/conversions.rs similarity index 100% rename from boa_engine/src/builtins/number/conversions.rs rename to core/engine/src/builtins/number/conversions.rs diff --git a/boa_engine/src/builtins/number/globals.rs b/core/engine/src/builtins/number/globals.rs similarity index 100% rename from boa_engine/src/builtins/number/globals.rs rename to core/engine/src/builtins/number/globals.rs diff --git a/boa_engine/src/builtins/number/mod.rs b/core/engine/src/builtins/number/mod.rs similarity index 100% rename from boa_engine/src/builtins/number/mod.rs rename to core/engine/src/builtins/number/mod.rs diff --git a/boa_engine/src/builtins/number/tests.rs b/core/engine/src/builtins/number/tests.rs similarity index 100% rename from boa_engine/src/builtins/number/tests.rs rename to core/engine/src/builtins/number/tests.rs diff --git a/boa_engine/src/builtins/object/for_in_iterator.rs b/core/engine/src/builtins/object/for_in_iterator.rs similarity index 100% rename from boa_engine/src/builtins/object/for_in_iterator.rs rename to core/engine/src/builtins/object/for_in_iterator.rs diff --git a/boa_engine/src/builtins/object/mod.rs b/core/engine/src/builtins/object/mod.rs similarity index 100% rename from boa_engine/src/builtins/object/mod.rs rename to core/engine/src/builtins/object/mod.rs diff --git a/boa_engine/src/builtins/object/tests.rs b/core/engine/src/builtins/object/tests.rs similarity index 100% rename from boa_engine/src/builtins/object/tests.rs rename to core/engine/src/builtins/object/tests.rs diff --git a/boa_engine/src/builtins/options.rs b/core/engine/src/builtins/options.rs similarity index 100% rename from boa_engine/src/builtins/options.rs rename to core/engine/src/builtins/options.rs diff --git a/boa_engine/src/builtins/promise/mod.rs b/core/engine/src/builtins/promise/mod.rs similarity index 100% rename from boa_engine/src/builtins/promise/mod.rs rename to core/engine/src/builtins/promise/mod.rs diff --git a/boa_engine/src/builtins/promise/tests.rs b/core/engine/src/builtins/promise/tests.rs similarity index 100% rename from boa_engine/src/builtins/promise/tests.rs rename to core/engine/src/builtins/promise/tests.rs diff --git a/boa_engine/src/builtins/proxy/mod.rs b/core/engine/src/builtins/proxy/mod.rs similarity index 100% rename from boa_engine/src/builtins/proxy/mod.rs rename to core/engine/src/builtins/proxy/mod.rs diff --git a/boa_engine/src/builtins/reflect/mod.rs b/core/engine/src/builtins/reflect/mod.rs similarity index 100% rename from boa_engine/src/builtins/reflect/mod.rs rename to core/engine/src/builtins/reflect/mod.rs diff --git a/boa_engine/src/builtins/reflect/tests.rs b/core/engine/src/builtins/reflect/tests.rs similarity index 100% rename from boa_engine/src/builtins/reflect/tests.rs rename to core/engine/src/builtins/reflect/tests.rs diff --git a/boa_engine/src/builtins/regexp/mod.rs b/core/engine/src/builtins/regexp/mod.rs similarity index 100% rename from boa_engine/src/builtins/regexp/mod.rs rename to core/engine/src/builtins/regexp/mod.rs diff --git a/boa_engine/src/builtins/regexp/regexp_string_iterator.rs b/core/engine/src/builtins/regexp/regexp_string_iterator.rs similarity index 100% rename from boa_engine/src/builtins/regexp/regexp_string_iterator.rs rename to core/engine/src/builtins/regexp/regexp_string_iterator.rs diff --git a/boa_engine/src/builtins/regexp/tests.rs b/core/engine/src/builtins/regexp/tests.rs similarity index 100% rename from boa_engine/src/builtins/regexp/tests.rs rename to core/engine/src/builtins/regexp/tests.rs diff --git a/boa_engine/src/builtins/set/mod.rs b/core/engine/src/builtins/set/mod.rs similarity index 100% rename from boa_engine/src/builtins/set/mod.rs rename to core/engine/src/builtins/set/mod.rs diff --git a/boa_engine/src/builtins/set/ordered_set.rs b/core/engine/src/builtins/set/ordered_set.rs similarity index 100% rename from boa_engine/src/builtins/set/ordered_set.rs rename to core/engine/src/builtins/set/ordered_set.rs diff --git a/boa_engine/src/builtins/set/set_iterator.rs b/core/engine/src/builtins/set/set_iterator.rs similarity index 100% rename from boa_engine/src/builtins/set/set_iterator.rs rename to core/engine/src/builtins/set/set_iterator.rs diff --git a/boa_engine/src/builtins/set/tests.rs b/core/engine/src/builtins/set/tests.rs similarity index 100% rename from boa_engine/src/builtins/set/tests.rs rename to core/engine/src/builtins/set/tests.rs diff --git a/boa_engine/src/builtins/string/mod.rs b/core/engine/src/builtins/string/mod.rs similarity index 100% rename from boa_engine/src/builtins/string/mod.rs rename to core/engine/src/builtins/string/mod.rs diff --git a/boa_engine/src/builtins/string/string_iterator.rs b/core/engine/src/builtins/string/string_iterator.rs similarity index 100% rename from boa_engine/src/builtins/string/string_iterator.rs rename to core/engine/src/builtins/string/string_iterator.rs diff --git a/boa_engine/src/builtins/string/tests.rs b/core/engine/src/builtins/string/tests.rs similarity index 100% rename from boa_engine/src/builtins/string/tests.rs rename to core/engine/src/builtins/string/tests.rs diff --git a/boa_engine/src/builtins/symbol/mod.rs b/core/engine/src/builtins/symbol/mod.rs similarity index 100% rename from boa_engine/src/builtins/symbol/mod.rs rename to core/engine/src/builtins/symbol/mod.rs diff --git a/boa_engine/src/builtins/symbol/tests.rs b/core/engine/src/builtins/symbol/tests.rs similarity index 100% rename from boa_engine/src/builtins/symbol/tests.rs rename to core/engine/src/builtins/symbol/tests.rs diff --git a/boa_engine/src/builtins/temporal/calendar/mod.rs b/core/engine/src/builtins/temporal/calendar/mod.rs similarity index 100% rename from boa_engine/src/builtins/temporal/calendar/mod.rs rename to core/engine/src/builtins/temporal/calendar/mod.rs diff --git a/boa_engine/src/builtins/temporal/calendar/object.rs b/core/engine/src/builtins/temporal/calendar/object.rs similarity index 100% rename from boa_engine/src/builtins/temporal/calendar/object.rs rename to core/engine/src/builtins/temporal/calendar/object.rs diff --git a/boa_engine/src/builtins/temporal/calendar/tests.rs b/core/engine/src/builtins/temporal/calendar/tests.rs similarity index 100% rename from boa_engine/src/builtins/temporal/calendar/tests.rs rename to core/engine/src/builtins/temporal/calendar/tests.rs diff --git a/boa_engine/src/builtins/temporal/duration/mod.rs b/core/engine/src/builtins/temporal/duration/mod.rs similarity index 100% rename from boa_engine/src/builtins/temporal/duration/mod.rs rename to core/engine/src/builtins/temporal/duration/mod.rs diff --git a/boa_engine/src/builtins/temporal/duration/tests.rs b/core/engine/src/builtins/temporal/duration/tests.rs similarity index 100% rename from boa_engine/src/builtins/temporal/duration/tests.rs rename to core/engine/src/builtins/temporal/duration/tests.rs diff --git a/boa_engine/src/builtins/temporal/error.rs b/core/engine/src/builtins/temporal/error.rs similarity index 100% rename from boa_engine/src/builtins/temporal/error.rs rename to core/engine/src/builtins/temporal/error.rs diff --git a/boa_engine/src/builtins/temporal/fields.rs b/core/engine/src/builtins/temporal/fields.rs similarity index 100% rename from boa_engine/src/builtins/temporal/fields.rs rename to core/engine/src/builtins/temporal/fields.rs diff --git a/boa_engine/src/builtins/temporal/instant/mod.rs b/core/engine/src/builtins/temporal/instant/mod.rs similarity index 100% rename from boa_engine/src/builtins/temporal/instant/mod.rs rename to core/engine/src/builtins/temporal/instant/mod.rs diff --git a/boa_engine/src/builtins/temporal/mod.rs b/core/engine/src/builtins/temporal/mod.rs similarity index 100% rename from boa_engine/src/builtins/temporal/mod.rs rename to core/engine/src/builtins/temporal/mod.rs diff --git a/boa_engine/src/builtins/temporal/now.rs b/core/engine/src/builtins/temporal/now.rs similarity index 100% rename from boa_engine/src/builtins/temporal/now.rs rename to core/engine/src/builtins/temporal/now.rs diff --git a/boa_engine/src/builtins/temporal/options.rs b/core/engine/src/builtins/temporal/options.rs similarity index 100% rename from boa_engine/src/builtins/temporal/options.rs rename to core/engine/src/builtins/temporal/options.rs diff --git a/boa_engine/src/builtins/temporal/plain_date/mod.rs b/core/engine/src/builtins/temporal/plain_date/mod.rs similarity index 100% rename from boa_engine/src/builtins/temporal/plain_date/mod.rs rename to core/engine/src/builtins/temporal/plain_date/mod.rs diff --git a/boa_engine/src/builtins/temporal/plain_date_time/mod.rs b/core/engine/src/builtins/temporal/plain_date_time/mod.rs similarity index 100% rename from boa_engine/src/builtins/temporal/plain_date_time/mod.rs rename to core/engine/src/builtins/temporal/plain_date_time/mod.rs diff --git a/boa_engine/src/builtins/temporal/plain_month_day/mod.rs b/core/engine/src/builtins/temporal/plain_month_day/mod.rs similarity index 100% rename from boa_engine/src/builtins/temporal/plain_month_day/mod.rs rename to core/engine/src/builtins/temporal/plain_month_day/mod.rs diff --git a/boa_engine/src/builtins/temporal/plain_time/mod.rs b/core/engine/src/builtins/temporal/plain_time/mod.rs similarity index 100% rename from boa_engine/src/builtins/temporal/plain_time/mod.rs rename to core/engine/src/builtins/temporal/plain_time/mod.rs diff --git a/boa_engine/src/builtins/temporal/plain_year_month/mod.rs b/core/engine/src/builtins/temporal/plain_year_month/mod.rs similarity index 100% rename from boa_engine/src/builtins/temporal/plain_year_month/mod.rs rename to core/engine/src/builtins/temporal/plain_year_month/mod.rs diff --git a/boa_engine/src/builtins/temporal/tests.rs b/core/engine/src/builtins/temporal/tests.rs similarity index 100% rename from boa_engine/src/builtins/temporal/tests.rs rename to core/engine/src/builtins/temporal/tests.rs diff --git a/boa_engine/src/builtins/temporal/time_zone/mod.rs b/core/engine/src/builtins/temporal/time_zone/mod.rs similarity index 100% rename from boa_engine/src/builtins/temporal/time_zone/mod.rs rename to core/engine/src/builtins/temporal/time_zone/mod.rs diff --git a/boa_engine/src/builtins/temporal/zoned_date_time/mod.rs b/core/engine/src/builtins/temporal/zoned_date_time/mod.rs similarity index 100% rename from boa_engine/src/builtins/temporal/zoned_date_time/mod.rs rename to core/engine/src/builtins/temporal/zoned_date_time/mod.rs diff --git a/boa_engine/src/builtins/typed_array/builtin.rs b/core/engine/src/builtins/typed_array/builtin.rs similarity index 100% rename from boa_engine/src/builtins/typed_array/builtin.rs rename to core/engine/src/builtins/typed_array/builtin.rs diff --git a/boa_engine/src/builtins/typed_array/element/atomic.rs b/core/engine/src/builtins/typed_array/element/atomic.rs similarity index 100% rename from boa_engine/src/builtins/typed_array/element/atomic.rs rename to core/engine/src/builtins/typed_array/element/atomic.rs diff --git a/boa_engine/src/builtins/typed_array/element/mod.rs b/core/engine/src/builtins/typed_array/element/mod.rs similarity index 100% rename from boa_engine/src/builtins/typed_array/element/mod.rs rename to core/engine/src/builtins/typed_array/element/mod.rs diff --git a/boa_engine/src/builtins/typed_array/integer_indexed_object.rs b/core/engine/src/builtins/typed_array/integer_indexed_object.rs similarity index 100% rename from boa_engine/src/builtins/typed_array/integer_indexed_object.rs rename to core/engine/src/builtins/typed_array/integer_indexed_object.rs diff --git a/boa_engine/src/builtins/typed_array/mod.rs b/core/engine/src/builtins/typed_array/mod.rs similarity index 100% rename from boa_engine/src/builtins/typed_array/mod.rs rename to core/engine/src/builtins/typed_array/mod.rs diff --git a/boa_engine/src/builtins/uri/consts.rs b/core/engine/src/builtins/uri/consts.rs similarity index 100% rename from boa_engine/src/builtins/uri/consts.rs rename to core/engine/src/builtins/uri/consts.rs diff --git a/boa_engine/src/builtins/uri/mod.rs b/core/engine/src/builtins/uri/mod.rs similarity index 100% rename from boa_engine/src/builtins/uri/mod.rs rename to core/engine/src/builtins/uri/mod.rs diff --git a/boa_engine/src/builtins/weak/mod.rs b/core/engine/src/builtins/weak/mod.rs similarity index 100% rename from boa_engine/src/builtins/weak/mod.rs rename to core/engine/src/builtins/weak/mod.rs diff --git a/boa_engine/src/builtins/weak/weak_ref.rs b/core/engine/src/builtins/weak/weak_ref.rs similarity index 100% rename from boa_engine/src/builtins/weak/weak_ref.rs rename to core/engine/src/builtins/weak/weak_ref.rs diff --git a/boa_engine/src/builtins/weak_map/mod.rs b/core/engine/src/builtins/weak_map/mod.rs similarity index 100% rename from boa_engine/src/builtins/weak_map/mod.rs rename to core/engine/src/builtins/weak_map/mod.rs diff --git a/boa_engine/src/builtins/weak_set/mod.rs b/core/engine/src/builtins/weak_set/mod.rs similarity index 100% rename from boa_engine/src/builtins/weak_set/mod.rs rename to core/engine/src/builtins/weak_set/mod.rs diff --git a/boa_engine/src/bytecompiler/class.rs b/core/engine/src/bytecompiler/class.rs similarity index 100% rename from boa_engine/src/bytecompiler/class.rs rename to core/engine/src/bytecompiler/class.rs diff --git a/boa_engine/src/bytecompiler/declaration/declaration_pattern.rs b/core/engine/src/bytecompiler/declaration/declaration_pattern.rs similarity index 100% rename from boa_engine/src/bytecompiler/declaration/declaration_pattern.rs rename to core/engine/src/bytecompiler/declaration/declaration_pattern.rs diff --git a/boa_engine/src/bytecompiler/declaration/mod.rs b/core/engine/src/bytecompiler/declaration/mod.rs similarity index 100% rename from boa_engine/src/bytecompiler/declaration/mod.rs rename to core/engine/src/bytecompiler/declaration/mod.rs diff --git a/boa_engine/src/bytecompiler/declarations.rs b/core/engine/src/bytecompiler/declarations.rs similarity index 100% rename from boa_engine/src/bytecompiler/declarations.rs rename to core/engine/src/bytecompiler/declarations.rs diff --git a/boa_engine/src/bytecompiler/env.rs b/core/engine/src/bytecompiler/env.rs similarity index 100% rename from boa_engine/src/bytecompiler/env.rs rename to core/engine/src/bytecompiler/env.rs diff --git a/boa_engine/src/bytecompiler/expression/assign.rs b/core/engine/src/bytecompiler/expression/assign.rs similarity index 100% rename from boa_engine/src/bytecompiler/expression/assign.rs rename to core/engine/src/bytecompiler/expression/assign.rs diff --git a/boa_engine/src/bytecompiler/expression/binary.rs b/core/engine/src/bytecompiler/expression/binary.rs similarity index 100% rename from boa_engine/src/bytecompiler/expression/binary.rs rename to core/engine/src/bytecompiler/expression/binary.rs diff --git a/boa_engine/src/bytecompiler/expression/mod.rs b/core/engine/src/bytecompiler/expression/mod.rs similarity index 100% rename from boa_engine/src/bytecompiler/expression/mod.rs rename to core/engine/src/bytecompiler/expression/mod.rs diff --git a/boa_engine/src/bytecompiler/expression/object_literal.rs b/core/engine/src/bytecompiler/expression/object_literal.rs similarity index 100% rename from boa_engine/src/bytecompiler/expression/object_literal.rs rename to core/engine/src/bytecompiler/expression/object_literal.rs diff --git a/boa_engine/src/bytecompiler/expression/unary.rs b/core/engine/src/bytecompiler/expression/unary.rs similarity index 100% rename from boa_engine/src/bytecompiler/expression/unary.rs rename to core/engine/src/bytecompiler/expression/unary.rs diff --git a/boa_engine/src/bytecompiler/expression/update.rs b/core/engine/src/bytecompiler/expression/update.rs similarity index 100% rename from boa_engine/src/bytecompiler/expression/update.rs rename to core/engine/src/bytecompiler/expression/update.rs diff --git a/boa_engine/src/bytecompiler/function.rs b/core/engine/src/bytecompiler/function.rs similarity index 100% rename from boa_engine/src/bytecompiler/function.rs rename to core/engine/src/bytecompiler/function.rs diff --git a/boa_engine/src/bytecompiler/jump_control.rs b/core/engine/src/bytecompiler/jump_control.rs similarity index 100% rename from boa_engine/src/bytecompiler/jump_control.rs rename to core/engine/src/bytecompiler/jump_control.rs diff --git a/boa_engine/src/bytecompiler/mod.rs b/core/engine/src/bytecompiler/mod.rs similarity index 100% rename from boa_engine/src/bytecompiler/mod.rs rename to core/engine/src/bytecompiler/mod.rs diff --git a/boa_engine/src/bytecompiler/module.rs b/core/engine/src/bytecompiler/module.rs similarity index 100% rename from boa_engine/src/bytecompiler/module.rs rename to core/engine/src/bytecompiler/module.rs diff --git a/boa_engine/src/bytecompiler/statement/block.rs b/core/engine/src/bytecompiler/statement/block.rs similarity index 100% rename from boa_engine/src/bytecompiler/statement/block.rs rename to core/engine/src/bytecompiler/statement/block.rs diff --git a/boa_engine/src/bytecompiler/statement/break.rs b/core/engine/src/bytecompiler/statement/break.rs similarity index 100% rename from boa_engine/src/bytecompiler/statement/break.rs rename to core/engine/src/bytecompiler/statement/break.rs diff --git a/boa_engine/src/bytecompiler/statement/continue.rs b/core/engine/src/bytecompiler/statement/continue.rs similarity index 100% rename from boa_engine/src/bytecompiler/statement/continue.rs rename to core/engine/src/bytecompiler/statement/continue.rs diff --git a/boa_engine/src/bytecompiler/statement/if.rs b/core/engine/src/bytecompiler/statement/if.rs similarity index 100% rename from boa_engine/src/bytecompiler/statement/if.rs rename to core/engine/src/bytecompiler/statement/if.rs diff --git a/boa_engine/src/bytecompiler/statement/labelled.rs b/core/engine/src/bytecompiler/statement/labelled.rs similarity index 100% rename from boa_engine/src/bytecompiler/statement/labelled.rs rename to core/engine/src/bytecompiler/statement/labelled.rs diff --git a/boa_engine/src/bytecompiler/statement/loop.rs b/core/engine/src/bytecompiler/statement/loop.rs similarity index 100% rename from boa_engine/src/bytecompiler/statement/loop.rs rename to core/engine/src/bytecompiler/statement/loop.rs diff --git a/boa_engine/src/bytecompiler/statement/mod.rs b/core/engine/src/bytecompiler/statement/mod.rs similarity index 100% rename from boa_engine/src/bytecompiler/statement/mod.rs rename to core/engine/src/bytecompiler/statement/mod.rs diff --git a/boa_engine/src/bytecompiler/statement/switch.rs b/core/engine/src/bytecompiler/statement/switch.rs similarity index 100% rename from boa_engine/src/bytecompiler/statement/switch.rs rename to core/engine/src/bytecompiler/statement/switch.rs diff --git a/boa_engine/src/bytecompiler/statement/try.rs b/core/engine/src/bytecompiler/statement/try.rs similarity index 100% rename from boa_engine/src/bytecompiler/statement/try.rs rename to core/engine/src/bytecompiler/statement/try.rs diff --git a/boa_engine/src/bytecompiler/statement/with.rs b/core/engine/src/bytecompiler/statement/with.rs similarity index 100% rename from boa_engine/src/bytecompiler/statement/with.rs rename to core/engine/src/bytecompiler/statement/with.rs diff --git a/boa_engine/src/bytecompiler/utils.rs b/core/engine/src/bytecompiler/utils.rs similarity index 100% rename from boa_engine/src/bytecompiler/utils.rs rename to core/engine/src/bytecompiler/utils.rs diff --git a/boa_engine/src/class.rs b/core/engine/src/class.rs similarity index 100% rename from boa_engine/src/class.rs rename to core/engine/src/class.rs diff --git a/boa_engine/src/context/hooks.rs b/core/engine/src/context/hooks.rs similarity index 100% rename from boa_engine/src/context/hooks.rs rename to core/engine/src/context/hooks.rs diff --git a/boa_engine/src/context/icu.rs b/core/engine/src/context/icu.rs similarity index 100% rename from boa_engine/src/context/icu.rs rename to core/engine/src/context/icu.rs diff --git a/boa_engine/src/context/intrinsics.rs b/core/engine/src/context/intrinsics.rs similarity index 100% rename from boa_engine/src/context/intrinsics.rs rename to core/engine/src/context/intrinsics.rs diff --git a/boa_engine/src/context/mod.rs b/core/engine/src/context/mod.rs similarity index 100% rename from boa_engine/src/context/mod.rs rename to core/engine/src/context/mod.rs diff --git a/boa_engine/src/environments/compile.rs b/core/engine/src/environments/compile.rs similarity index 100% rename from boa_engine/src/environments/compile.rs rename to core/engine/src/environments/compile.rs diff --git a/boa_engine/src/environments/mod.rs b/core/engine/src/environments/mod.rs similarity index 100% rename from boa_engine/src/environments/mod.rs rename to core/engine/src/environments/mod.rs diff --git a/boa_engine/src/environments/runtime/declarative/function.rs b/core/engine/src/environments/runtime/declarative/function.rs similarity index 100% rename from boa_engine/src/environments/runtime/declarative/function.rs rename to core/engine/src/environments/runtime/declarative/function.rs diff --git a/boa_engine/src/environments/runtime/declarative/global.rs b/core/engine/src/environments/runtime/declarative/global.rs similarity index 100% rename from boa_engine/src/environments/runtime/declarative/global.rs rename to core/engine/src/environments/runtime/declarative/global.rs diff --git a/boa_engine/src/environments/runtime/declarative/lexical.rs b/core/engine/src/environments/runtime/declarative/lexical.rs similarity index 100% rename from boa_engine/src/environments/runtime/declarative/lexical.rs rename to core/engine/src/environments/runtime/declarative/lexical.rs diff --git a/boa_engine/src/environments/runtime/declarative/mod.rs b/core/engine/src/environments/runtime/declarative/mod.rs similarity index 100% rename from boa_engine/src/environments/runtime/declarative/mod.rs rename to core/engine/src/environments/runtime/declarative/mod.rs diff --git a/boa_engine/src/environments/runtime/declarative/module.rs b/core/engine/src/environments/runtime/declarative/module.rs similarity index 100% rename from boa_engine/src/environments/runtime/declarative/module.rs rename to core/engine/src/environments/runtime/declarative/module.rs diff --git a/boa_engine/src/environments/runtime/mod.rs b/core/engine/src/environments/runtime/mod.rs similarity index 100% rename from boa_engine/src/environments/runtime/mod.rs rename to core/engine/src/environments/runtime/mod.rs diff --git a/boa_engine/src/environments/runtime/private.rs b/core/engine/src/environments/runtime/private.rs similarity index 100% rename from boa_engine/src/environments/runtime/private.rs rename to core/engine/src/environments/runtime/private.rs diff --git a/boa_engine/src/environments/tests.rs b/core/engine/src/environments/tests.rs similarity index 100% rename from boa_engine/src/environments/tests.rs rename to core/engine/src/environments/tests.rs diff --git a/boa_engine/src/error.rs b/core/engine/src/error.rs similarity index 100% rename from boa_engine/src/error.rs rename to core/engine/src/error.rs diff --git a/boa_engine/src/host_defined.rs b/core/engine/src/host_defined.rs similarity index 100% rename from boa_engine/src/host_defined.rs rename to core/engine/src/host_defined.rs diff --git a/boa_engine/src/job.rs b/core/engine/src/job.rs similarity index 100% rename from boa_engine/src/job.rs rename to core/engine/src/job.rs diff --git a/boa_engine/src/lib.rs b/core/engine/src/lib.rs similarity index 100% rename from boa_engine/src/lib.rs rename to core/engine/src/lib.rs diff --git a/boa_engine/src/module/loader.rs b/core/engine/src/module/loader.rs similarity index 100% rename from boa_engine/src/module/loader.rs rename to core/engine/src/module/loader.rs diff --git a/boa_engine/src/module/mod.rs b/core/engine/src/module/mod.rs similarity index 100% rename from boa_engine/src/module/mod.rs rename to core/engine/src/module/mod.rs diff --git a/boa_engine/src/module/namespace.rs b/core/engine/src/module/namespace.rs similarity index 100% rename from boa_engine/src/module/namespace.rs rename to core/engine/src/module/namespace.rs diff --git a/boa_engine/src/module/source.rs b/core/engine/src/module/source.rs similarity index 100% rename from boa_engine/src/module/source.rs rename to core/engine/src/module/source.rs diff --git a/boa_engine/src/module/synthetic.rs b/core/engine/src/module/synthetic.rs similarity index 100% rename from boa_engine/src/module/synthetic.rs rename to core/engine/src/module/synthetic.rs diff --git a/boa_engine/src/native_function.rs b/core/engine/src/native_function.rs similarity index 100% rename from boa_engine/src/native_function.rs rename to core/engine/src/native_function.rs diff --git a/boa_engine/src/object/builtins/jsarray.rs b/core/engine/src/object/builtins/jsarray.rs similarity index 100% rename from boa_engine/src/object/builtins/jsarray.rs rename to core/engine/src/object/builtins/jsarray.rs diff --git a/boa_engine/src/object/builtins/jsarraybuffer.rs b/core/engine/src/object/builtins/jsarraybuffer.rs similarity index 100% rename from boa_engine/src/object/builtins/jsarraybuffer.rs rename to core/engine/src/object/builtins/jsarraybuffer.rs diff --git a/boa_engine/src/object/builtins/jsdataview.rs b/core/engine/src/object/builtins/jsdataview.rs similarity index 100% rename from boa_engine/src/object/builtins/jsdataview.rs rename to core/engine/src/object/builtins/jsdataview.rs diff --git a/boa_engine/src/object/builtins/jsdate.rs b/core/engine/src/object/builtins/jsdate.rs similarity index 100% rename from boa_engine/src/object/builtins/jsdate.rs rename to core/engine/src/object/builtins/jsdate.rs diff --git a/boa_engine/src/object/builtins/jsfunction.rs b/core/engine/src/object/builtins/jsfunction.rs similarity index 100% rename from boa_engine/src/object/builtins/jsfunction.rs rename to core/engine/src/object/builtins/jsfunction.rs diff --git a/boa_engine/src/object/builtins/jsgenerator.rs b/core/engine/src/object/builtins/jsgenerator.rs similarity index 100% rename from boa_engine/src/object/builtins/jsgenerator.rs rename to core/engine/src/object/builtins/jsgenerator.rs diff --git a/boa_engine/src/object/builtins/jsmap.rs b/core/engine/src/object/builtins/jsmap.rs similarity index 100% rename from boa_engine/src/object/builtins/jsmap.rs rename to core/engine/src/object/builtins/jsmap.rs diff --git a/boa_engine/src/object/builtins/jsmap_iterator.rs b/core/engine/src/object/builtins/jsmap_iterator.rs similarity index 100% rename from boa_engine/src/object/builtins/jsmap_iterator.rs rename to core/engine/src/object/builtins/jsmap_iterator.rs diff --git a/boa_engine/src/object/builtins/jspromise.rs b/core/engine/src/object/builtins/jspromise.rs similarity index 100% rename from boa_engine/src/object/builtins/jspromise.rs rename to core/engine/src/object/builtins/jspromise.rs diff --git a/boa_engine/src/object/builtins/jsproxy.rs b/core/engine/src/object/builtins/jsproxy.rs similarity index 100% rename from boa_engine/src/object/builtins/jsproxy.rs rename to core/engine/src/object/builtins/jsproxy.rs diff --git a/boa_engine/src/object/builtins/jsregexp.rs b/core/engine/src/object/builtins/jsregexp.rs similarity index 100% rename from boa_engine/src/object/builtins/jsregexp.rs rename to core/engine/src/object/builtins/jsregexp.rs diff --git a/boa_engine/src/object/builtins/jsset.rs b/core/engine/src/object/builtins/jsset.rs similarity index 100% rename from boa_engine/src/object/builtins/jsset.rs rename to core/engine/src/object/builtins/jsset.rs diff --git a/boa_engine/src/object/builtins/jsset_iterator.rs b/core/engine/src/object/builtins/jsset_iterator.rs similarity index 100% rename from boa_engine/src/object/builtins/jsset_iterator.rs rename to core/engine/src/object/builtins/jsset_iterator.rs diff --git a/boa_engine/src/object/builtins/jssharedarraybuffer.rs b/core/engine/src/object/builtins/jssharedarraybuffer.rs similarity index 100% rename from boa_engine/src/object/builtins/jssharedarraybuffer.rs rename to core/engine/src/object/builtins/jssharedarraybuffer.rs diff --git a/boa_engine/src/object/builtins/jstypedarray.rs b/core/engine/src/object/builtins/jstypedarray.rs similarity index 100% rename from boa_engine/src/object/builtins/jstypedarray.rs rename to core/engine/src/object/builtins/jstypedarray.rs diff --git a/boa_engine/src/object/builtins/mod.rs b/core/engine/src/object/builtins/mod.rs similarity index 100% rename from boa_engine/src/object/builtins/mod.rs rename to core/engine/src/object/builtins/mod.rs diff --git a/boa_engine/src/object/datatypes.rs b/core/engine/src/object/datatypes.rs similarity index 100% rename from boa_engine/src/object/datatypes.rs rename to core/engine/src/object/datatypes.rs diff --git a/boa_engine/src/object/internal_methods/immutable_prototype.rs b/core/engine/src/object/internal_methods/immutable_prototype.rs similarity index 100% rename from boa_engine/src/object/internal_methods/immutable_prototype.rs rename to core/engine/src/object/internal_methods/immutable_prototype.rs diff --git a/boa_engine/src/object/internal_methods/mod.rs b/core/engine/src/object/internal_methods/mod.rs similarity index 100% rename from boa_engine/src/object/internal_methods/mod.rs rename to core/engine/src/object/internal_methods/mod.rs diff --git a/boa_engine/src/object/internal_methods/string.rs b/core/engine/src/object/internal_methods/string.rs similarity index 100% rename from boa_engine/src/object/internal_methods/string.rs rename to core/engine/src/object/internal_methods/string.rs diff --git a/boa_engine/src/object/jsobject.rs b/core/engine/src/object/jsobject.rs similarity index 100% rename from boa_engine/src/object/jsobject.rs rename to core/engine/src/object/jsobject.rs diff --git a/boa_engine/src/object/mod.rs b/core/engine/src/object/mod.rs similarity index 100% rename from boa_engine/src/object/mod.rs rename to core/engine/src/object/mod.rs diff --git a/boa_engine/src/object/operations.rs b/core/engine/src/object/operations.rs similarity index 100% rename from boa_engine/src/object/operations.rs rename to core/engine/src/object/operations.rs diff --git a/boa_engine/src/object/property_map.rs b/core/engine/src/object/property_map.rs similarity index 100% rename from boa_engine/src/object/property_map.rs rename to core/engine/src/object/property_map.rs diff --git a/boa_engine/src/object/shape/mod.rs b/core/engine/src/object/shape/mod.rs similarity index 100% rename from boa_engine/src/object/shape/mod.rs rename to core/engine/src/object/shape/mod.rs diff --git a/boa_engine/src/object/shape/property_table.rs b/core/engine/src/object/shape/property_table.rs similarity index 100% rename from boa_engine/src/object/shape/property_table.rs rename to core/engine/src/object/shape/property_table.rs diff --git a/boa_engine/src/object/shape/root_shape.rs b/core/engine/src/object/shape/root_shape.rs similarity index 100% rename from boa_engine/src/object/shape/root_shape.rs rename to core/engine/src/object/shape/root_shape.rs diff --git a/boa_engine/src/object/shape/shared_shape/forward_transition.rs b/core/engine/src/object/shape/shared_shape/forward_transition.rs similarity index 100% rename from boa_engine/src/object/shape/shared_shape/forward_transition.rs rename to core/engine/src/object/shape/shared_shape/forward_transition.rs diff --git a/boa_engine/src/object/shape/shared_shape/mod.rs b/core/engine/src/object/shape/shared_shape/mod.rs similarity index 100% rename from boa_engine/src/object/shape/shared_shape/mod.rs rename to core/engine/src/object/shape/shared_shape/mod.rs diff --git a/boa_engine/src/object/shape/shared_shape/template.rs b/core/engine/src/object/shape/shared_shape/template.rs similarity index 100% rename from boa_engine/src/object/shape/shared_shape/template.rs rename to core/engine/src/object/shape/shared_shape/template.rs diff --git a/boa_engine/src/object/shape/shared_shape/tests.rs b/core/engine/src/object/shape/shared_shape/tests.rs similarity index 100% rename from boa_engine/src/object/shape/shared_shape/tests.rs rename to core/engine/src/object/shape/shared_shape/tests.rs diff --git a/boa_engine/src/object/shape/slot.rs b/core/engine/src/object/shape/slot.rs similarity index 100% rename from boa_engine/src/object/shape/slot.rs rename to core/engine/src/object/shape/slot.rs diff --git a/boa_engine/src/object/shape/unique_shape.rs b/core/engine/src/object/shape/unique_shape.rs similarity index 100% rename from boa_engine/src/object/shape/unique_shape.rs rename to core/engine/src/object/shape/unique_shape.rs diff --git a/boa_engine/src/object/tests.rs b/core/engine/src/object/tests.rs similarity index 100% rename from boa_engine/src/object/tests.rs rename to core/engine/src/object/tests.rs diff --git a/boa_engine/src/optimizer/mod.rs b/core/engine/src/optimizer/mod.rs similarity index 100% rename from boa_engine/src/optimizer/mod.rs rename to core/engine/src/optimizer/mod.rs diff --git a/boa_engine/src/optimizer/pass/constant_folding.rs b/core/engine/src/optimizer/pass/constant_folding.rs similarity index 100% rename from boa_engine/src/optimizer/pass/constant_folding.rs rename to core/engine/src/optimizer/pass/constant_folding.rs diff --git a/boa_engine/src/optimizer/pass/mod.rs b/core/engine/src/optimizer/pass/mod.rs similarity index 100% rename from boa_engine/src/optimizer/pass/mod.rs rename to core/engine/src/optimizer/pass/mod.rs diff --git a/boa_engine/src/optimizer/walker.rs b/core/engine/src/optimizer/walker.rs similarity index 100% rename from boa_engine/src/optimizer/walker.rs rename to core/engine/src/optimizer/walker.rs diff --git a/boa_engine/src/property/attribute/mod.rs b/core/engine/src/property/attribute/mod.rs similarity index 100% rename from boa_engine/src/property/attribute/mod.rs rename to core/engine/src/property/attribute/mod.rs diff --git a/boa_engine/src/property/attribute/tests.rs b/core/engine/src/property/attribute/tests.rs similarity index 100% rename from boa_engine/src/property/attribute/tests.rs rename to core/engine/src/property/attribute/tests.rs diff --git a/boa_engine/src/property/mod.rs b/core/engine/src/property/mod.rs similarity index 100% rename from boa_engine/src/property/mod.rs rename to core/engine/src/property/mod.rs diff --git a/boa_engine/src/property/nonmaxu32.rs b/core/engine/src/property/nonmaxu32.rs similarity index 100% rename from boa_engine/src/property/nonmaxu32.rs rename to core/engine/src/property/nonmaxu32.rs diff --git a/boa_engine/src/realm.rs b/core/engine/src/realm.rs similarity index 100% rename from boa_engine/src/realm.rs rename to core/engine/src/realm.rs diff --git a/boa_engine/src/script.rs b/core/engine/src/script.rs similarity index 100% rename from boa_engine/src/script.rs rename to core/engine/src/script.rs diff --git a/boa_engine/src/small_map/entry.rs b/core/engine/src/small_map/entry.rs similarity index 100% rename from boa_engine/src/small_map/entry.rs rename to core/engine/src/small_map/entry.rs diff --git a/boa_engine/src/small_map/mod.rs b/core/engine/src/small_map/mod.rs similarity index 100% rename from boa_engine/src/small_map/mod.rs rename to core/engine/src/small_map/mod.rs diff --git a/boa_engine/src/string/common.rs b/core/engine/src/string/common.rs similarity index 100% rename from boa_engine/src/string/common.rs rename to core/engine/src/string/common.rs diff --git a/boa_engine/src/string/mod.rs b/core/engine/src/string/mod.rs similarity index 100% rename from boa_engine/src/string/mod.rs rename to core/engine/src/string/mod.rs diff --git a/boa_engine/src/symbol.rs b/core/engine/src/symbol.rs similarity index 100% rename from boa_engine/src/symbol.rs rename to core/engine/src/symbol.rs diff --git a/boa_engine/src/sys/fallback/mod.rs b/core/engine/src/sys/fallback/mod.rs similarity index 100% rename from boa_engine/src/sys/fallback/mod.rs rename to core/engine/src/sys/fallback/mod.rs diff --git a/boa_engine/src/sys/js/mod.rs b/core/engine/src/sys/js/mod.rs similarity index 100% rename from boa_engine/src/sys/js/mod.rs rename to core/engine/src/sys/js/mod.rs diff --git a/boa_engine/src/sys/mod.rs b/core/engine/src/sys/mod.rs similarity index 100% rename from boa_engine/src/sys/mod.rs rename to core/engine/src/sys/mod.rs diff --git a/boa_engine/src/tagged.rs b/core/engine/src/tagged.rs similarity index 100% rename from boa_engine/src/tagged.rs rename to core/engine/src/tagged.rs diff --git a/boa_engine/src/tests/control_flow/loops.rs b/core/engine/src/tests/control_flow/loops.rs similarity index 100% rename from boa_engine/src/tests/control_flow/loops.rs rename to core/engine/src/tests/control_flow/loops.rs diff --git a/boa_engine/src/tests/control_flow/mod.rs b/core/engine/src/tests/control_flow/mod.rs similarity index 100% rename from boa_engine/src/tests/control_flow/mod.rs rename to core/engine/src/tests/control_flow/mod.rs diff --git a/boa_engine/src/tests/env.rs b/core/engine/src/tests/env.rs similarity index 100% rename from boa_engine/src/tests/env.rs rename to core/engine/src/tests/env.rs diff --git a/boa_engine/src/tests/function.rs b/core/engine/src/tests/function.rs similarity index 100% rename from boa_engine/src/tests/function.rs rename to core/engine/src/tests/function.rs diff --git a/boa_engine/src/tests/iterators.rs b/core/engine/src/tests/iterators.rs similarity index 100% rename from boa_engine/src/tests/iterators.rs rename to core/engine/src/tests/iterators.rs diff --git a/boa_engine/src/tests/mod.rs b/core/engine/src/tests/mod.rs similarity index 100% rename from boa_engine/src/tests/mod.rs rename to core/engine/src/tests/mod.rs diff --git a/boa_engine/src/tests/operators.rs b/core/engine/src/tests/operators.rs similarity index 100% rename from boa_engine/src/tests/operators.rs rename to core/engine/src/tests/operators.rs diff --git a/boa_engine/src/tests/promise.rs b/core/engine/src/tests/promise.rs similarity index 100% rename from boa_engine/src/tests/promise.rs rename to core/engine/src/tests/promise.rs diff --git a/boa_engine/src/tests/spread.rs b/core/engine/src/tests/spread.rs similarity index 100% rename from boa_engine/src/tests/spread.rs rename to core/engine/src/tests/spread.rs diff --git a/boa_engine/src/value/conversions/mod.rs b/core/engine/src/value/conversions/mod.rs similarity index 100% rename from boa_engine/src/value/conversions/mod.rs rename to core/engine/src/value/conversions/mod.rs diff --git a/boa_engine/src/value/conversions/serde_json.rs b/core/engine/src/value/conversions/serde_json.rs similarity index 100% rename from boa_engine/src/value/conversions/serde_json.rs rename to core/engine/src/value/conversions/serde_json.rs diff --git a/boa_engine/src/value/conversions/try_from_js.rs b/core/engine/src/value/conversions/try_from_js.rs similarity index 100% rename from boa_engine/src/value/conversions/try_from_js.rs rename to core/engine/src/value/conversions/try_from_js.rs diff --git a/boa_engine/src/value/display.rs b/core/engine/src/value/display.rs similarity index 100% rename from boa_engine/src/value/display.rs rename to core/engine/src/value/display.rs diff --git a/boa_engine/src/value/equality.rs b/core/engine/src/value/equality.rs similarity index 100% rename from boa_engine/src/value/equality.rs rename to core/engine/src/value/equality.rs diff --git a/boa_engine/src/value/hash.rs b/core/engine/src/value/hash.rs similarity index 100% rename from boa_engine/src/value/hash.rs rename to core/engine/src/value/hash.rs diff --git a/boa_engine/src/value/integer.rs b/core/engine/src/value/integer.rs similarity index 100% rename from boa_engine/src/value/integer.rs rename to core/engine/src/value/integer.rs diff --git a/boa_engine/src/value/mod.rs b/core/engine/src/value/mod.rs similarity index 100% rename from boa_engine/src/value/mod.rs rename to core/engine/src/value/mod.rs diff --git a/boa_engine/src/value/operations.rs b/core/engine/src/value/operations.rs similarity index 100% rename from boa_engine/src/value/operations.rs rename to core/engine/src/value/operations.rs diff --git a/boa_engine/src/value/tests.rs b/core/engine/src/value/tests.rs similarity index 100% rename from boa_engine/src/value/tests.rs rename to core/engine/src/value/tests.rs diff --git a/boa_engine/src/value/type.rs b/core/engine/src/value/type.rs similarity index 100% rename from boa_engine/src/value/type.rs rename to core/engine/src/value/type.rs diff --git a/boa_engine/src/vm/call_frame/mod.rs b/core/engine/src/vm/call_frame/mod.rs similarity index 100% rename from boa_engine/src/vm/call_frame/mod.rs rename to core/engine/src/vm/call_frame/mod.rs diff --git a/boa_engine/src/vm/code_block.rs b/core/engine/src/vm/code_block.rs similarity index 100% rename from boa_engine/src/vm/code_block.rs rename to core/engine/src/vm/code_block.rs diff --git a/boa_engine/src/vm/completion_record.rs b/core/engine/src/vm/completion_record.rs similarity index 100% rename from boa_engine/src/vm/completion_record.rs rename to core/engine/src/vm/completion_record.rs diff --git a/boa_engine/src/vm/flowgraph/color.rs b/core/engine/src/vm/flowgraph/color.rs similarity index 100% rename from boa_engine/src/vm/flowgraph/color.rs rename to core/engine/src/vm/flowgraph/color.rs diff --git a/boa_engine/src/vm/flowgraph/edge.rs b/core/engine/src/vm/flowgraph/edge.rs similarity index 100% rename from boa_engine/src/vm/flowgraph/edge.rs rename to core/engine/src/vm/flowgraph/edge.rs diff --git a/boa_engine/src/vm/flowgraph/graph.rs b/core/engine/src/vm/flowgraph/graph.rs similarity index 100% rename from boa_engine/src/vm/flowgraph/graph.rs rename to core/engine/src/vm/flowgraph/graph.rs diff --git a/boa_engine/src/vm/flowgraph/mod.rs b/core/engine/src/vm/flowgraph/mod.rs similarity index 100% rename from boa_engine/src/vm/flowgraph/mod.rs rename to core/engine/src/vm/flowgraph/mod.rs diff --git a/boa_engine/src/vm/flowgraph/node.rs b/core/engine/src/vm/flowgraph/node.rs similarity index 100% rename from boa_engine/src/vm/flowgraph/node.rs rename to core/engine/src/vm/flowgraph/node.rs diff --git a/boa_engine/src/vm/mod.rs b/core/engine/src/vm/mod.rs similarity index 100% rename from boa_engine/src/vm/mod.rs rename to core/engine/src/vm/mod.rs diff --git a/boa_engine/src/vm/opcode/arguments.rs b/core/engine/src/vm/opcode/arguments.rs similarity index 100% rename from boa_engine/src/vm/opcode/arguments.rs rename to core/engine/src/vm/opcode/arguments.rs diff --git a/boa_engine/src/vm/opcode/await/mod.rs b/core/engine/src/vm/opcode/await/mod.rs similarity index 100% rename from boa_engine/src/vm/opcode/await/mod.rs rename to core/engine/src/vm/opcode/await/mod.rs diff --git a/boa_engine/src/vm/opcode/binary_ops/logical.rs b/core/engine/src/vm/opcode/binary_ops/logical.rs similarity index 100% rename from boa_engine/src/vm/opcode/binary_ops/logical.rs rename to core/engine/src/vm/opcode/binary_ops/logical.rs diff --git a/boa_engine/src/vm/opcode/binary_ops/macro_defined.rs b/core/engine/src/vm/opcode/binary_ops/macro_defined.rs similarity index 100% rename from boa_engine/src/vm/opcode/binary_ops/macro_defined.rs rename to core/engine/src/vm/opcode/binary_ops/macro_defined.rs diff --git a/boa_engine/src/vm/opcode/binary_ops/mod.rs b/core/engine/src/vm/opcode/binary_ops/mod.rs similarity index 100% rename from boa_engine/src/vm/opcode/binary_ops/mod.rs rename to core/engine/src/vm/opcode/binary_ops/mod.rs diff --git a/boa_engine/src/vm/opcode/call/mod.rs b/core/engine/src/vm/opcode/call/mod.rs similarity index 100% rename from boa_engine/src/vm/opcode/call/mod.rs rename to core/engine/src/vm/opcode/call/mod.rs diff --git a/boa_engine/src/vm/opcode/concat/mod.rs b/core/engine/src/vm/opcode/concat/mod.rs similarity index 100% rename from boa_engine/src/vm/opcode/concat/mod.rs rename to core/engine/src/vm/opcode/concat/mod.rs diff --git a/boa_engine/src/vm/opcode/control_flow/jump.rs b/core/engine/src/vm/opcode/control_flow/jump.rs similarity index 100% rename from boa_engine/src/vm/opcode/control_flow/jump.rs rename to core/engine/src/vm/opcode/control_flow/jump.rs diff --git a/boa_engine/src/vm/opcode/control_flow/mod.rs b/core/engine/src/vm/opcode/control_flow/mod.rs similarity index 100% rename from boa_engine/src/vm/opcode/control_flow/mod.rs rename to core/engine/src/vm/opcode/control_flow/mod.rs diff --git a/boa_engine/src/vm/opcode/control_flow/return.rs b/core/engine/src/vm/opcode/control_flow/return.rs similarity index 100% rename from boa_engine/src/vm/opcode/control_flow/return.rs rename to core/engine/src/vm/opcode/control_flow/return.rs diff --git a/boa_engine/src/vm/opcode/control_flow/throw.rs b/core/engine/src/vm/opcode/control_flow/throw.rs similarity index 100% rename from boa_engine/src/vm/opcode/control_flow/throw.rs rename to core/engine/src/vm/opcode/control_flow/throw.rs diff --git a/boa_engine/src/vm/opcode/copy/mod.rs b/core/engine/src/vm/opcode/copy/mod.rs similarity index 100% rename from boa_engine/src/vm/opcode/copy/mod.rs rename to core/engine/src/vm/opcode/copy/mod.rs diff --git a/boa_engine/src/vm/opcode/define/class/getter.rs b/core/engine/src/vm/opcode/define/class/getter.rs similarity index 100% rename from boa_engine/src/vm/opcode/define/class/getter.rs rename to core/engine/src/vm/opcode/define/class/getter.rs diff --git a/boa_engine/src/vm/opcode/define/class/method.rs b/core/engine/src/vm/opcode/define/class/method.rs similarity index 100% rename from boa_engine/src/vm/opcode/define/class/method.rs rename to core/engine/src/vm/opcode/define/class/method.rs diff --git a/boa_engine/src/vm/opcode/define/class/mod.rs b/core/engine/src/vm/opcode/define/class/mod.rs similarity index 100% rename from boa_engine/src/vm/opcode/define/class/mod.rs rename to core/engine/src/vm/opcode/define/class/mod.rs diff --git a/boa_engine/src/vm/opcode/define/class/setter.rs b/core/engine/src/vm/opcode/define/class/setter.rs similarity index 100% rename from boa_engine/src/vm/opcode/define/class/setter.rs rename to core/engine/src/vm/opcode/define/class/setter.rs diff --git a/boa_engine/src/vm/opcode/define/mod.rs b/core/engine/src/vm/opcode/define/mod.rs similarity index 100% rename from boa_engine/src/vm/opcode/define/mod.rs rename to core/engine/src/vm/opcode/define/mod.rs diff --git a/boa_engine/src/vm/opcode/define/own_property.rs b/core/engine/src/vm/opcode/define/own_property.rs similarity index 100% rename from boa_engine/src/vm/opcode/define/own_property.rs rename to core/engine/src/vm/opcode/define/own_property.rs diff --git a/boa_engine/src/vm/opcode/delete/mod.rs b/core/engine/src/vm/opcode/delete/mod.rs similarity index 100% rename from boa_engine/src/vm/opcode/delete/mod.rs rename to core/engine/src/vm/opcode/delete/mod.rs diff --git a/boa_engine/src/vm/opcode/dup/mod.rs b/core/engine/src/vm/opcode/dup/mod.rs similarity index 100% rename from boa_engine/src/vm/opcode/dup/mod.rs rename to core/engine/src/vm/opcode/dup/mod.rs diff --git a/boa_engine/src/vm/opcode/environment/mod.rs b/core/engine/src/vm/opcode/environment/mod.rs similarity index 100% rename from boa_engine/src/vm/opcode/environment/mod.rs rename to core/engine/src/vm/opcode/environment/mod.rs diff --git a/boa_engine/src/vm/opcode/generator/mod.rs b/core/engine/src/vm/opcode/generator/mod.rs similarity index 100% rename from boa_engine/src/vm/opcode/generator/mod.rs rename to core/engine/src/vm/opcode/generator/mod.rs diff --git a/boa_engine/src/vm/opcode/generator/yield_stm.rs b/core/engine/src/vm/opcode/generator/yield_stm.rs similarity index 100% rename from boa_engine/src/vm/opcode/generator/yield_stm.rs rename to core/engine/src/vm/opcode/generator/yield_stm.rs diff --git a/boa_engine/src/vm/opcode/get/argument.rs b/core/engine/src/vm/opcode/get/argument.rs similarity index 100% rename from boa_engine/src/vm/opcode/get/argument.rs rename to core/engine/src/vm/opcode/get/argument.rs diff --git a/boa_engine/src/vm/opcode/get/function.rs b/core/engine/src/vm/opcode/get/function.rs similarity index 100% rename from boa_engine/src/vm/opcode/get/function.rs rename to core/engine/src/vm/opcode/get/function.rs diff --git a/boa_engine/src/vm/opcode/get/mod.rs b/core/engine/src/vm/opcode/get/mod.rs similarity index 100% rename from boa_engine/src/vm/opcode/get/mod.rs rename to core/engine/src/vm/opcode/get/mod.rs diff --git a/boa_engine/src/vm/opcode/get/name.rs b/core/engine/src/vm/opcode/get/name.rs similarity index 100% rename from boa_engine/src/vm/opcode/get/name.rs rename to core/engine/src/vm/opcode/get/name.rs diff --git a/boa_engine/src/vm/opcode/get/private.rs b/core/engine/src/vm/opcode/get/private.rs similarity index 100% rename from boa_engine/src/vm/opcode/get/private.rs rename to core/engine/src/vm/opcode/get/private.rs diff --git a/boa_engine/src/vm/opcode/get/property.rs b/core/engine/src/vm/opcode/get/property.rs similarity index 100% rename from boa_engine/src/vm/opcode/get/property.rs rename to core/engine/src/vm/opcode/get/property.rs diff --git a/boa_engine/src/vm/opcode/iteration/for_in.rs b/core/engine/src/vm/opcode/iteration/for_in.rs similarity index 100% rename from boa_engine/src/vm/opcode/iteration/for_in.rs rename to core/engine/src/vm/opcode/iteration/for_in.rs diff --git a/boa_engine/src/vm/opcode/iteration/get.rs b/core/engine/src/vm/opcode/iteration/get.rs similarity index 100% rename from boa_engine/src/vm/opcode/iteration/get.rs rename to core/engine/src/vm/opcode/iteration/get.rs diff --git a/boa_engine/src/vm/opcode/iteration/iterator.rs b/core/engine/src/vm/opcode/iteration/iterator.rs similarity index 100% rename from boa_engine/src/vm/opcode/iteration/iterator.rs rename to core/engine/src/vm/opcode/iteration/iterator.rs diff --git a/boa_engine/src/vm/opcode/iteration/loop_ops.rs b/core/engine/src/vm/opcode/iteration/loop_ops.rs similarity index 100% rename from boa_engine/src/vm/opcode/iteration/loop_ops.rs rename to core/engine/src/vm/opcode/iteration/loop_ops.rs diff --git a/boa_engine/src/vm/opcode/iteration/mod.rs b/core/engine/src/vm/opcode/iteration/mod.rs similarity index 100% rename from boa_engine/src/vm/opcode/iteration/mod.rs rename to core/engine/src/vm/opcode/iteration/mod.rs diff --git a/boa_engine/src/vm/opcode/meta/mod.rs b/core/engine/src/vm/opcode/meta/mod.rs similarity index 100% rename from boa_engine/src/vm/opcode/meta/mod.rs rename to core/engine/src/vm/opcode/meta/mod.rs diff --git a/boa_engine/src/vm/opcode/mod.rs b/core/engine/src/vm/opcode/mod.rs similarity index 100% rename from boa_engine/src/vm/opcode/mod.rs rename to core/engine/src/vm/opcode/mod.rs diff --git a/boa_engine/src/vm/opcode/modifier.rs b/core/engine/src/vm/opcode/modifier.rs similarity index 100% rename from boa_engine/src/vm/opcode/modifier.rs rename to core/engine/src/vm/opcode/modifier.rs diff --git a/boa_engine/src/vm/opcode/new/mod.rs b/core/engine/src/vm/opcode/new/mod.rs similarity index 100% rename from boa_engine/src/vm/opcode/new/mod.rs rename to core/engine/src/vm/opcode/new/mod.rs diff --git a/boa_engine/src/vm/opcode/nop/mod.rs b/core/engine/src/vm/opcode/nop/mod.rs similarity index 100% rename from boa_engine/src/vm/opcode/nop/mod.rs rename to core/engine/src/vm/opcode/nop/mod.rs diff --git a/boa_engine/src/vm/opcode/pop/mod.rs b/core/engine/src/vm/opcode/pop/mod.rs similarity index 100% rename from boa_engine/src/vm/opcode/pop/mod.rs rename to core/engine/src/vm/opcode/pop/mod.rs diff --git a/boa_engine/src/vm/opcode/push/array.rs b/core/engine/src/vm/opcode/push/array.rs similarity index 100% rename from boa_engine/src/vm/opcode/push/array.rs rename to core/engine/src/vm/opcode/push/array.rs diff --git a/boa_engine/src/vm/opcode/push/class/field.rs b/core/engine/src/vm/opcode/push/class/field.rs similarity index 100% rename from boa_engine/src/vm/opcode/push/class/field.rs rename to core/engine/src/vm/opcode/push/class/field.rs diff --git a/boa_engine/src/vm/opcode/push/class/mod.rs b/core/engine/src/vm/opcode/push/class/mod.rs similarity index 100% rename from boa_engine/src/vm/opcode/push/class/mod.rs rename to core/engine/src/vm/opcode/push/class/mod.rs diff --git a/boa_engine/src/vm/opcode/push/class/private.rs b/core/engine/src/vm/opcode/push/class/private.rs similarity index 100% rename from boa_engine/src/vm/opcode/push/class/private.rs rename to core/engine/src/vm/opcode/push/class/private.rs diff --git a/boa_engine/src/vm/opcode/push/environment.rs b/core/engine/src/vm/opcode/push/environment.rs similarity index 100% rename from boa_engine/src/vm/opcode/push/environment.rs rename to core/engine/src/vm/opcode/push/environment.rs diff --git a/boa_engine/src/vm/opcode/push/literal.rs b/core/engine/src/vm/opcode/push/literal.rs similarity index 100% rename from boa_engine/src/vm/opcode/push/literal.rs rename to core/engine/src/vm/opcode/push/literal.rs diff --git a/boa_engine/src/vm/opcode/push/mod.rs b/core/engine/src/vm/opcode/push/mod.rs similarity index 100% rename from boa_engine/src/vm/opcode/push/mod.rs rename to core/engine/src/vm/opcode/push/mod.rs diff --git a/boa_engine/src/vm/opcode/push/numbers.rs b/core/engine/src/vm/opcode/push/numbers.rs similarity index 100% rename from boa_engine/src/vm/opcode/push/numbers.rs rename to core/engine/src/vm/opcode/push/numbers.rs diff --git a/boa_engine/src/vm/opcode/push/object.rs b/core/engine/src/vm/opcode/push/object.rs similarity index 100% rename from boa_engine/src/vm/opcode/push/object.rs rename to core/engine/src/vm/opcode/push/object.rs diff --git a/boa_engine/src/vm/opcode/require/mod.rs b/core/engine/src/vm/opcode/require/mod.rs similarity index 100% rename from boa_engine/src/vm/opcode/require/mod.rs rename to core/engine/src/vm/opcode/require/mod.rs diff --git a/boa_engine/src/vm/opcode/rest_parameter/mod.rs b/core/engine/src/vm/opcode/rest_parameter/mod.rs similarity index 100% rename from boa_engine/src/vm/opcode/rest_parameter/mod.rs rename to core/engine/src/vm/opcode/rest_parameter/mod.rs diff --git a/boa_engine/src/vm/opcode/set/class_prototype.rs b/core/engine/src/vm/opcode/set/class_prototype.rs similarity index 100% rename from boa_engine/src/vm/opcode/set/class_prototype.rs rename to core/engine/src/vm/opcode/set/class_prototype.rs diff --git a/boa_engine/src/vm/opcode/set/home_object.rs b/core/engine/src/vm/opcode/set/home_object.rs similarity index 100% rename from boa_engine/src/vm/opcode/set/home_object.rs rename to core/engine/src/vm/opcode/set/home_object.rs diff --git a/boa_engine/src/vm/opcode/set/mod.rs b/core/engine/src/vm/opcode/set/mod.rs similarity index 100% rename from boa_engine/src/vm/opcode/set/mod.rs rename to core/engine/src/vm/opcode/set/mod.rs diff --git a/boa_engine/src/vm/opcode/set/name.rs b/core/engine/src/vm/opcode/set/name.rs similarity index 100% rename from boa_engine/src/vm/opcode/set/name.rs rename to core/engine/src/vm/opcode/set/name.rs diff --git a/boa_engine/src/vm/opcode/set/private.rs b/core/engine/src/vm/opcode/set/private.rs similarity index 100% rename from boa_engine/src/vm/opcode/set/private.rs rename to core/engine/src/vm/opcode/set/private.rs diff --git a/boa_engine/src/vm/opcode/set/property.rs b/core/engine/src/vm/opcode/set/property.rs similarity index 100% rename from boa_engine/src/vm/opcode/set/property.rs rename to core/engine/src/vm/opcode/set/property.rs diff --git a/boa_engine/src/vm/opcode/set/prototype.rs b/core/engine/src/vm/opcode/set/prototype.rs similarity index 100% rename from boa_engine/src/vm/opcode/set/prototype.rs rename to core/engine/src/vm/opcode/set/prototype.rs diff --git a/boa_engine/src/vm/opcode/swap/mod.rs b/core/engine/src/vm/opcode/swap/mod.rs similarity index 100% rename from boa_engine/src/vm/opcode/swap/mod.rs rename to core/engine/src/vm/opcode/swap/mod.rs diff --git a/boa_engine/src/vm/opcode/switch/mod.rs b/core/engine/src/vm/opcode/switch/mod.rs similarity index 100% rename from boa_engine/src/vm/opcode/switch/mod.rs rename to core/engine/src/vm/opcode/switch/mod.rs diff --git a/boa_engine/src/vm/opcode/templates/mod.rs b/core/engine/src/vm/opcode/templates/mod.rs similarity index 100% rename from boa_engine/src/vm/opcode/templates/mod.rs rename to core/engine/src/vm/opcode/templates/mod.rs diff --git a/boa_engine/src/vm/opcode/to/mod.rs b/core/engine/src/vm/opcode/to/mod.rs similarity index 100% rename from boa_engine/src/vm/opcode/to/mod.rs rename to core/engine/src/vm/opcode/to/mod.rs diff --git a/boa_engine/src/vm/opcode/unary_ops/decrement.rs b/core/engine/src/vm/opcode/unary_ops/decrement.rs similarity index 100% rename from boa_engine/src/vm/opcode/unary_ops/decrement.rs rename to core/engine/src/vm/opcode/unary_ops/decrement.rs diff --git a/boa_engine/src/vm/opcode/unary_ops/increment.rs b/core/engine/src/vm/opcode/unary_ops/increment.rs similarity index 100% rename from boa_engine/src/vm/opcode/unary_ops/increment.rs rename to core/engine/src/vm/opcode/unary_ops/increment.rs diff --git a/boa_engine/src/vm/opcode/unary_ops/logical.rs b/core/engine/src/vm/opcode/unary_ops/logical.rs similarity index 100% rename from boa_engine/src/vm/opcode/unary_ops/logical.rs rename to core/engine/src/vm/opcode/unary_ops/logical.rs diff --git a/boa_engine/src/vm/opcode/unary_ops/mod.rs b/core/engine/src/vm/opcode/unary_ops/mod.rs similarity index 100% rename from boa_engine/src/vm/opcode/unary_ops/mod.rs rename to core/engine/src/vm/opcode/unary_ops/mod.rs diff --git a/boa_engine/src/vm/opcode/unary_ops/void.rs b/core/engine/src/vm/opcode/unary_ops/void.rs similarity index 100% rename from boa_engine/src/vm/opcode/unary_ops/void.rs rename to core/engine/src/vm/opcode/unary_ops/void.rs diff --git a/boa_engine/src/vm/opcode/value/mod.rs b/core/engine/src/vm/opcode/value/mod.rs similarity index 100% rename from boa_engine/src/vm/opcode/value/mod.rs rename to core/engine/src/vm/opcode/value/mod.rs diff --git a/boa_engine/src/vm/runtime_limits.rs b/core/engine/src/vm/runtime_limits.rs similarity index 100% rename from boa_engine/src/vm/runtime_limits.rs rename to core/engine/src/vm/runtime_limits.rs diff --git a/boa_engine/src/vm/tests.rs b/core/engine/src/vm/tests.rs similarity index 100% rename from boa_engine/src/vm/tests.rs rename to core/engine/src/vm/tests.rs diff --git a/boa_gc/ABOUT.md b/core/gc/ABOUT.md similarity index 100% rename from boa_gc/ABOUT.md rename to core/gc/ABOUT.md diff --git a/boa_gc/Cargo.toml b/core/gc/Cargo.toml similarity index 100% rename from boa_gc/Cargo.toml rename to core/gc/Cargo.toml diff --git a/boa_gc/src/cell.rs b/core/gc/src/cell.rs similarity index 100% rename from boa_gc/src/cell.rs rename to core/gc/src/cell.rs diff --git a/boa_gc/src/internals/ephemeron_box.rs b/core/gc/src/internals/ephemeron_box.rs similarity index 100% rename from boa_gc/src/internals/ephemeron_box.rs rename to core/gc/src/internals/ephemeron_box.rs diff --git a/boa_gc/src/internals/gc_box.rs b/core/gc/src/internals/gc_box.rs similarity index 100% rename from boa_gc/src/internals/gc_box.rs rename to core/gc/src/internals/gc_box.rs diff --git a/boa_gc/src/internals/mod.rs b/core/gc/src/internals/mod.rs similarity index 100% rename from boa_gc/src/internals/mod.rs rename to core/gc/src/internals/mod.rs diff --git a/boa_gc/src/internals/weak_map_box.rs b/core/gc/src/internals/weak_map_box.rs similarity index 100% rename from boa_gc/src/internals/weak_map_box.rs rename to core/gc/src/internals/weak_map_box.rs diff --git a/boa_gc/src/lib.rs b/core/gc/src/lib.rs similarity index 100% rename from boa_gc/src/lib.rs rename to core/gc/src/lib.rs diff --git a/boa_gc/src/pointers/ephemeron.rs b/core/gc/src/pointers/ephemeron.rs similarity index 100% rename from boa_gc/src/pointers/ephemeron.rs rename to core/gc/src/pointers/ephemeron.rs diff --git a/boa_gc/src/pointers/gc.rs b/core/gc/src/pointers/gc.rs similarity index 100% rename from boa_gc/src/pointers/gc.rs rename to core/gc/src/pointers/gc.rs diff --git a/boa_gc/src/pointers/mod.rs b/core/gc/src/pointers/mod.rs similarity index 100% rename from boa_gc/src/pointers/mod.rs rename to core/gc/src/pointers/mod.rs diff --git a/boa_gc/src/pointers/weak.rs b/core/gc/src/pointers/weak.rs similarity index 100% rename from boa_gc/src/pointers/weak.rs rename to core/gc/src/pointers/weak.rs diff --git a/boa_gc/src/pointers/weak_map.rs b/core/gc/src/pointers/weak_map.rs similarity index 100% rename from boa_gc/src/pointers/weak_map.rs rename to core/gc/src/pointers/weak_map.rs diff --git a/boa_gc/src/test/allocation.rs b/core/gc/src/test/allocation.rs similarity index 100% rename from boa_gc/src/test/allocation.rs rename to core/gc/src/test/allocation.rs diff --git a/boa_gc/src/test/cell.rs b/core/gc/src/test/cell.rs similarity index 100% rename from boa_gc/src/test/cell.rs rename to core/gc/src/test/cell.rs diff --git a/boa_gc/src/test/mod.rs b/core/gc/src/test/mod.rs similarity index 100% rename from boa_gc/src/test/mod.rs rename to core/gc/src/test/mod.rs diff --git a/boa_gc/src/test/weak.rs b/core/gc/src/test/weak.rs similarity index 100% rename from boa_gc/src/test/weak.rs rename to core/gc/src/test/weak.rs diff --git a/boa_gc/src/test/weak_map.rs b/core/gc/src/test/weak_map.rs similarity index 100% rename from boa_gc/src/test/weak_map.rs rename to core/gc/src/test/weak_map.rs diff --git a/boa_gc/src/trace.rs b/core/gc/src/trace.rs similarity index 100% rename from boa_gc/src/trace.rs rename to core/gc/src/trace.rs diff --git a/boa_icu_provider/ABOUT.md b/core/icu_provider/ABOUT.md similarity index 100% rename from boa_icu_provider/ABOUT.md rename to core/icu_provider/ABOUT.md diff --git a/boa_icu_provider/Cargo.toml b/core/icu_provider/Cargo.toml similarity index 100% rename from boa_icu_provider/Cargo.toml rename to core/icu_provider/Cargo.toml diff --git a/boa_icu_provider/README.md b/core/icu_provider/README.md similarity index 100% rename from boa_icu_provider/README.md rename to core/icu_provider/README.md diff --git a/boa_icu_provider/data/icudata.postcard b/core/icu_provider/data/icudata.postcard similarity index 100% rename from boa_icu_provider/data/icudata.postcard rename to core/icu_provider/data/icudata.postcard diff --git a/boa_icu_provider/src/bin/datagen.rs b/core/icu_provider/src/bin/datagen.rs similarity index 100% rename from boa_icu_provider/src/bin/datagen.rs rename to core/icu_provider/src/bin/datagen.rs diff --git a/boa_icu_provider/src/lib.rs b/core/icu_provider/src/lib.rs similarity index 100% rename from boa_icu_provider/src/lib.rs rename to core/icu_provider/src/lib.rs diff --git a/boa_interner/ABOUT.md b/core/interner/ABOUT.md similarity index 100% rename from boa_interner/ABOUT.md rename to core/interner/ABOUT.md diff --git a/boa_interner/Cargo.toml b/core/interner/Cargo.toml similarity index 100% rename from boa_interner/Cargo.toml rename to core/interner/Cargo.toml diff --git a/boa_interner/src/fixed_string.rs b/core/interner/src/fixed_string.rs similarity index 100% rename from boa_interner/src/fixed_string.rs rename to core/interner/src/fixed_string.rs diff --git a/boa_interner/src/interned_str.rs b/core/interner/src/interned_str.rs similarity index 100% rename from boa_interner/src/interned_str.rs rename to core/interner/src/interned_str.rs diff --git a/boa_interner/src/lib.rs b/core/interner/src/lib.rs similarity index 100% rename from boa_interner/src/lib.rs rename to core/interner/src/lib.rs diff --git a/boa_interner/src/raw.rs b/core/interner/src/raw.rs similarity index 100% rename from boa_interner/src/raw.rs rename to core/interner/src/raw.rs diff --git a/boa_interner/src/sym.rs b/core/interner/src/sym.rs similarity index 100% rename from boa_interner/src/sym.rs rename to core/interner/src/sym.rs diff --git a/boa_interner/src/tests.rs b/core/interner/src/tests.rs similarity index 100% rename from boa_interner/src/tests.rs rename to core/interner/src/tests.rs diff --git a/boa_macros/ABOUT.md b/core/macros/ABOUT.md similarity index 100% rename from boa_macros/ABOUT.md rename to core/macros/ABOUT.md diff --git a/boa_macros/Cargo.toml b/core/macros/Cargo.toml similarity index 100% rename from boa_macros/Cargo.toml rename to core/macros/Cargo.toml diff --git a/boa_macros/src/lib.rs b/core/macros/src/lib.rs similarity index 100% rename from boa_macros/src/lib.rs rename to core/macros/src/lib.rs diff --git a/boa_macros/tests/tests.rs b/core/macros/tests/tests.rs similarity index 100% rename from boa_macros/tests/tests.rs rename to core/macros/tests/tests.rs diff --git a/boa_parser/ABOUT.md b/core/parser/ABOUT.md similarity index 100% rename from boa_parser/ABOUT.md rename to core/parser/ABOUT.md diff --git a/boa_parser/Cargo.toml b/core/parser/Cargo.toml similarity index 100% rename from boa_parser/Cargo.toml rename to core/parser/Cargo.toml diff --git a/boa_parser/src/error/mod.rs b/core/parser/src/error/mod.rs similarity index 100% rename from boa_parser/src/error/mod.rs rename to core/parser/src/error/mod.rs diff --git a/boa_parser/src/error/tests.rs b/core/parser/src/error/tests.rs similarity index 100% rename from boa_parser/src/error/tests.rs rename to core/parser/src/error/tests.rs diff --git a/boa_parser/src/lexer/comment.rs b/core/parser/src/lexer/comment.rs similarity index 100% rename from boa_parser/src/lexer/comment.rs rename to core/parser/src/lexer/comment.rs diff --git a/boa_parser/src/lexer/cursor.rs b/core/parser/src/lexer/cursor.rs similarity index 100% rename from boa_parser/src/lexer/cursor.rs rename to core/parser/src/lexer/cursor.rs diff --git a/boa_parser/src/lexer/error.rs b/core/parser/src/lexer/error.rs similarity index 100% rename from boa_parser/src/lexer/error.rs rename to core/parser/src/lexer/error.rs diff --git a/boa_parser/src/lexer/identifier.rs b/core/parser/src/lexer/identifier.rs similarity index 100% rename from boa_parser/src/lexer/identifier.rs rename to core/parser/src/lexer/identifier.rs diff --git a/boa_parser/src/lexer/mod.rs b/core/parser/src/lexer/mod.rs similarity index 100% rename from boa_parser/src/lexer/mod.rs rename to core/parser/src/lexer/mod.rs diff --git a/boa_parser/src/lexer/number.rs b/core/parser/src/lexer/number.rs similarity index 100% rename from boa_parser/src/lexer/number.rs rename to core/parser/src/lexer/number.rs diff --git a/boa_parser/src/lexer/operator.rs b/core/parser/src/lexer/operator.rs similarity index 100% rename from boa_parser/src/lexer/operator.rs rename to core/parser/src/lexer/operator.rs diff --git a/boa_parser/src/lexer/private_identifier.rs b/core/parser/src/lexer/private_identifier.rs similarity index 100% rename from boa_parser/src/lexer/private_identifier.rs rename to core/parser/src/lexer/private_identifier.rs diff --git a/boa_parser/src/lexer/regex.rs b/core/parser/src/lexer/regex.rs similarity index 100% rename from boa_parser/src/lexer/regex.rs rename to core/parser/src/lexer/regex.rs diff --git a/boa_parser/src/lexer/spread.rs b/core/parser/src/lexer/spread.rs similarity index 100% rename from boa_parser/src/lexer/spread.rs rename to core/parser/src/lexer/spread.rs diff --git a/boa_parser/src/lexer/string.rs b/core/parser/src/lexer/string.rs similarity index 100% rename from boa_parser/src/lexer/string.rs rename to core/parser/src/lexer/string.rs diff --git a/boa_parser/src/lexer/template.rs b/core/parser/src/lexer/template.rs similarity index 100% rename from boa_parser/src/lexer/template.rs rename to core/parser/src/lexer/template.rs diff --git a/boa_parser/src/lexer/tests.rs b/core/parser/src/lexer/tests.rs similarity index 100% rename from boa_parser/src/lexer/tests.rs rename to core/parser/src/lexer/tests.rs diff --git a/boa_parser/src/lexer/token.rs b/core/parser/src/lexer/token.rs similarity index 100% rename from boa_parser/src/lexer/token.rs rename to core/parser/src/lexer/token.rs diff --git a/boa_parser/src/lib.rs b/core/parser/src/lib.rs similarity index 100% rename from boa_parser/src/lib.rs rename to core/parser/src/lib.rs diff --git a/boa_parser/src/parser/cursor/buffered_lexer/mod.rs b/core/parser/src/parser/cursor/buffered_lexer/mod.rs similarity index 100% rename from boa_parser/src/parser/cursor/buffered_lexer/mod.rs rename to core/parser/src/parser/cursor/buffered_lexer/mod.rs diff --git a/boa_parser/src/parser/cursor/buffered_lexer/tests.rs b/core/parser/src/parser/cursor/buffered_lexer/tests.rs similarity index 100% rename from boa_parser/src/parser/cursor/buffered_lexer/tests.rs rename to core/parser/src/parser/cursor/buffered_lexer/tests.rs diff --git a/boa_parser/src/parser/cursor/mod.rs b/core/parser/src/parser/cursor/mod.rs similarity index 100% rename from boa_parser/src/parser/cursor/mod.rs rename to core/parser/src/parser/cursor/mod.rs diff --git a/boa_parser/src/parser/expression/assignment/arrow_function.rs b/core/parser/src/parser/expression/assignment/arrow_function.rs similarity index 100% rename from boa_parser/src/parser/expression/assignment/arrow_function.rs rename to core/parser/src/parser/expression/assignment/arrow_function.rs diff --git a/boa_parser/src/parser/expression/assignment/async_arrow_function.rs b/core/parser/src/parser/expression/assignment/async_arrow_function.rs similarity index 100% rename from boa_parser/src/parser/expression/assignment/async_arrow_function.rs rename to core/parser/src/parser/expression/assignment/async_arrow_function.rs diff --git a/boa_parser/src/parser/expression/assignment/conditional.rs b/core/parser/src/parser/expression/assignment/conditional.rs similarity index 100% rename from boa_parser/src/parser/expression/assignment/conditional.rs rename to core/parser/src/parser/expression/assignment/conditional.rs diff --git a/boa_parser/src/parser/expression/assignment/exponentiation.rs b/core/parser/src/parser/expression/assignment/exponentiation.rs similarity index 100% rename from boa_parser/src/parser/expression/assignment/exponentiation.rs rename to core/parser/src/parser/expression/assignment/exponentiation.rs diff --git a/boa_parser/src/parser/expression/assignment/mod.rs b/core/parser/src/parser/expression/assignment/mod.rs similarity index 100% rename from boa_parser/src/parser/expression/assignment/mod.rs rename to core/parser/src/parser/expression/assignment/mod.rs diff --git a/boa_parser/src/parser/expression/assignment/yield.rs b/core/parser/src/parser/expression/assignment/yield.rs similarity index 100% rename from boa_parser/src/parser/expression/assignment/yield.rs rename to core/parser/src/parser/expression/assignment/yield.rs diff --git a/boa_parser/src/parser/expression/await_expr.rs b/core/parser/src/parser/expression/await_expr.rs similarity index 100% rename from boa_parser/src/parser/expression/await_expr.rs rename to core/parser/src/parser/expression/await_expr.rs diff --git a/boa_parser/src/parser/expression/identifiers.rs b/core/parser/src/parser/expression/identifiers.rs similarity index 100% rename from boa_parser/src/parser/expression/identifiers.rs rename to core/parser/src/parser/expression/identifiers.rs diff --git a/boa_parser/src/parser/expression/left_hand_side/arguments.rs b/core/parser/src/parser/expression/left_hand_side/arguments.rs similarity index 100% rename from boa_parser/src/parser/expression/left_hand_side/arguments.rs rename to core/parser/src/parser/expression/left_hand_side/arguments.rs diff --git a/boa_parser/src/parser/expression/left_hand_side/call.rs b/core/parser/src/parser/expression/left_hand_side/call.rs similarity index 100% rename from boa_parser/src/parser/expression/left_hand_side/call.rs rename to core/parser/src/parser/expression/left_hand_side/call.rs diff --git a/boa_parser/src/parser/expression/left_hand_side/member.rs b/core/parser/src/parser/expression/left_hand_side/member.rs similarity index 100% rename from boa_parser/src/parser/expression/left_hand_side/member.rs rename to core/parser/src/parser/expression/left_hand_side/member.rs diff --git a/boa_parser/src/parser/expression/left_hand_side/mod.rs b/core/parser/src/parser/expression/left_hand_side/mod.rs similarity index 100% rename from boa_parser/src/parser/expression/left_hand_side/mod.rs rename to core/parser/src/parser/expression/left_hand_side/mod.rs diff --git a/boa_parser/src/parser/expression/left_hand_side/optional/mod.rs b/core/parser/src/parser/expression/left_hand_side/optional/mod.rs similarity index 100% rename from boa_parser/src/parser/expression/left_hand_side/optional/mod.rs rename to core/parser/src/parser/expression/left_hand_side/optional/mod.rs diff --git a/boa_parser/src/parser/expression/left_hand_side/optional/tests.rs b/core/parser/src/parser/expression/left_hand_side/optional/tests.rs similarity index 100% rename from boa_parser/src/parser/expression/left_hand_side/optional/tests.rs rename to core/parser/src/parser/expression/left_hand_side/optional/tests.rs diff --git a/boa_parser/src/parser/expression/left_hand_side/template.rs b/core/parser/src/parser/expression/left_hand_side/template.rs similarity index 100% rename from boa_parser/src/parser/expression/left_hand_side/template.rs rename to core/parser/src/parser/expression/left_hand_side/template.rs diff --git a/boa_parser/src/parser/expression/left_hand_side/tests.rs b/core/parser/src/parser/expression/left_hand_side/tests.rs similarity index 100% rename from boa_parser/src/parser/expression/left_hand_side/tests.rs rename to core/parser/src/parser/expression/left_hand_side/tests.rs diff --git a/boa_parser/src/parser/expression/mod.rs b/core/parser/src/parser/expression/mod.rs similarity index 100% rename from boa_parser/src/parser/expression/mod.rs rename to core/parser/src/parser/expression/mod.rs diff --git a/boa_parser/src/parser/expression/primary/array_initializer/mod.rs b/core/parser/src/parser/expression/primary/array_initializer/mod.rs similarity index 100% rename from boa_parser/src/parser/expression/primary/array_initializer/mod.rs rename to core/parser/src/parser/expression/primary/array_initializer/mod.rs diff --git a/boa_parser/src/parser/expression/primary/array_initializer/tests.rs b/core/parser/src/parser/expression/primary/array_initializer/tests.rs similarity index 100% rename from boa_parser/src/parser/expression/primary/array_initializer/tests.rs rename to core/parser/src/parser/expression/primary/array_initializer/tests.rs diff --git a/boa_parser/src/parser/expression/primary/async_function_expression/mod.rs b/core/parser/src/parser/expression/primary/async_function_expression/mod.rs similarity index 100% rename from boa_parser/src/parser/expression/primary/async_function_expression/mod.rs rename to core/parser/src/parser/expression/primary/async_function_expression/mod.rs diff --git a/boa_parser/src/parser/expression/primary/async_function_expression/tests.rs b/core/parser/src/parser/expression/primary/async_function_expression/tests.rs similarity index 100% rename from boa_parser/src/parser/expression/primary/async_function_expression/tests.rs rename to core/parser/src/parser/expression/primary/async_function_expression/tests.rs diff --git a/boa_parser/src/parser/expression/primary/async_generator_expression/mod.rs b/core/parser/src/parser/expression/primary/async_generator_expression/mod.rs similarity index 100% rename from boa_parser/src/parser/expression/primary/async_generator_expression/mod.rs rename to core/parser/src/parser/expression/primary/async_generator_expression/mod.rs diff --git a/boa_parser/src/parser/expression/primary/async_generator_expression/tests.rs b/core/parser/src/parser/expression/primary/async_generator_expression/tests.rs similarity index 100% rename from boa_parser/src/parser/expression/primary/async_generator_expression/tests.rs rename to core/parser/src/parser/expression/primary/async_generator_expression/tests.rs diff --git a/boa_parser/src/parser/expression/primary/class_expression/mod.rs b/core/parser/src/parser/expression/primary/class_expression/mod.rs similarity index 100% rename from boa_parser/src/parser/expression/primary/class_expression/mod.rs rename to core/parser/src/parser/expression/primary/class_expression/mod.rs diff --git a/boa_parser/src/parser/expression/primary/function_expression/mod.rs b/core/parser/src/parser/expression/primary/function_expression/mod.rs similarity index 100% rename from boa_parser/src/parser/expression/primary/function_expression/mod.rs rename to core/parser/src/parser/expression/primary/function_expression/mod.rs diff --git a/boa_parser/src/parser/expression/primary/function_expression/tests.rs b/core/parser/src/parser/expression/primary/function_expression/tests.rs similarity index 100% rename from boa_parser/src/parser/expression/primary/function_expression/tests.rs rename to core/parser/src/parser/expression/primary/function_expression/tests.rs diff --git a/boa_parser/src/parser/expression/primary/generator_expression/mod.rs b/core/parser/src/parser/expression/primary/generator_expression/mod.rs similarity index 100% rename from boa_parser/src/parser/expression/primary/generator_expression/mod.rs rename to core/parser/src/parser/expression/primary/generator_expression/mod.rs diff --git a/boa_parser/src/parser/expression/primary/generator_expression/tests.rs b/core/parser/src/parser/expression/primary/generator_expression/tests.rs similarity index 100% rename from boa_parser/src/parser/expression/primary/generator_expression/tests.rs rename to core/parser/src/parser/expression/primary/generator_expression/tests.rs diff --git a/boa_parser/src/parser/expression/primary/mod.rs b/core/parser/src/parser/expression/primary/mod.rs similarity index 100% rename from boa_parser/src/parser/expression/primary/mod.rs rename to core/parser/src/parser/expression/primary/mod.rs diff --git a/boa_parser/src/parser/expression/primary/object_initializer/mod.rs b/core/parser/src/parser/expression/primary/object_initializer/mod.rs similarity index 100% rename from boa_parser/src/parser/expression/primary/object_initializer/mod.rs rename to core/parser/src/parser/expression/primary/object_initializer/mod.rs diff --git a/boa_parser/src/parser/expression/primary/object_initializer/tests.rs b/core/parser/src/parser/expression/primary/object_initializer/tests.rs similarity index 100% rename from boa_parser/src/parser/expression/primary/object_initializer/tests.rs rename to core/parser/src/parser/expression/primary/object_initializer/tests.rs diff --git a/boa_parser/src/parser/expression/primary/template/mod.rs b/core/parser/src/parser/expression/primary/template/mod.rs similarity index 100% rename from boa_parser/src/parser/expression/primary/template/mod.rs rename to core/parser/src/parser/expression/primary/template/mod.rs diff --git a/boa_parser/src/parser/expression/primary/tests.rs b/core/parser/src/parser/expression/primary/tests.rs similarity index 100% rename from boa_parser/src/parser/expression/primary/tests.rs rename to core/parser/src/parser/expression/primary/tests.rs diff --git a/boa_parser/src/parser/expression/tests.rs b/core/parser/src/parser/expression/tests.rs similarity index 100% rename from boa_parser/src/parser/expression/tests.rs rename to core/parser/src/parser/expression/tests.rs diff --git a/boa_parser/src/parser/expression/unary.rs b/core/parser/src/parser/expression/unary.rs similarity index 100% rename from boa_parser/src/parser/expression/unary.rs rename to core/parser/src/parser/expression/unary.rs diff --git a/boa_parser/src/parser/expression/update.rs b/core/parser/src/parser/expression/update.rs similarity index 100% rename from boa_parser/src/parser/expression/update.rs rename to core/parser/src/parser/expression/update.rs diff --git a/boa_parser/src/parser/function/mod.rs b/core/parser/src/parser/function/mod.rs similarity index 100% rename from boa_parser/src/parser/function/mod.rs rename to core/parser/src/parser/function/mod.rs diff --git a/boa_parser/src/parser/function/tests.rs b/core/parser/src/parser/function/tests.rs similarity index 100% rename from boa_parser/src/parser/function/tests.rs rename to core/parser/src/parser/function/tests.rs diff --git a/boa_parser/src/parser/mod.rs b/core/parser/src/parser/mod.rs similarity index 100% rename from boa_parser/src/parser/mod.rs rename to core/parser/src/parser/mod.rs diff --git a/boa_parser/src/parser/statement/block/mod.rs b/core/parser/src/parser/statement/block/mod.rs similarity index 100% rename from boa_parser/src/parser/statement/block/mod.rs rename to core/parser/src/parser/statement/block/mod.rs diff --git a/boa_parser/src/parser/statement/block/tests.rs b/core/parser/src/parser/statement/block/tests.rs similarity index 100% rename from boa_parser/src/parser/statement/block/tests.rs rename to core/parser/src/parser/statement/block/tests.rs diff --git a/boa_parser/src/parser/statement/break_stm/mod.rs b/core/parser/src/parser/statement/break_stm/mod.rs similarity index 100% rename from boa_parser/src/parser/statement/break_stm/mod.rs rename to core/parser/src/parser/statement/break_stm/mod.rs diff --git a/boa_parser/src/parser/statement/break_stm/tests.rs b/core/parser/src/parser/statement/break_stm/tests.rs similarity index 100% rename from boa_parser/src/parser/statement/break_stm/tests.rs rename to core/parser/src/parser/statement/break_stm/tests.rs diff --git a/boa_parser/src/parser/statement/continue_stm/mod.rs b/core/parser/src/parser/statement/continue_stm/mod.rs similarity index 100% rename from boa_parser/src/parser/statement/continue_stm/mod.rs rename to core/parser/src/parser/statement/continue_stm/mod.rs diff --git a/boa_parser/src/parser/statement/continue_stm/tests.rs b/core/parser/src/parser/statement/continue_stm/tests.rs similarity index 100% rename from boa_parser/src/parser/statement/continue_stm/tests.rs rename to core/parser/src/parser/statement/continue_stm/tests.rs diff --git a/boa_parser/src/parser/statement/declaration/export.rs b/core/parser/src/parser/statement/declaration/export.rs similarity index 100% rename from boa_parser/src/parser/statement/declaration/export.rs rename to core/parser/src/parser/statement/declaration/export.rs diff --git a/boa_parser/src/parser/statement/declaration/hoistable/async_function_decl/mod.rs b/core/parser/src/parser/statement/declaration/hoistable/async_function_decl/mod.rs similarity index 100% rename from boa_parser/src/parser/statement/declaration/hoistable/async_function_decl/mod.rs rename to core/parser/src/parser/statement/declaration/hoistable/async_function_decl/mod.rs diff --git a/boa_parser/src/parser/statement/declaration/hoistable/async_function_decl/tests.rs b/core/parser/src/parser/statement/declaration/hoistable/async_function_decl/tests.rs similarity index 100% rename from boa_parser/src/parser/statement/declaration/hoistable/async_function_decl/tests.rs rename to core/parser/src/parser/statement/declaration/hoistable/async_function_decl/tests.rs diff --git a/boa_parser/src/parser/statement/declaration/hoistable/async_generator_decl/mod.rs b/core/parser/src/parser/statement/declaration/hoistable/async_generator_decl/mod.rs similarity index 100% rename from boa_parser/src/parser/statement/declaration/hoistable/async_generator_decl/mod.rs rename to core/parser/src/parser/statement/declaration/hoistable/async_generator_decl/mod.rs diff --git a/boa_parser/src/parser/statement/declaration/hoistable/async_generator_decl/tests.rs b/core/parser/src/parser/statement/declaration/hoistable/async_generator_decl/tests.rs similarity index 100% rename from boa_parser/src/parser/statement/declaration/hoistable/async_generator_decl/tests.rs rename to core/parser/src/parser/statement/declaration/hoistable/async_generator_decl/tests.rs diff --git a/boa_parser/src/parser/statement/declaration/hoistable/class_decl/mod.rs b/core/parser/src/parser/statement/declaration/hoistable/class_decl/mod.rs similarity index 100% rename from boa_parser/src/parser/statement/declaration/hoistable/class_decl/mod.rs rename to core/parser/src/parser/statement/declaration/hoistable/class_decl/mod.rs diff --git a/boa_parser/src/parser/statement/declaration/hoistable/class_decl/tests.rs b/core/parser/src/parser/statement/declaration/hoistable/class_decl/tests.rs similarity index 100% rename from boa_parser/src/parser/statement/declaration/hoistable/class_decl/tests.rs rename to core/parser/src/parser/statement/declaration/hoistable/class_decl/tests.rs diff --git a/boa_parser/src/parser/statement/declaration/hoistable/function_decl/mod.rs b/core/parser/src/parser/statement/declaration/hoistable/function_decl/mod.rs similarity index 100% rename from boa_parser/src/parser/statement/declaration/hoistable/function_decl/mod.rs rename to core/parser/src/parser/statement/declaration/hoistable/function_decl/mod.rs diff --git a/boa_parser/src/parser/statement/declaration/hoistable/function_decl/tests.rs b/core/parser/src/parser/statement/declaration/hoistable/function_decl/tests.rs similarity index 100% rename from boa_parser/src/parser/statement/declaration/hoistable/function_decl/tests.rs rename to core/parser/src/parser/statement/declaration/hoistable/function_decl/tests.rs diff --git a/boa_parser/src/parser/statement/declaration/hoistable/generator_decl/mod.rs b/core/parser/src/parser/statement/declaration/hoistable/generator_decl/mod.rs similarity index 100% rename from boa_parser/src/parser/statement/declaration/hoistable/generator_decl/mod.rs rename to core/parser/src/parser/statement/declaration/hoistable/generator_decl/mod.rs diff --git a/boa_parser/src/parser/statement/declaration/hoistable/generator_decl/tests.rs b/core/parser/src/parser/statement/declaration/hoistable/generator_decl/tests.rs similarity index 100% rename from boa_parser/src/parser/statement/declaration/hoistable/generator_decl/tests.rs rename to core/parser/src/parser/statement/declaration/hoistable/generator_decl/tests.rs diff --git a/boa_parser/src/parser/statement/declaration/hoistable/mod.rs b/core/parser/src/parser/statement/declaration/hoistable/mod.rs similarity index 100% rename from boa_parser/src/parser/statement/declaration/hoistable/mod.rs rename to core/parser/src/parser/statement/declaration/hoistable/mod.rs diff --git a/boa_parser/src/parser/statement/declaration/hoistable/tests.rs b/core/parser/src/parser/statement/declaration/hoistable/tests.rs similarity index 100% rename from boa_parser/src/parser/statement/declaration/hoistable/tests.rs rename to core/parser/src/parser/statement/declaration/hoistable/tests.rs diff --git a/boa_parser/src/parser/statement/declaration/import.rs b/core/parser/src/parser/statement/declaration/import.rs similarity index 100% rename from boa_parser/src/parser/statement/declaration/import.rs rename to core/parser/src/parser/statement/declaration/import.rs diff --git a/boa_parser/src/parser/statement/declaration/lexical.rs b/core/parser/src/parser/statement/declaration/lexical.rs similarity index 100% rename from boa_parser/src/parser/statement/declaration/lexical.rs rename to core/parser/src/parser/statement/declaration/lexical.rs diff --git a/boa_parser/src/parser/statement/declaration/mod.rs b/core/parser/src/parser/statement/declaration/mod.rs similarity index 100% rename from boa_parser/src/parser/statement/declaration/mod.rs rename to core/parser/src/parser/statement/declaration/mod.rs diff --git a/boa_parser/src/parser/statement/declaration/tests.rs b/core/parser/src/parser/statement/declaration/tests.rs similarity index 100% rename from boa_parser/src/parser/statement/declaration/tests.rs rename to core/parser/src/parser/statement/declaration/tests.rs diff --git a/boa_parser/src/parser/statement/expression/mod.rs b/core/parser/src/parser/statement/expression/mod.rs similarity index 100% rename from boa_parser/src/parser/statement/expression/mod.rs rename to core/parser/src/parser/statement/expression/mod.rs diff --git a/boa_parser/src/parser/statement/if_stm/mod.rs b/core/parser/src/parser/statement/if_stm/mod.rs similarity index 100% rename from boa_parser/src/parser/statement/if_stm/mod.rs rename to core/parser/src/parser/statement/if_stm/mod.rs diff --git a/boa_parser/src/parser/statement/if_stm/tests.rs b/core/parser/src/parser/statement/if_stm/tests.rs similarity index 100% rename from boa_parser/src/parser/statement/if_stm/tests.rs rename to core/parser/src/parser/statement/if_stm/tests.rs diff --git a/boa_parser/src/parser/statement/iteration/do_while_statement.rs b/core/parser/src/parser/statement/iteration/do_while_statement.rs similarity index 100% rename from boa_parser/src/parser/statement/iteration/do_while_statement.rs rename to core/parser/src/parser/statement/iteration/do_while_statement.rs diff --git a/boa_parser/src/parser/statement/iteration/for_statement.rs b/core/parser/src/parser/statement/iteration/for_statement.rs similarity index 100% rename from boa_parser/src/parser/statement/iteration/for_statement.rs rename to core/parser/src/parser/statement/iteration/for_statement.rs diff --git a/boa_parser/src/parser/statement/iteration/mod.rs b/core/parser/src/parser/statement/iteration/mod.rs similarity index 100% rename from boa_parser/src/parser/statement/iteration/mod.rs rename to core/parser/src/parser/statement/iteration/mod.rs diff --git a/boa_parser/src/parser/statement/iteration/tests.rs b/core/parser/src/parser/statement/iteration/tests.rs similarity index 100% rename from boa_parser/src/parser/statement/iteration/tests.rs rename to core/parser/src/parser/statement/iteration/tests.rs diff --git a/boa_parser/src/parser/statement/iteration/while_statement.rs b/core/parser/src/parser/statement/iteration/while_statement.rs similarity index 100% rename from boa_parser/src/parser/statement/iteration/while_statement.rs rename to core/parser/src/parser/statement/iteration/while_statement.rs diff --git a/boa_parser/src/parser/statement/labelled_stm/mod.rs b/core/parser/src/parser/statement/labelled_stm/mod.rs similarity index 100% rename from boa_parser/src/parser/statement/labelled_stm/mod.rs rename to core/parser/src/parser/statement/labelled_stm/mod.rs diff --git a/boa_parser/src/parser/statement/mod.rs b/core/parser/src/parser/statement/mod.rs similarity index 100% rename from boa_parser/src/parser/statement/mod.rs rename to core/parser/src/parser/statement/mod.rs diff --git a/boa_parser/src/parser/statement/return_stm/mod.rs b/core/parser/src/parser/statement/return_stm/mod.rs similarity index 100% rename from boa_parser/src/parser/statement/return_stm/mod.rs rename to core/parser/src/parser/statement/return_stm/mod.rs diff --git a/boa_parser/src/parser/statement/switch/mod.rs b/core/parser/src/parser/statement/switch/mod.rs similarity index 100% rename from boa_parser/src/parser/statement/switch/mod.rs rename to core/parser/src/parser/statement/switch/mod.rs diff --git a/boa_parser/src/parser/statement/switch/tests.rs b/core/parser/src/parser/statement/switch/tests.rs similarity index 100% rename from boa_parser/src/parser/statement/switch/tests.rs rename to core/parser/src/parser/statement/switch/tests.rs diff --git a/boa_parser/src/parser/statement/throw/mod.rs b/core/parser/src/parser/statement/throw/mod.rs similarity index 100% rename from boa_parser/src/parser/statement/throw/mod.rs rename to core/parser/src/parser/statement/throw/mod.rs diff --git a/boa_parser/src/parser/statement/throw/tests.rs b/core/parser/src/parser/statement/throw/tests.rs similarity index 100% rename from boa_parser/src/parser/statement/throw/tests.rs rename to core/parser/src/parser/statement/throw/tests.rs diff --git a/boa_parser/src/parser/statement/try_stm/catch.rs b/core/parser/src/parser/statement/try_stm/catch.rs similarity index 100% rename from boa_parser/src/parser/statement/try_stm/catch.rs rename to core/parser/src/parser/statement/try_stm/catch.rs diff --git a/boa_parser/src/parser/statement/try_stm/finally.rs b/core/parser/src/parser/statement/try_stm/finally.rs similarity index 100% rename from boa_parser/src/parser/statement/try_stm/finally.rs rename to core/parser/src/parser/statement/try_stm/finally.rs diff --git a/boa_parser/src/parser/statement/try_stm/mod.rs b/core/parser/src/parser/statement/try_stm/mod.rs similarity index 100% rename from boa_parser/src/parser/statement/try_stm/mod.rs rename to core/parser/src/parser/statement/try_stm/mod.rs diff --git a/boa_parser/src/parser/statement/try_stm/tests.rs b/core/parser/src/parser/statement/try_stm/tests.rs similarity index 100% rename from boa_parser/src/parser/statement/try_stm/tests.rs rename to core/parser/src/parser/statement/try_stm/tests.rs diff --git a/boa_parser/src/parser/statement/variable/mod.rs b/core/parser/src/parser/statement/variable/mod.rs similarity index 100% rename from boa_parser/src/parser/statement/variable/mod.rs rename to core/parser/src/parser/statement/variable/mod.rs diff --git a/boa_parser/src/parser/statement/with/mod.rs b/core/parser/src/parser/statement/with/mod.rs similarity index 100% rename from boa_parser/src/parser/statement/with/mod.rs rename to core/parser/src/parser/statement/with/mod.rs diff --git a/boa_parser/src/parser/tests/format/declaration.rs b/core/parser/src/parser/tests/format/declaration.rs similarity index 100% rename from boa_parser/src/parser/tests/format/declaration.rs rename to core/parser/src/parser/tests/format/declaration.rs diff --git a/boa_parser/src/parser/tests/format/expression.rs b/core/parser/src/parser/tests/format/expression.rs similarity index 100% rename from boa_parser/src/parser/tests/format/expression.rs rename to core/parser/src/parser/tests/format/expression.rs diff --git a/boa_parser/src/parser/tests/format/function/class.rs b/core/parser/src/parser/tests/format/function/class.rs similarity index 100% rename from boa_parser/src/parser/tests/format/function/class.rs rename to core/parser/src/parser/tests/format/function/class.rs diff --git a/boa_parser/src/parser/tests/format/function/mod.rs b/core/parser/src/parser/tests/format/function/mod.rs similarity index 100% rename from boa_parser/src/parser/tests/format/function/mod.rs rename to core/parser/src/parser/tests/format/function/mod.rs diff --git a/boa_parser/src/parser/tests/format/mod.rs b/core/parser/src/parser/tests/format/mod.rs similarity index 100% rename from boa_parser/src/parser/tests/format/mod.rs rename to core/parser/src/parser/tests/format/mod.rs diff --git a/boa_parser/src/parser/tests/format/statement.rs b/core/parser/src/parser/tests/format/statement.rs similarity index 100% rename from boa_parser/src/parser/tests/format/statement.rs rename to core/parser/src/parser/tests/format/statement.rs diff --git a/boa_parser/src/parser/tests/mod.rs b/core/parser/src/parser/tests/mod.rs similarity index 100% rename from boa_parser/src/parser/tests/mod.rs rename to core/parser/src/parser/tests/mod.rs diff --git a/boa_parser/src/parser/tests/test.js b/core/parser/src/parser/tests/test.js similarity index 100% rename from boa_parser/src/parser/tests/test.js rename to core/parser/src/parser/tests/test.js diff --git a/boa_parser/src/source.rs b/core/parser/src/source.rs similarity index 100% rename from boa_parser/src/source.rs rename to core/parser/src/source.rs diff --git a/boa_profiler/ABOUT.md b/core/profiler/ABOUT.md similarity index 100% rename from boa_profiler/ABOUT.md rename to core/profiler/ABOUT.md diff --git a/boa_profiler/Cargo.toml b/core/profiler/Cargo.toml similarity index 100% rename from boa_profiler/Cargo.toml rename to core/profiler/Cargo.toml diff --git a/boa_profiler/src/lib.rs b/core/profiler/src/lib.rs similarity index 100% rename from boa_profiler/src/lib.rs rename to core/profiler/src/lib.rs diff --git a/boa_runtime/ABOUT.md b/core/runtime/ABOUT.md similarity index 100% rename from boa_runtime/ABOUT.md rename to core/runtime/ABOUT.md diff --git a/boa_runtime/Cargo.toml b/core/runtime/Cargo.toml similarity index 100% rename from boa_runtime/Cargo.toml rename to core/runtime/Cargo.toml diff --git a/boa_runtime/src/console/mod.rs b/core/runtime/src/console/mod.rs similarity index 100% rename from boa_runtime/src/console/mod.rs rename to core/runtime/src/console/mod.rs diff --git a/boa_runtime/src/console/tests.rs b/core/runtime/src/console/tests.rs similarity index 100% rename from boa_runtime/src/console/tests.rs rename to core/runtime/src/console/tests.rs diff --git a/boa_runtime/src/lib.rs b/core/runtime/src/lib.rs similarity index 100% rename from boa_runtime/src/lib.rs rename to core/runtime/src/lib.rs diff --git a/boa_tester/ABOUT.md b/core/temporal/ABOUT.md similarity index 100% rename from boa_tester/ABOUT.md rename to core/temporal/ABOUT.md diff --git a/boa_temporal/Cargo.toml b/core/temporal/Cargo.toml similarity index 100% rename from boa_temporal/Cargo.toml rename to core/temporal/Cargo.toml diff --git a/boa_temporal/README.md b/core/temporal/README.md similarity index 100% rename from boa_temporal/README.md rename to core/temporal/README.md diff --git a/boa_temporal/src/components/calendar.rs b/core/temporal/src/components/calendar.rs similarity index 100% rename from boa_temporal/src/components/calendar.rs rename to core/temporal/src/components/calendar.rs diff --git a/boa_temporal/src/components/calendar/iso.rs b/core/temporal/src/components/calendar/iso.rs similarity index 100% rename from boa_temporal/src/components/calendar/iso.rs rename to core/temporal/src/components/calendar/iso.rs diff --git a/boa_temporal/src/components/date.rs b/core/temporal/src/components/date.rs similarity index 100% rename from boa_temporal/src/components/date.rs rename to core/temporal/src/components/date.rs diff --git a/boa_temporal/src/components/datetime.rs b/core/temporal/src/components/datetime.rs similarity index 100% rename from boa_temporal/src/components/datetime.rs rename to core/temporal/src/components/datetime.rs diff --git a/boa_temporal/src/components/duration.rs b/core/temporal/src/components/duration.rs similarity index 100% rename from boa_temporal/src/components/duration.rs rename to core/temporal/src/components/duration.rs diff --git a/boa_temporal/src/components/instant.rs b/core/temporal/src/components/instant.rs similarity index 100% rename from boa_temporal/src/components/instant.rs rename to core/temporal/src/components/instant.rs diff --git a/boa_temporal/src/components/mod.rs b/core/temporal/src/components/mod.rs similarity index 100% rename from boa_temporal/src/components/mod.rs rename to core/temporal/src/components/mod.rs diff --git a/boa_temporal/src/components/month_day.rs b/core/temporal/src/components/month_day.rs similarity index 100% rename from boa_temporal/src/components/month_day.rs rename to core/temporal/src/components/month_day.rs diff --git a/boa_temporal/src/components/time.rs b/core/temporal/src/components/time.rs similarity index 100% rename from boa_temporal/src/components/time.rs rename to core/temporal/src/components/time.rs diff --git a/boa_temporal/src/components/tz.rs b/core/temporal/src/components/tz.rs similarity index 100% rename from boa_temporal/src/components/tz.rs rename to core/temporal/src/components/tz.rs diff --git a/boa_temporal/src/components/year_month.rs b/core/temporal/src/components/year_month.rs similarity index 100% rename from boa_temporal/src/components/year_month.rs rename to core/temporal/src/components/year_month.rs diff --git a/boa_temporal/src/components/zoneddatetime.rs b/core/temporal/src/components/zoneddatetime.rs similarity index 100% rename from boa_temporal/src/components/zoneddatetime.rs rename to core/temporal/src/components/zoneddatetime.rs diff --git a/boa_temporal/src/error.rs b/core/temporal/src/error.rs similarity index 100% rename from boa_temporal/src/error.rs rename to core/temporal/src/error.rs diff --git a/boa_temporal/src/fields.rs b/core/temporal/src/fields.rs similarity index 100% rename from boa_temporal/src/fields.rs rename to core/temporal/src/fields.rs diff --git a/boa_temporal/src/iso.rs b/core/temporal/src/iso.rs similarity index 100% rename from boa_temporal/src/iso.rs rename to core/temporal/src/iso.rs diff --git a/boa_temporal/src/lib.rs b/core/temporal/src/lib.rs similarity index 98% rename from boa_temporal/src/lib.rs rename to core/temporal/src/lib.rs index 2dfda77c56..3674c244b2 100644 --- a/boa_temporal/src/lib.rs +++ b/core/temporal/src/lib.rs @@ -10,7 +10,7 @@ //! //! [proposal]: https://github.com/tc39/proposal-temporal //! [spec]: https://tc39.es/proposal-temporal/ -#![doc = include_str!("../../ABOUT.md")] +#![doc = include_str!("../ABOUT.md")] #![doc( html_logo_url = "https://raw.githubusercontent.com/boa-dev/boa/main/assets/logo.svg", html_favicon_url = "https://raw.githubusercontent.com/boa-dev/boa/main/assets/logo.svg" diff --git a/boa_temporal/src/options.rs b/core/temporal/src/options.rs similarity index 100% rename from boa_temporal/src/options.rs rename to core/temporal/src/options.rs diff --git a/boa_temporal/src/parser/annotations.rs b/core/temporal/src/parser/annotations.rs similarity index 100% rename from boa_temporal/src/parser/annotations.rs rename to core/temporal/src/parser/annotations.rs diff --git a/boa_temporal/src/parser/date_time.rs b/core/temporal/src/parser/date_time.rs similarity index 100% rename from boa_temporal/src/parser/date_time.rs rename to core/temporal/src/parser/date_time.rs diff --git a/boa_temporal/src/parser/duration.rs b/core/temporal/src/parser/duration.rs similarity index 100% rename from boa_temporal/src/parser/duration.rs rename to core/temporal/src/parser/duration.rs diff --git a/boa_temporal/src/parser/grammar.rs b/core/temporal/src/parser/grammar.rs similarity index 100% rename from boa_temporal/src/parser/grammar.rs rename to core/temporal/src/parser/grammar.rs diff --git a/boa_temporal/src/parser/mod.rs b/core/temporal/src/parser/mod.rs similarity index 100% rename from boa_temporal/src/parser/mod.rs rename to core/temporal/src/parser/mod.rs diff --git a/boa_temporal/src/parser/nodes.rs b/core/temporal/src/parser/nodes.rs similarity index 100% rename from boa_temporal/src/parser/nodes.rs rename to core/temporal/src/parser/nodes.rs diff --git a/boa_temporal/src/parser/tests.rs b/core/temporal/src/parser/tests.rs similarity index 100% rename from boa_temporal/src/parser/tests.rs rename to core/temporal/src/parser/tests.rs diff --git a/boa_temporal/src/parser/time.rs b/core/temporal/src/parser/time.rs similarity index 100% rename from boa_temporal/src/parser/time.rs rename to core/temporal/src/parser/time.rs diff --git a/boa_temporal/src/parser/time_zone.rs b/core/temporal/src/parser/time_zone.rs similarity index 100% rename from boa_temporal/src/parser/time_zone.rs rename to core/temporal/src/parser/time_zone.rs diff --git a/boa_temporal/src/utils.rs b/core/temporal/src/utils.rs similarity index 100% rename from boa_temporal/src/utils.rs rename to core/temporal/src/utils.rs diff --git a/boa_examples/Cargo.toml b/examples/Cargo.toml similarity index 100% rename from boa_examples/Cargo.toml rename to examples/Cargo.toml diff --git a/boa_examples/README.md b/examples/README.md similarity index 100% rename from boa_examples/README.md rename to examples/README.md diff --git a/boa_examples/scripts/calc.js b/examples/scripts/calc.js similarity index 100% rename from boa_examples/scripts/calc.js rename to examples/scripts/calc.js diff --git a/boa_examples/scripts/calctest.js b/examples/scripts/calctest.js similarity index 100% rename from boa_examples/scripts/calctest.js rename to examples/scripts/calctest.js diff --git a/boa_examples/scripts/enhancedglobal.js b/examples/scripts/enhancedglobal.js similarity index 100% rename from boa_examples/scripts/enhancedglobal.js rename to examples/scripts/enhancedglobal.js diff --git a/boa_examples/scripts/helloworld.js b/examples/scripts/helloworld.js similarity index 100% rename from boa_examples/scripts/helloworld.js rename to examples/scripts/helloworld.js diff --git a/boa_examples/scripts/modules/operations.mjs b/examples/scripts/modules/operations.mjs similarity index 100% rename from boa_examples/scripts/modules/operations.mjs rename to examples/scripts/modules/operations.mjs diff --git a/boa_examples/scripts/modules/trig.mjs b/examples/scripts/modules/trig.mjs similarity index 100% rename from boa_examples/scripts/modules/trig.mjs rename to examples/scripts/modules/trig.mjs diff --git a/boa_examples/src/bin/classes.rs b/examples/src/bin/classes.rs similarity index 100% rename from boa_examples/src/bin/classes.rs rename to examples/src/bin/classes.rs diff --git a/boa_examples/src/bin/closures.rs b/examples/src/bin/closures.rs similarity index 100% rename from boa_examples/src/bin/closures.rs rename to examples/src/bin/closures.rs diff --git a/boa_examples/src/bin/commuter_visitor.rs b/examples/src/bin/commuter_visitor.rs similarity index 100% rename from boa_examples/src/bin/commuter_visitor.rs rename to examples/src/bin/commuter_visitor.rs diff --git a/boa_examples/src/bin/derive.rs b/examples/src/bin/derive.rs similarity index 100% rename from boa_examples/src/bin/derive.rs rename to examples/src/bin/derive.rs diff --git a/boa_examples/src/bin/futures.rs b/examples/src/bin/futures.rs similarity index 100% rename from boa_examples/src/bin/futures.rs rename to examples/src/bin/futures.rs diff --git a/boa_examples/src/bin/host_defined.rs b/examples/src/bin/host_defined.rs similarity index 100% rename from boa_examples/src/bin/host_defined.rs rename to examples/src/bin/host_defined.rs diff --git a/boa_examples/src/bin/jsarray.rs b/examples/src/bin/jsarray.rs similarity index 100% rename from boa_examples/src/bin/jsarray.rs rename to examples/src/bin/jsarray.rs diff --git a/boa_examples/src/bin/jsarraybuffer.rs b/examples/src/bin/jsarraybuffer.rs similarity index 100% rename from boa_examples/src/bin/jsarraybuffer.rs rename to examples/src/bin/jsarraybuffer.rs diff --git a/boa_examples/src/bin/jsdate.rs b/examples/src/bin/jsdate.rs similarity index 100% rename from boa_examples/src/bin/jsdate.rs rename to examples/src/bin/jsdate.rs diff --git a/boa_examples/src/bin/jsmap.rs b/examples/src/bin/jsmap.rs similarity index 100% rename from boa_examples/src/bin/jsmap.rs rename to examples/src/bin/jsmap.rs diff --git a/boa_examples/src/bin/jsregexp.rs b/examples/src/bin/jsregexp.rs similarity index 100% rename from boa_examples/src/bin/jsregexp.rs rename to examples/src/bin/jsregexp.rs diff --git a/boa_examples/src/bin/jsset.rs b/examples/src/bin/jsset.rs similarity index 100% rename from boa_examples/src/bin/jsset.rs rename to examples/src/bin/jsset.rs diff --git a/boa_examples/src/bin/jstypedarray.rs b/examples/src/bin/jstypedarray.rs similarity index 100% rename from boa_examples/src/bin/jstypedarray.rs rename to examples/src/bin/jstypedarray.rs diff --git a/boa_examples/src/bin/loadfile.rs b/examples/src/bin/loadfile.rs similarity index 100% rename from boa_examples/src/bin/loadfile.rs rename to examples/src/bin/loadfile.rs diff --git a/boa_examples/src/bin/loadstring.rs b/examples/src/bin/loadstring.rs similarity index 100% rename from boa_examples/src/bin/loadstring.rs rename to examples/src/bin/loadstring.rs diff --git a/boa_examples/src/bin/modulehandler.rs b/examples/src/bin/modulehandler.rs similarity index 100% rename from boa_examples/src/bin/modulehandler.rs rename to examples/src/bin/modulehandler.rs diff --git a/boa_examples/src/bin/modules.rs b/examples/src/bin/modules.rs similarity index 100% rename from boa_examples/src/bin/modules.rs rename to examples/src/bin/modules.rs diff --git a/boa_examples/src/bin/runtime_limits.rs b/examples/src/bin/runtime_limits.rs similarity index 100% rename from boa_examples/src/bin/runtime_limits.rs rename to examples/src/bin/runtime_limits.rs diff --git a/boa_examples/src/bin/symbol_visitor.rs b/examples/src/bin/symbol_visitor.rs similarity index 100% rename from boa_examples/src/bin/symbol_visitor.rs rename to examples/src/bin/symbol_visitor.rs diff --git a/boa_examples/src/bin/synthetic.rs b/examples/src/bin/synthetic.rs similarity index 100% rename from boa_examples/src/bin/synthetic.rs rename to examples/src/bin/synthetic.rs diff --git a/boa_wasm/.gitignore b/ffi/wasm/.gitignore similarity index 100% rename from boa_wasm/.gitignore rename to ffi/wasm/.gitignore diff --git a/boa_wasm/ABOUT.md b/ffi/wasm/ABOUT.md similarity index 100% rename from boa_wasm/ABOUT.md rename to ffi/wasm/ABOUT.md diff --git a/boa_wasm/Cargo.toml b/ffi/wasm/Cargo.toml similarity index 100% rename from boa_wasm/Cargo.toml rename to ffi/wasm/Cargo.toml diff --git a/boa_wasm/e2e_test/boa_demo.spec.ts b/ffi/wasm/e2e_test/boa_demo.spec.ts similarity index 100% rename from boa_wasm/e2e_test/boa_demo.spec.ts rename to ffi/wasm/e2e_test/boa_demo.spec.ts diff --git a/boa_wasm/e2e_test/playwright.config.ts b/ffi/wasm/e2e_test/playwright.config.ts similarity index 100% rename from boa_wasm/e2e_test/playwright.config.ts rename to ffi/wasm/e2e_test/playwright.config.ts diff --git a/boa_wasm/e2e_test/server.mjs b/ffi/wasm/e2e_test/server.mjs similarity index 80% rename from boa_wasm/e2e_test/server.mjs rename to ffi/wasm/e2e_test/server.mjs index 0103b70163..ff79795408 100644 --- a/boa_wasm/e2e_test/server.mjs +++ b/ffi/wasm/e2e_test/server.mjs @@ -8,11 +8,11 @@ const __filename = fileURLToPath(import.meta.url); createServer((req, res) => { const __dirname = dirname(__filename); - const path = join(__dirname, "../../dist", parse(req.url, true).path); + const path = join(__dirname, "../../../dist", parse(req.url, true).path); readFile(path, (err, data) => { if (err) { res.writeHead(200, { "Content-Type": "text/html" }); - res.end(readFileSync(join(__dirname, "../../dist/index.html"))); + res.end(readFileSync(join(__dirname, "../../../dist/index.html"))); } else { res.writeHead(200, { "Content-Type": lookup(path) }); res.end(data); diff --git a/boa_wasm/src/lib.rs b/ffi/wasm/src/lib.rs similarity index 100% rename from boa_wasm/src/lib.rs rename to ffi/wasm/src/lib.rs diff --git a/index.js b/index.js index 2a7df0b4cd..51a6bf9020 100644 --- a/index.js +++ b/index.js @@ -1,4 +1,4 @@ -import { evaluate } from "./boa_wasm/pkg"; +import { evaluate } from "./ffi/wasm/pkg"; import * as monaco from "monaco-editor/esm/vs/editor/editor.api"; diff --git a/package.json b/package.json index ece9e2d839..7d7127ce7e 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "scripts": { "build": "webpack", "serve": "webpack-dev-server", - "e2e": "playwright test -c ./boa_wasm/e2e_test/playwright.config.ts", + "e2e": "playwright test -c ./ffi/wasm/e2e_test/playwright.config.ts", "build:prod": "webpack --mode=production" }, "devDependencies": { diff --git a/test262_config.toml b/test262_config.toml index 83e9b2878a..39111cd2cc 100644 --- a/test262_config.toml +++ b/test262_config.toml @@ -1,4 +1,4 @@ -commit = "a9821b4211aa9ae04eb31d344e967d3511a7a83e" +commit = "6cbb6da9473c56d95358d8e679c5a6d2b4574efb" [ignored] # Not implemented yet: @@ -25,6 +25,10 @@ features = [ # https://github.com/tc39/proposal-regexp-legacy-features "legacy-regexp", + # Import Attributes + # https://github.com/tc39/proposal-import-attributes/ + "import-attributes", + # https://github.com/tc39/proposal-import-attributes "import-assertions", @@ -58,6 +62,10 @@ features = [ # https://github.com/tc39/proposal-iterator-helpers "iterator-helpers", + # Set methods + # https://github.com/tc39/proposal-set-methods + "set-methods", + ### Non-standard "caller", diff --git a/tests/Cargo.toml b/tests/Cargo.toml new file mode 100644 index 0000000000..b628840f43 --- /dev/null +++ b/tests/Cargo.toml @@ -0,0 +1,12 @@ +# This file is a hack to make `cargo-fuzz` recognize the `fuzz` directory as +# a fuzz target. + +[package] +name = "tests" +publish = false +version.workspace = true +edition.workspace = true +authors.workspace = true +license.workspace = true +repository.workspace = true +rust-version.workspace = true diff --git a/fuzz/.gitignore b/tests/fuzz/.gitignore similarity index 100% rename from fuzz/.gitignore rename to tests/fuzz/.gitignore diff --git a/fuzz/Cargo.lock b/tests/fuzz/Cargo.lock similarity index 87% rename from fuzz/Cargo.lock rename to tests/fuzz/Cargo.lock index dfa1abb236..1fb75c6030 100644 --- a/fuzz/Cargo.lock +++ b/tests/fuzz/Cargo.lock @@ -31,9 +31,9 @@ dependencies = [ [[package]] name = "arbitrary" -version = "1.3.0" +version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2d098ff73c1ca148721f37baad5ea6a465a13f9573aba8641fbbbae8164a54e" +checksum = "7d5a26814d8dcb93b0e5a0ff3c6d80a8843bafb21b39e8e18a6f05471870e110" dependencies = [ "derive_arbitrary", ] @@ -87,6 +87,7 @@ dependencies = [ "boa_macros", "boa_parser", "boa_profiler", + "boa_temporal", "bytemuck", "cfg-if", "chrono", @@ -187,6 +188,18 @@ dependencies = [ name = "boa_profiler" version = "0.17.0" +[[package]] +name = "boa_temporal" +version = "0.17.0" +dependencies = [ + "bitflags 2.4.1", + "icu_calendar", + "num-bigint", + "num-traits", + "rustc-hash", + "tinystr", +] + [[package]] name = "bumpalo" version = "3.14.0" @@ -213,6 +226,16 @@ dependencies = [ "syn", ] +[[package]] +name = "calendrical_calculations" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8dfe3bc6a50b4667fafdb6d9cf26731c5418c457e317d8166c972014facf9a5d" +dependencies = [ + "core_maths", + "displaydoc", +] + [[package]] name = "cc" version = "1.0.83" @@ -243,9 +266,18 @@ dependencies = [ [[package]] name = "core-foundation-sys" -version = "0.8.4" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" + +[[package]] +name = "core_maths" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" +checksum = "e3b02505ccb8c50b0aa21ace0fc08c3e53adebd4e58caa18a36152803c7709a3" +dependencies = [ + "libm", +] [[package]] name = "dashmap" @@ -262,9 +294,9 @@ dependencies = [ [[package]] name = "derive_arbitrary" -version = "1.3.1" +version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53e0efad4403bfc52dc201159c4b842a246a14b98c64b55dfd0f2d89729dfeb8" +checksum = "67e77553c4162a157adbf834ebae5b415acbecbeafc7a74b0e886657506a7611" dependencies = [ "proc-macro2", "quote", @@ -302,9 +334,9 @@ checksum = "95765f67b4b18863968b4a1bd5bb576f732b29a4a28c7cd84c09fa3e2875f33c" [[package]] name = "getrandom" -version = "0.2.10" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427" +checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f" dependencies = [ "cfg-if", "libc", @@ -331,16 +363,16 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.57" +version = "0.1.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fad5b825842d2b38bd206f3e81d6957625fd7f0a361e345c30e01a0ae2dd613" +checksum = "8326b86b6cff230b97d0d312a6c40a60726df3332e721f72a1b035f451663b20" dependencies = [ "android_system_properties", "core-foundation-sys", "iana-time-zone-haiku", "js-sys", "wasm-bindgen", - "windows", + "windows-core", ] [[package]] @@ -352,6 +384,21 @@ dependencies = [ "cc", ] +[[package]] +name = "icu_calendar" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7eb932a690c92f87955e923106181ee0d5682e688ff37fb5c7b296e1fe806edb" +dependencies = [ + "calendrical_calculations", + "displaydoc", + "icu_locid", + "icu_provider", + "tinystr", + "writeable", + "zerovec", +] + [[package]] name = "icu_collections" version = "1.4.0" @@ -506,27 +553,27 @@ checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" [[package]] name = "jobserver" -version = "0.1.26" +version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "936cfd212a0155903bcbc060e316fb6cc7cbf2e1907329391ebadc1fe0ce77c2" +checksum = "8c37f63953c4c63420ed5fd3d6d398c719489b9f872b9fa683262f8edd363c7d" dependencies = [ "libc", ] [[package]] name = "js-sys" -version = "0.3.64" +version = "0.3.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a" +checksum = "cee9c64da59eae3b50095c18d3e74f8b73c0b86d2792824ff01bbce68ba229ca" dependencies = [ "wasm-bindgen", ] [[package]] name = "libc" -version = "0.2.148" +version = "0.2.150" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cdc71e17332e86d2e1d38c1f99edcb6288ee11b815fb1a4b049eaa2114d369b" +checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c" [[package]] name = "libfuzzer-sys" @@ -539,6 +586,12 @@ dependencies = [ "once_cell", ] +[[package]] +name = "libm" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" + [[package]] name = "litemap" version = "0.7.2" @@ -547,9 +600,9 @@ checksum = "f9d642685b028806386b2b6e75685faadd3eb65a85fff7df711ce18446a422da" [[package]] name = "lock_api" -version = "0.4.10" +version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16" +checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" dependencies = [ "autocfg", "scopeguard", @@ -563,9 +616,9 @@ checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" [[package]] name = "memchr" -version = "2.6.3" +version = "2.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f232d6ef707e1956a43342693d2a31e72989554d58299d7a88738cc95b0d35c" +checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" [[package]] name = "memoffset" @@ -637,9 +690,9 @@ checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" [[package]] name = "parking_lot_core" -version = "0.9.8" +version = "0.9.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447" +checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" dependencies = [ "cfg-if", "libc", @@ -704,9 +757,9 @@ checksum = "22686f4785f02a4fcc856d3b3bb19bf6c8160d103f7a99cc258bddd0251dc7f2" [[package]] name = "portable-atomic" -version = "1.5.1" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bccab0e7fd7cc19f820a1c8c91720af652d0c88dc9664dd72aef2614f04af3b" +checksum = "7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0" [[package]] name = "ppv-lite86" @@ -716,19 +769,18 @@ checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" [[package]] name = "proc-macro-crate" -version = "1.3.1" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +checksum = "7e8366a6159044a37876a2b9817124296703c586a5c92e2c53751fa06d8d43e8" dependencies = [ - "once_cell", "toml_edit", ] [[package]] name = "proc-macro2" -version = "1.0.67" +version = "1.0.70" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d433d9f1a3e8c1263d9456598b16fec66f4acc9a74dacffd35c7bb09b3a1328" +checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b" dependencies = [ "unicode-ident", ] @@ -774,9 +826,9 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.3.5" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" +checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" dependencies = [ "bitflags 1.3.2", ] @@ -854,9 +906,9 @@ checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" [[package]] name = "smallvec" -version = "1.11.1" +version = "1.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "942b4a808e05215192e39f4ab80813e599068285906cc91aa64f923db842bd5a" +checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970" [[package]] name = "sptr" @@ -907,9 +959,9 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "thin-vec" -version = "0.2.12" +version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aac81b6fd6beb5884b0cf3321b8117e6e5d47ecb6fc89f414cfdcca8b2fe2dd8" +checksum = "a38c90d48152c236a3ab59271da4f4ae63d678c5d7ad6b7714d7cb9760be5e4b" [[package]] name = "thiserror" @@ -943,15 +995,15 @@ dependencies = [ [[package]] name = "toml_datetime" -version = "0.6.3" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" +checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1" [[package]] name = "toml_edit" -version = "0.19.15" +version = "0.20.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" +checksum = "70f427fce4d84c72b5b732388bf4a9f4531b53f74e2887e3ecb2481f68f66d81" dependencies = [ "indexmap", "toml_datetime", @@ -972,15 +1024,15 @@ checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" [[package]] name = "utf16_iter" -version = "1.0.4" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52df8b7fb78e7910d776fccf2e42ceaf3604d55e8e7eb2dbd183cb1441d8a692" +checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" [[package]] name = "utf8_iter" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64a8922555b9500e3d865caed19330172cd67cbf82203f1a3311d8c305cc9f33" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" [[package]] name = "version_check" @@ -996,9 +1048,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.87" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342" +checksum = "0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -1006,9 +1058,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.87" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd" +checksum = "1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826" dependencies = [ "bumpalo", "log", @@ -1021,9 +1073,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.87" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d" +checksum = "0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -1031,9 +1083,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.87" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" +checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283" dependencies = [ "proc-macro2", "quote", @@ -1044,15 +1096,15 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.87" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1" +checksum = "7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f" [[package]] -name = "windows" -version = "0.48.0" +name = "windows-core" +version = "0.51.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" +checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64" dependencies = [ "windows-targets", ] @@ -1116,9 +1168,9 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "winnow" -version = "0.5.15" +version = "0.5.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c2e3184b9c4e92ad5167ca73039d0c42476302ab603e2fec4487511f38ccefc" +checksum = "b7e87b8dfbe3baffbe687eef2e164e32286eff31a5ee16463ce03d991643ec94" dependencies = [ "memchr", ] @@ -1161,18 +1213,18 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.7.28" +version = "0.7.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d6f15f7ade05d2a4935e34a457b936c23dc70a05cc1d97133dc99e7a3fe0f0e" +checksum = "5d075cf85bbb114e933343e087b92f2146bac0d55b534cbb8188becf0039948e" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.7.28" +version = "0.7.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbbad221e3f78500350ecbd7dfa4e63ef945c05f4c61cb7f4d3f84cd0bba649b" +checksum = "86cd5ca076997b97ef09d3ad65efe811fa68c9e874cb636ccb211223a813b0c2" dependencies = [ "proc-macro2", "quote", diff --git a/fuzz/Cargo.toml b/tests/fuzz/Cargo.toml similarity index 63% rename from fuzz/Cargo.toml rename to tests/fuzz/Cargo.toml index 8884933e8b..24ca557d97 100644 --- a/fuzz/Cargo.toml +++ b/tests/fuzz/Cargo.toml @@ -8,13 +8,13 @@ edition = "2021" cargo-fuzz = true [dependencies] -libfuzzer-sys = "0.4.6" +libfuzzer-sys = "0.4.7" -arbitrary = "1.3.0" -boa_ast = { path = "../boa_ast", features = ["arbitrary"] } -boa_engine = { path = "../boa_engine", features = ["fuzz"] } -boa_interner = { path = "../boa_interner", features = ["arbitrary"] } -boa_parser = { path = "../boa_parser" } +arbitrary = "1.3.2" +boa_ast = { path = "../../core/ast", features = ["arbitrary"] } +boa_engine = { path = "../../core/engine", features = ["fuzz"] } +boa_interner = { path = "../../core/interner", features = ["arbitrary"] } +boa_parser = { path = "../../core/parser" } # Prevent this from interfering with workspaces [workspace] @@ -39,4 +39,4 @@ doc = false name = "bytecompiler-implied" path = "fuzz_targets/bytecompiler-implied.rs" test = false -doc = false +doc = false \ No newline at end of file diff --git a/fuzz/README.md b/tests/fuzz/README.md similarity index 88% rename from fuzz/README.md rename to tests/fuzz/README.md index 9bb314bfd6..3952a1e7d1 100644 --- a/fuzz/README.md +++ b/tests/fuzz/README.md @@ -5,7 +5,7 @@ this directory are [grammar-aware](https://www.fuzzingbook.org/html/Grammars.htm [Arbitrary](https://docs.rs/arbitrary/latest/arbitrary/)) and coverage-guided. See [common.rs](fuzz/fuzz_targets/common.rs) for implementation specifics. -You can run any fuzzer you wish with the following command (replacing `your-fuzzer` with a fuzzer availble in +You can run any fuzzer you wish with the following command (replacing `your-fuzzer` with a fuzzer available in fuzz_targets, e.g. `parser-idempotency`): ```bash @@ -18,7 +18,7 @@ sanitizer and other flags. ## Parser Fuzzer -The parser fuzzer, located in [parser-idempotency.rs](fuzz/fuzz_targets/parser-idempotency.rs), identifies +The parser fuzzer, located in [parser-idempotency.rs](./fuzz_targets/parser-idempotency.rs), identifies correctness issues in both the parser and the AST-to-source conversion process (e.g., via `to_interned_string`) by searching for inputs which are not idempotent over parsing and conversion back to source. It does this by doing the following: @@ -38,13 +38,13 @@ In this way, this fuzzer can identify correctness issues present in the parser. ## Bytecompiler Fuzzer -The bytecompiler fuzzer, located in [bytecompiler-implied.rs](fuzz_targets/bytecompiler-implied.rs), identifies cases +The bytecompiler fuzzer, located in [bytecompiler-implied.rs](./fuzz_targets/bytecompiler-implied.rs), identifies cases which cause an assertion failure in the bytecompiler. These crashes can cause denial of service issues and may block the discovery of crash cases in the VM fuzzer. ## VM Fuzzer -The VM fuzzer, located in [vm-implied.rs](fuzz_targets/vm-implied.rs), identifies crash cases in the VM. It does so by +The VM fuzzer, located in [vm-implied.rs](./fuzz_targets/vm-implied.rs), identifies crash cases in the VM. It does so by generating an arbitrary AST, converting it to source code (to remove invalid inputs), then executing that source code. Because we are not comparing against any invariants other than "does it crash", this fuzzer will only discover faults which cause the VM to terminate unexpectedly, e.g. as a result of a panic. It will not discover logic errors present in diff --git a/fuzz/fuzz_targets/bytecompiler-implied.rs b/tests/fuzz/fuzz_targets/bytecompiler-implied.rs similarity index 100% rename from fuzz/fuzz_targets/bytecompiler-implied.rs rename to tests/fuzz/fuzz_targets/bytecompiler-implied.rs diff --git a/fuzz/fuzz_targets/common.rs b/tests/fuzz/fuzz_targets/common.rs similarity index 100% rename from fuzz/fuzz_targets/common.rs rename to tests/fuzz/fuzz_targets/common.rs diff --git a/fuzz/fuzz_targets/parser-idempotency.rs b/tests/fuzz/fuzz_targets/parser-idempotency.rs similarity index 100% rename from fuzz/fuzz_targets/parser-idempotency.rs rename to tests/fuzz/fuzz_targets/parser-idempotency.rs diff --git a/fuzz/fuzz_targets/vm-implied.rs b/tests/fuzz/fuzz_targets/vm-implied.rs similarity index 100% rename from fuzz/fuzz_targets/vm-implied.rs rename to tests/fuzz/fuzz_targets/vm-implied.rs diff --git a/boa_macros_tests/Cargo.toml b/tests/macros/Cargo.toml similarity index 100% rename from boa_macros_tests/Cargo.toml rename to tests/macros/Cargo.toml diff --git a/boa_macros_tests/tests/derive/from_js_with.rs b/tests/macros/tests/derive/from_js_with.rs similarity index 100% rename from boa_macros_tests/tests/derive/from_js_with.rs rename to tests/macros/tests/derive/from_js_with.rs diff --git a/boa_macros_tests/tests/derive/simple_struct.rs b/tests/macros/tests/derive/simple_struct.rs similarity index 100% rename from boa_macros_tests/tests/derive/simple_struct.rs rename to tests/macros/tests/derive/simple_struct.rs diff --git a/boa_macros_tests/tests/tests.rs b/tests/macros/tests/tests.rs similarity index 100% rename from boa_macros_tests/tests/tests.rs rename to tests/macros/tests/tests.rs diff --git a/tests/src/lib.rs b/tests/src/lib.rs new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/tests/src/lib.rs @@ -0,0 +1 @@ + diff --git a/tests/tester/ABOUT.md b/tests/tester/ABOUT.md new file mode 100644 index 0000000000..0deb7c9a49 --- /dev/null +++ b/tests/tester/ABOUT.md @@ -0,0 +1,33 @@ +# About Boa + +Boa is an open-source, experimental ECMAScript Engine written in Rust for +lexing, parsing and executing ECMAScript/JavaScript. Currently, Boa supports some +of the [language][boa-conformance]. More information can be viewed at [Boa's +website][boa-web]. + +Try out the most recent release with Boa's live demo +[playground][boa-playground]. + +# Boa Crates + +- [**`boa_ast`**][ast] - Boa's ECMAScript Abstract Syntax Tree. +- [**`boa_engine`**][engine] - Boa's implementation of ECMAScript builtin objects and + execution. +- [**`boa_gc`**][gc] - Boa's garbage collector. +- [**`boa_interner`**][interner] - Boa's string interner. +- [**`boa_parser`**][parser] - Boa's lexer and parser. +- [**`boa_profiler`**][profiler] - Boa's code profiler. +- [**`boa_icu_provider`**][icu] - Boa's ICU4X data provider. +- [**`boa_runtime`**][runtime] - Boa's WebAPI features. + +[boa-conformance]: https://boajs.dev/boa/test262/ +[boa-web]: https://boajs.dev/ +[boa-playground]: https://boajs.dev/boa/playground/ +[ast]: https://boajs.dev/boa/doc/boa_ast/index.html +[engine]: https://boajs.dev/boa/doc/boa_engine/index.html +[gc]: https://boajs.dev/boa/doc/boa_gc/index.html +[interner]: https://boajs.dev/boa/doc/boa_interner/index.html +[parser]: https://boajs.dev/boa/doc/boa_parser/index.html +[profiler]: https://boajs.dev/boa/doc/boa_profiler/index.html +[icu]: https://boajs.dev/boa/doc/boa_icu_provider/index.html +[runtime]: https://boajs.dev/boa/doc/boa_runtime/index.html diff --git a/boa_tester/Cargo.toml b/tests/tester/Cargo.toml similarity index 100% rename from boa_tester/Cargo.toml rename to tests/tester/Cargo.toml diff --git a/boa_tester/src/edition.rs b/tests/tester/src/edition.rs similarity index 98% rename from boa_tester/src/edition.rs rename to tests/tester/src/edition.rs index 4fad7c49ec..f77623d9f5 100644 --- a/boa_tester/src/edition.rs +++ b/tests/tester/src/edition.rs @@ -29,6 +29,10 @@ static FEATURE_EDITION: phf::Map<&'static str, SpecEdition> = phf::phf_map! { // https://github.com/tc39/proposal-regexp-legacy-features "legacy-regexp" => SpecEdition::ESNext, + // Import Attributes + // https://github.com/tc39/proposal-import-attributes/ + "import-attributes" => SpecEdition::ESNext, + // Import Assertions // https://github.com/tc39/proposal-import-assertions/ "import-assertions" => SpecEdition::ESNext, @@ -84,6 +88,10 @@ static FEATURE_EDITION: phf::Map<&'static str, SpecEdition> = phf::phf_map! { // https://github.com/tc39/proposal-promise-with-resolvers "promise-with-resolvers" => SpecEdition::ESNext, + // Set methods + // https://github.com/tc39/proposal-set-methods + "set-methods" => SpecEdition::ESNext, + // Part of the next ES15 edition "Atomics.waitAsync" => SpecEdition::ESNext, "regexp-v-flag" => SpecEdition::ESNext, diff --git a/boa_tester/src/exec/js262.rs b/tests/tester/src/exec/js262.rs similarity index 100% rename from boa_tester/src/exec/js262.rs rename to tests/tester/src/exec/js262.rs diff --git a/boa_tester/src/exec/mod.rs b/tests/tester/src/exec/mod.rs similarity index 100% rename from boa_tester/src/exec/mod.rs rename to tests/tester/src/exec/mod.rs diff --git a/boa_tester/src/main.rs b/tests/tester/src/main.rs similarity index 100% rename from boa_tester/src/main.rs rename to tests/tester/src/main.rs diff --git a/boa_tester/src/read.rs b/tests/tester/src/read.rs similarity index 84% rename from boa_tester/src/read.rs rename to tests/tester/src/read.rs index 654467e27b..b486b381b2 100644 --- a/boa_tester/src/read.rs +++ b/tests/tester/src/read.rs @@ -10,6 +10,7 @@ use color_eyre::{ use rustc_hash::FxHashMap; use serde::Deserialize; use std::{ + ffi::OsStr, fs, io, path::{Path, PathBuf}, }; @@ -144,10 +145,11 @@ pub(super) fn read_suite( let mut tests = Vec::new(); // TODO: iterate in parallel - for entry in path.read_dir().wrap_err("retrieving entry")? { + for entry in path.read_dir().wrap_err("could not retrieve entry")? { let entry = entry?; + let filetype = entry.file_type().wrap_err("could not retrieve file type")?; - if entry.file_type().wrap_err("retrieving file type")?.is_dir() { + if filetype.is_dir() { suites.push( read_suite(entry.path().as_path(), ignored, ignore_suite).wrap_err_with(|| { let path = entry.path(); @@ -155,27 +157,41 @@ pub(super) fn read_suite( format!("error reading sub-suite {suite}") })?, ); - } else if entry.file_name().to_string_lossy().contains("_FIXTURE") { continue; - } else { - let mut test = read_test(entry.path().as_path()).wrap_err_with(|| { - let path = entry.path(); - let suite = path.display(); - format!("error reading test {suite}") - })?; - - if ignore_suite - || ignored.contains_any_flag(test.flags) - || ignored.contains_test(&test.name) - || test - .features - .iter() - .any(|feat| ignored.contains_feature(feat)) - { - test.set_ignored(); - } - tests.push(test); } + + let path = entry.path(); + + if path.extension() != Some(OsStr::new("js")) { + // Ignore files that aren't executable. + continue; + } + + if path + .file_stem() + .is_some_and(|stem| stem.as_encoded_bytes().ends_with(b"FIXTURE")) + { + // Ignore files that are fixtures. + continue; + } + + let mut test = read_test(&path).wrap_err_with(|| { + let path = entry.path(); + let suite = path.display(); + format!("error reading test {suite}") + })?; + + if ignore_suite + || ignored.contains_any_flag(test.flags) + || ignored.contains_test(&test.name) + || test + .features + .iter() + .any(|feat| ignored.contains_feature(feat)) + { + test.set_ignored(); + } + tests.push(test); } Ok(TestSuite { diff --git a/boa_tester/src/results.rs b/tests/tester/src/results.rs similarity index 100% rename from boa_tester/src/results.rs rename to tests/tester/src/results.rs diff --git a/webpack.config.js b/webpack.config.js index 69fae7c074..0bbe5df3e3 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -45,14 +45,17 @@ module.exports = { }), new CleanWebpackPlugin(), new HtmlWebpackPlugin({ template: "index.html" }), - // WasmPackPlugin can not work in CI environment - !process.env.CI - ? new WasmPackPlugin({ - crateDirectory: path.resolve(__dirname, "./boa_wasm/"), - outDir: path.resolve(__dirname, "./boa_wasm/pkg/"), - forceMode: "production", - }) - : undefined, + // WasmPackPlugin doesn't work in CI environment + // thanks to https://github.com/wasm-tool/wasm-pack-plugin/issues/90 + ...(!process.env.CI + ? [ + new WasmPackPlugin({ + crateDirectory: path.resolve(__dirname, "./ffi/wasm/"), + outDir: path.resolve(__dirname, "./ffi/wasm/pkg/"), + forceMode: "production", + }), + ] + : []), new CopyWebpackPlugin({ patterns: [ { @@ -65,7 +68,7 @@ module.exports = { }, ], }), - ].filter(Boolean), + ], module: { rules: [ {