* Started with the Temporal implementation
* Implemented some useful functions
* Updaating some spec references
* Initial work on TimeZone and Instant
* More work completed on Temporal.Duration and Temporal.Instant
* General scaffolding and heavy work on Instant and Duration complete
* ZonedDateTime and Calendar started with further work on duration abstract ops
* Further work on temporal work and clippy fixes
* Post rebase fixes/reverts
* Add BuiltinCalendar and begin IsoCalendar impl
* More work completed on calendar/date/yearmonth/monthday
* Calendar and iso impl close to completion - no datelike parsing
* Initial work on temporal ISO8601 parsing and grammar
* Post rebase fixes and updates
* More on parser/Duration and work through clippy lints
* Fix bug on peek_n and add temporal cfg
* Fix clippy lints on parser tests
* Build out calendar with icu_calendar, add some tests, and misc.
* Fix spec hyperlinks
* Parser clean up and invalid annotations
* Add Duration and Temporal Parsing
* Remove IsoYearMonthRecord
* Post rebase update
* Fix and add to ISO Parser docs
* Parser/ast cleanup and duration refactor/additions
* Review feedback, options update, and duration changes
* Review changes, general cleanup, and post rebase fixes
* Fix time zone parsing issue/test logic
* Clean up parse output nodes
* Apply review feedback and various fixes
* Review feedback and get_option changes
* Review feedback
---------
Co-authored-by: Iban Eguia Moraza <razican@protonmail.ch>
Co-authored-by: José Julián Espina <jedel0124@gmail.com>
* Fix regular expression construction
The previous implementation regular expression (e.g. /abc/) used the global `RegExp`,
which caused errors when the `RegExp` was overwritten.
* Apply Review
<!---
Thank you for contributing to Boa! Please fill out the template below, and remove or add any
information as you feel necessary.
--->
This Pull Request fixes/closes #2793.
It changes the following:
- Added a condition to the boa_parser/src/parser/expression/left_hand_side/member.rs parse function match operation for the new token that allows for the operation to continue evaluating more tokens when the TARGET keyword follows it.
- Added a test to validate the fix. (Could not figure out the structure of the test suite so it's commented for now). All other tests pass.
Please let me know if there's anything else I can do to improve the fix.
Co-authored-by: jedel1043 <jedel0124@gmail.com>
As mentioned in https://github.com/boa-dev/boa/pull/2848#issuecomment-1518909512, this uses our new default ICU4X data to replace `char::is_start` and `char::is_continue` from the `boa_unicode` crate with the [`icu_properties`](https://crates.io/crates/icu_properties) crate.
Note that this doesn't deprecate `boa_unicode` yet, since that'll require some discussion about how to proceed with a now unused sub-crate.
This Pull Request implements [Initializers in ForIn Statement Heads](https://tc39.es/ecma262/#sec-initializers-in-forin-statement-heads) from the Annex B. This also cleans up the "annex-b" feature to be able to disable it with `--no-default-features`, since I couldn't test the error messages when the feature is disabled.
This Pull Request fixes some additional Annex B tests.
It changes the following:
- Fixes bugs related to parsing HTML closing comments (`-->`).
- Implements `RegExp::compile` behind the `annex-b` feature.
- Ignores the `legacy-regexp` feature flag, since it's still stage 3.
Small steps towards ES5 conformance.
This PR changes the following:
- Implements HTML comments parsing (`<!--`, `-->`).
- Gates the functionality behind a new `annex-b` feature for `boa_parser`.
- Renames `strict_mode` to `strict` to be consistent with `Parser::set_strict`.
Currently we have no explicit representation for parenthesized expressions which makes some behaviours impossible to detect. A bonus is that we can now turn AST that contains parenthesized expressions back to code.
This Pull Request changes the following:
- Add an AST node for parenthesized expressions.
- Adjust some conversions and checks to "ignore"/"expand" parenthesized expressions.
- Fix some tests that had parenthesized expressions.
This PR changes the following:
- Adds a new (very simple) security policy, to comply with GitHub standards
- Changes the internal links of the documentation to point to the new boajs.dev domain
- The developer documentation link now lies in the CONTRIBUTING.md file
This Pull Request changes the following:
- Implement `with` statement parsing, ast node, compilation and excution.
- Implement object environments that are used in the `with` statement excution.
The implementation of object environments can probably be optimized further by using more compile-time information about when object environments can exist. Maybe there could also be a separate environment stack for object environments to reduce the filtering and iteration that is needed with the current implementation.
This does not fix all tests in the `test/language/statements/with` suite yet. But for most failing tests that I have looked at we are missing other features / have bugs elsewhere.
As a note for the review:
The functions in the `impl Context` block in `boa_engine/src/environments/runtime.rs` are mostly copied / moved from the existing functions. The only change there should be the addition of the object environment logic. They had to be moved to `Context` because of borrow semantics.
<!---
Thank you for contributing to Boa! Please fill out the template below, and remove or add any
information as you feel necessary.
--->
This Pull Request addresses the broken `cargo clippy` lints that is currently causing CI to fail.
This PR migrates our entire test suite to our new testing API.
It changes the following:
- Migrates tests to new test API.
- Cleans up the API to be a bit more descriptive and maintainable.
- Prettifies our test failure display to show the failed scripts.
- Splits our massive `tests.rs` file into smaller sub-suites.
Example output of a failing test:
![image](https://user-images.githubusercontent.com/38230983/221502567-9e219371-b4ab-49d0-b42b-94a9b1a9c002.png)
This Pull Request closes#1907.
It changes the following:
- Implement several early errors relating to labels, `break` and `continue` in the parser.
- Implement an early error for invalid cover grammar of object literals in the parser.
- Remove all remaining syntax errors from the bytecompiler.