+
Skip to content
This repository was archived by the owner on Aug 31, 2023. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions crates/rome_js_parser/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ version = "0.0.2"
bitflags = { workspace = true }
cfg-if = "1.0.0"
drop_bomb = "0.1.5"
serde = { workspace = true, features = ["derive"] }
serde_json = { workspace = true }
indexmap = { workspace = true }
rome_console = { workspace = true }
rome_diagnostics = { workspace = true }
Expand All @@ -30,6 +32,7 @@ tracing = { workspace = true }
expect-test = "1.2.2"
quickcheck = "1.0.3"
quickcheck_macros = "1.0.0"
rome_js_parser = { workspace = true, features = ["serde"] }
tests_macros = { workspace = true }

[features]
Expand Down
2 changes: 1 addition & 1 deletion crates/rome_js_parser/src/lexer/buffered_lexer.rs
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,7 @@ impl<'l> BufferedLexer<'l> {

/// Rewinds the lexer to the state stored in the checkpoint.
pub fn rewind(&mut self, checkpoint: LexerCheckpoint) {
// test_err js_rewind_at_eof_token
// test_err js js_rewind_at_eof_token
// (([zAgRvz=[=(e{V{

self.inner.rewind(checkpoint);
Expand Down
2 changes: 1 addition & 1 deletion crates/rome_js_parser/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@
//! Parser tests are comments that start with `test` or `test_err` followed by the test name, and then the code on its own line.
//!
//! ```rust,ignore
//! // test feature_name
//! // test js feature_name
//! // let a = { new_feature : "" }
//! // let b = { new_feature : "" }
//! fn parse_new_feature(p: &mut Parser) -> ParsedSyntax {}
Expand Down
28 changes: 14 additions & 14 deletions crates/rome_js_parser/src/syntax/assignment.rs
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ use rome_js_syntax::{JsSyntaxKind::*, *};
use rome_parser::diagnostic::expected_any;
use rome_rowan::AstNode;

// test assignment_target
// test js assignment_target
// foo += bar = b ??= 3;
// a.foo -= bar;
// (foo = bar);
Expand All @@ -28,7 +28,7 @@ use rome_rowan::AstNode;
// ++count === 3
// a['b'] = c[d] = "test"

// test_err invalid_assignment_target
// test_err js invalid_assignment_target
// ++a = b;
// (++a) = b;
// (a = b;
Expand Down Expand Up @@ -94,7 +94,7 @@ pub(crate) fn expression_to_assignment_pattern(
}
}

// test array_or_object_member_assignment
// test js array_or_object_member_assignment
// [{
// get y() {
// throw new Test262Error('The property should not be accessed.');
Expand Down Expand Up @@ -126,7 +126,7 @@ pub(crate) fn expression_to_assignment(
checkpoint: JsParserCheckpoint,
) -> CompletedMarker {
try_expression_to_assignment(p, target, checkpoint).unwrap_or_else(
// test_err js_regex_assignment
// test_err js js_regex_assignment
// /=0*_:m/=/*_:|
|mut invalid_assignment_target| {
// Doesn't seem to be a valid assignment target. Recover and create an error.
Expand Down Expand Up @@ -188,13 +188,13 @@ impl ParseWithDefaultPattern for AssignmentPatternWithDefault {

struct ArrayAssignmentPattern;

// test array_assignment_target
// test js array_assignment_target
// [foo, bar] = baz;
// [,,,b,,c,] = baz;
// [a = "test", a.b, call().b] = baz;
// [((a))] = baz;
//
// test_err array_assignment_target_err
// test_err js array_assignment_target_err
// [a a, ++b, ] = test;
// [a, c, ...rest,] = test;
// [a = , = "test"] = test;
Expand All @@ -211,7 +211,7 @@ impl ParseArrayPattern<AssignmentPatternWithDefault> for ArrayAssignmentPattern
JS_ARRAY_ASSIGNMENT_PATTERN
}

// test array_assignment_target_rest
// test js array_assignment_target_rest
// ([ ...abcd ] = a);
// ([ ...(abcd) ] = a);
// ([ ...m.test ] = c);
Expand All @@ -220,7 +220,7 @@ impl ParseArrayPattern<AssignmentPatternWithDefault> for ArrayAssignmentPattern
// ([ ...[x, y] ] = b);
// ([ ...[ ...a ] ] = c);
//
// test_err array_assignment_target_rest_err
// test_err js array_assignment_target_rest_err
// ([ ... ] = a);
// ([ ...c = "default" ] = a);
// ([ ...rest, other_assignment ] = a);
Expand All @@ -246,7 +246,7 @@ impl ParseArrayPattern<AssignmentPatternWithDefault> for ArrayAssignmentPattern

struct ObjectAssignmentPattern;

// test object_assignment_target
// test js object_assignment_target
// ({} = {});
// ({ bar, baz } = {});
// ({ bar: [baz = "baz"], foo = "foo", ...rest } = {});
Expand All @@ -270,7 +270,7 @@ impl ParseObjectPattern for ObjectAssignmentPattern {
expected_any(&["assignment target", "rest property"], range).into_diagnostic(p)
}

// test property_assignment_target
// test js property_assignment_target
// ({x}= {});
// ({x: y}= {});
// ({x: y.test().z}= {});
Expand All @@ -280,7 +280,7 @@ impl ParseObjectPattern for ObjectAssignmentPattern {
// ({x: y = "default"}= {});
// ({0: y, [computed]: z} = {});
//
// test_err property_assignment_target_err
// test_err js property_assignment_target_err
// ({:y} = {});
// ({=y} = {});
// ({:="test"} = {});
Expand Down Expand Up @@ -312,15 +312,15 @@ impl ParseObjectPattern for ObjectAssignmentPattern {
Present(m.complete(p, kind))
}

// test rest_property_assignment_target
// test js rest_property_assignment_target
// ({ ...abcd } = a);
// ({ ...(abcd) } = a);
// ({ ...m.test } = c);
// ({ ...m[call()] } = c);
// ({ ...any.expression().b } = c);
// ({ b: { ...a } } = c);
//
// test_err rest_property_assignment_target_err
// test_err js rest_property_assignment_target_err
// ({ ... } = a);
// ({ ...c = "default" } = a);
// ({ ...{a} } = b);
Expand Down Expand Up @@ -466,7 +466,7 @@ impl RewriteParseEvents for ReparseAssignment {

match kind {
JS_IDENTIFIER_ASSIGNMENT => {
// test_err eval_arguments_assignment
// test_err js eval_arguments_assignment
// eval = "test";
// arguments = "test";
let name = completed.text(p);
Expand Down
8 changes: 4 additions & 4 deletions crates/rome_js_parser/src/syntax/auxiliary.rs
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,12 @@ use rome_js_syntax::JsSyntaxKind::{JS_BOGUS_STATEMENT, JS_VARIABLE_DECLARATION_C
use rome_js_syntax::T;
use rome_rowan::{TextRange, TextSize};

// test export_variable_clause
// test js export_variable_clause
// export let a;
// export const b = 3;
// export var c, d, e = 3;
//
// test_err export_variable_clause_error
// test_err js export_variable_clause_error
// export let a = ;
// export const b;
// export let d, c;
Expand Down Expand Up @@ -82,7 +82,7 @@ pub(crate) fn parse_declaration_clause(p: &mut JsParser, stmt_start_pos: TextSiz

match p.cur() {
T![class] | T![abstract] if !p.state().in_ambient_context() => {
// test decorator_export_class_clause
// test js decorator_export_class_clause
// export @decorator class Bar {};
// export @first @second class Foo {
// constructor() {}
Expand All @@ -96,7 +96,7 @@ pub(crate) fn parse_declaration_clause(p: &mut JsParser, stmt_start_pos: TextSiz
parse_class_declaration(p, decorator_list, StatementContext::StatementList)
}
_ => {
// test_err decorator_export_class_clause
// test_err js decorator_export_class_clause
// @decorator
// export let a;
// @decorator1 @decorator2
Expand Down
28 changes: 14 additions & 14 deletions crates/rome_js_parser/src/syntax/binding.rs
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ pub(crate) fn parse_binding(p: &mut JsParser) -> ParsedSyntax {
parse_identifier_binding(p)
}

// test_err binding_identifier_invalid
// test_err js binding_identifier_invalid
// async () => { let await = 5; }
// function *foo() {
// let yield = 5;
Expand All @@ -49,7 +49,7 @@ pub(crate) fn parse_binding(p: &mut JsParser) -> ParsedSyntax {
// const let = 5;
// let a, a;
//
// test_err binding_identifier_invalid_script
// test_err js binding_identifier_invalid_script
// // SCRIPT
// let let = 5;
// const let = 5;
Expand Down Expand Up @@ -159,26 +159,26 @@ impl ParseWithDefaultPattern for BindingPatternWithDefault {

struct ArrayBindingPattern;

// test array_binding
// test js array_binding
// let a = "b";
// let [c, b] = [1, 2];
// let [d, ...abcd] = [1];
// let [e = "default", x] = []
// let [, f, ...rest] = []
// let [[...rest2], { g }] = []
//
// test_err array_binding_err
// test_err js array_binding_err
// let [a b] = [1, 2];
// let [="default"] = [1, 2];
// let ["default"] = [1, 2];
// let [[c ] = [];
//
// test array_binding_rest
// test js array_binding_rest
// let [ ...abcd ] = a;
// let [ ...[x, y] ] = b;
// let [ ...[ ...a ] ] = c;
//
// test_err array_binding_rest_err
// test_err js array_binding_rest_err
// let [ ... ] = a;
// let [ ...c = "default" ] = a;
// let [ ...rest, other_assignment ] = a;
Expand Down Expand Up @@ -222,7 +222,7 @@ impl ParseArrayPattern<BindingPatternWithDefault> for ArrayBindingPattern {
}
}

// test_err object_binding_pattern
// test_err js object_binding_pattern
// let { 5 } } = { eval: "foo" };
// let { eval } = { eval: "foo" };
// let { 5, 6 } = { eval: "foo" };
Expand All @@ -249,20 +249,20 @@ impl ParseObjectPattern for ObjectBindingPattern {
expected_any(&["identifier", "member name", "rest pattern"], range).into_diagnostic(p)
}

// test object_property_binding
// test js object_property_binding
// let { foo: bar } = {}
// let { foo: bar_bar = baz } = {}
//
// test_err object_property_binding_err
// test_err js object_property_binding_err
// let { foo: , bar } = {}
// let { : lorem = "test" } = {}
// let { , ipsum: bazz } = {}
//
// test object_shorthand_property
// test js object_shorthand_property
// let { a, b } = c
// let { d = "default", e = call() } = c
//
// test_err object_shorthand_property_err
// test_err js object_shorthand_property_err
// let { a b } = c
// let { = "test" } = c
// let { , d } = c
Expand All @@ -285,7 +285,7 @@ impl ParseObjectPattern for ObjectBindingPattern {
JS_OBJECT_BINDING_PATTERN_PROPERTY
};

// test destructuring_initializer_binding
// test js destructuring_initializer_binding
// const { value, f = (value) => value } = item
let parent = p.state_mut().duplicate_binding_parent.take();
parse_initializer_clause(p, ExpressionContext::default()).ok();
Expand All @@ -294,11 +294,11 @@ impl ParseObjectPattern for ObjectBindingPattern {
Present(m.complete(p, kind))
}

// test rest_property_binding
// test js rest_property_binding
// let { ...abcd } = a;
// let { b: { ...a } } = c;
//
// test_err rest_property_binding_err
// test_err js rest_property_binding_err
// let { ... } = a;
// let { ...c = "default" } = a;
// let { ...{a} } = b;
Expand Down
Loading
点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载