pub trait JavascriptParserPlugin {
Show 49 methods
// Provided methods
fn pre_statement(
&self,
_parser: &mut JavascriptParser<'_>,
_stmt: Statement<'_>,
) -> Option<bool> { ... }
fn block_pre_statement(
&self,
_parser: &mut JavascriptParser<'_>,
_stmt: Statement<'_>,
) -> Option<bool> { ... }
fn top_level_await_expr(
&self,
_parser: &mut JavascriptParser<'_>,
_expr: &AwaitExpr,
) { ... }
fn top_level_for_of_await_stmt(
&self,
_parser: &mut JavascriptParser<'_>,
_stmt: &ForOfStmt,
) { ... }
fn can_rename(
&self,
_parser: &mut JavascriptParser<'_>,
_str: &str,
) -> Option<bool> { ... }
fn rename(
&self,
_parser: &mut JavascriptParser<'_>,
_expr: &Expr,
_str: &str,
) -> Option<bool> { ... }
fn program(
&self,
_parser: &mut JavascriptParser<'_>,
_ast: &Program,
) -> Option<bool> { ... }
fn statement(
&self,
_parser: &mut JavascriptParser<'_>,
_stmt: Statement<'_>,
) -> Option<bool> { ... }
fn module_declaration(
&self,
_parser: &mut JavascriptParser<'_>,
_decl: &ModuleDecl,
) -> Option<bool> { ... }
fn block_pre_module_declaration(
&self,
_parser: &mut JavascriptParser<'_>,
_decl: &ModuleDecl,
) -> Option<bool> { ... }
fn pre_declarator(
&self,
_parser: &mut JavascriptParser<'_>,
_declarator: &VarDeclarator,
_declaration: VariableDeclaration<'_>,
) -> Option<bool> { ... }
fn evaluate<'a>(
&self,
_parser: &mut JavascriptParser<'_>,
_expr: &'a Expr,
) -> Option<BasicEvaluatedExpression<'a>> { ... }
fn evaluate_typeof<'a>(
&self,
_parser: &mut JavascriptParser<'_>,
_expr: &'a UnaryExpr,
_for_name: &str,
) -> Option<BasicEvaluatedExpression<'a>> { ... }
fn evaluate_identifier(
&self,
_parser: &mut JavascriptParser<'_>,
_for_name: &str,
_start: u32,
_end: u32,
) -> Option<BasicEvaluatedExpression<'static>> { ... }
fn evaluate_call_expression_member<'a>(
&self,
_parser: &mut JavascriptParser<'_>,
_property: &str,
_expr: &'a CallExpr,
_param: BasicEvaluatedExpression<'a>,
) -> Option<BasicEvaluatedExpression<'a>> { ... }
fn collect_destructuring_assignment_properties(
&self,
_parser: &mut JavascriptParser<'_>,
_expr: &Expr,
) -> Option<bool> { ... }
fn pattern(
&self,
_parser: &mut JavascriptParser<'_>,
_ident: &Ident,
_for_name: &str,
) -> Option<bool> { ... }
fn call(
&self,
_parser: &mut JavascriptParser<'_>,
_expr: &CallExpr,
_for_name: &str,
) -> Option<bool> { ... }
fn call_member_chain(
&self,
_parser: &mut JavascriptParser<'_>,
_expr: &CallExpr,
_for_name: &str,
_members: &[Atom],
_members_optionals: &[bool],
_member_ranges: &[Span],
) -> Option<bool> { ... }
fn member(
&self,
_parser: &mut JavascriptParser<'_>,
_expr: &MemberExpr,
_for_name: &str,
) -> Option<bool> { ... }
fn member_chain(
&self,
_parser: &mut JavascriptParser<'_>,
_expr: &MemberExpr,
_for_name: &str,
_members: &[Atom],
_members_optionals: &[bool],
_member_ranges: &[Span],
) -> Option<bool> { ... }
fn unhandled_expression_member_chain(
&self,
_parser: &mut JavascriptParser<'_>,
_root_info: &ExportedVariableInfo,
_expr: &MemberExpr,
) -> Option<bool> { ... }
fn member_chain_of_call_member_chain(
&self,
_parser: &mut JavascriptParser<'_>,
_member_expr: &MemberExpr,
_callee_members: &[Atom],
_call_expr: &CallExpr,
_members: &[Atom],
_member_ranges: &[Span],
_for_name: &str,
) -> Option<bool> { ... }
fn call_member_chain_of_call_member_chain(
&self,
_parser: &mut JavascriptParser<'_>,
_call_expr: &CallExpr,
_callee_members: &[Atom],
_inner_call_expr: &CallExpr,
_members: &[Atom],
_member_ranges: &[Span],
_for_name: &str,
) -> Option<bool> { ... }
fn typeof(
&self,
_parser: &mut JavascriptParser<'_>,
_expr: &UnaryExpr,
_for_name: &str,
) -> Option<bool> { ... }
fn expression_logical_operator(
&self,
_parser: &mut JavascriptParser<'_>,
_expr: &BinExpr,
) -> Option<bool> { ... }
fn binary_expression(
&self,
_parser: &mut JavascriptParser<'_>,
_expr: &BinExpr,
) -> Option<bool> { ... }
fn statement_if(
&self,
_parser: &mut JavascriptParser<'_>,
_expr: &IfStmt,
) -> Option<bool> { ... }
fn class_extends_expression(
&self,
_parser: &mut JavascriptParser<'_>,
_super_class: &Expr,
_class_decl_or_expr: ClassDeclOrExpr<'_>,
) -> Option<bool> { ... }
fn class_body_element(
&self,
_parser: &mut JavascriptParser<'_>,
_element: &ClassMember,
_class_decl_or_expr: ClassDeclOrExpr<'_>,
) -> Option<bool> { ... }
fn class_body_value(
&self,
_parser: &mut JavascriptParser<'_>,
_element: &ClassMember,
_expr_span: Span,
_class_decl_or_expr: ClassDeclOrExpr<'_>,
) -> Option<bool> { ... }
fn declarator(
&self,
_parser: &mut JavascriptParser<'_>,
_expr: &VarDeclarator,
_stmt: VariableDeclaration<'_>,
) -> Option<bool> { ... }
fn new_expression(
&self,
_parser: &mut JavascriptParser<'_>,
_expr: &NewExpr,
_for_name: &str,
) -> Option<bool> { ... }
fn identifier(
&self,
_parser: &mut JavascriptParser<'_>,
_ident: &Ident,
_for_name: &str,
) -> Option<bool> { ... }
fn this(
&self,
_parser: &mut JavascriptParser<'_>,
_expr: &ThisExpr,
) -> Option<bool> { ... }
fn assign(
&self,
_parser: &mut JavascriptParser<'_>,
_expr: &AssignExpr,
_for_name: &str,
) -> Option<bool> { ... }
fn assign_member_chain(
&self,
_parser: &mut JavascriptParser<'_>,
_expr: &AssignExpr,
_members: &[Atom],
_for_name: &str,
) -> Option<bool> { ... }
fn import_call(
&self,
_parser: &mut JavascriptParser<'_>,
_expr: &CallExpr,
) -> Option<bool> { ... }
fn meta_property(
&self,
_parser: &mut JavascriptParser<'_>,
_root_name: &Atom,
_span: Span,
) -> Option<bool> { ... }
fn import(
&self,
_parser: &mut JavascriptParser<'_>,
_statement: &ImportDecl,
_source: &str,
) -> Option<bool> { ... }
fn import_specifier(
&self,
_parser: &mut JavascriptParser<'_>,
_statement: &ImportDecl,
_source: &Atom,
_export_name: Option<&Atom>,
_identifier_name: &Atom,
) -> Option<bool> { ... }
fn export_import(
&self,
_parser: &mut JavascriptParser<'_>,
_statement: ExportImport<'_>,
_source: &Atom,
) -> Option<bool> { ... }
fn export(
&self,
_parser: &mut JavascriptParser<'_>,
_statement: ExportLocal<'_>,
) -> Option<bool> { ... }
fn export_import_specifier(
&self,
_parser: &mut JavascriptParser<'_>,
_statement: ExportImport<'_>,
_source: &Atom,
_local_id: Option<&Atom>,
_export_name: Option<&Atom>,
_export_name_span: Option<Span>,
) -> Option<bool> { ... }
fn export_specifier(
&self,
_parser: &mut JavascriptParser<'_>,
_statement: ExportLocal<'_>,
_local_id: &Atom,
_export_name: &Atom,
_export_name_span: Span,
) -> Option<bool> { ... }
fn export_expression(
&self,
_parser: &mut JavascriptParser<'_>,
_statement: ExportDefaultDeclaration<'_>,
_expr: ExportDefaultExpression<'_>,
) -> Option<bool> { ... }
fn optional_chaining(
&self,
_parser: &mut JavascriptParser<'_>,
_expr: &OptChainExpr,
) -> Option<bool> { ... }
fn expression_conditional_operation(
&self,
_parser: &mut JavascriptParser<'_>,
_expr: &CondExpr,
) -> Option<bool> { ... }
fn finish(&self, _parser: &mut JavascriptParser<'_>) -> Option<bool> { ... }
}Provided Methods§
Sourcefn pre_statement(
&self,
_parser: &mut JavascriptParser<'_>,
_stmt: Statement<'_>,
) -> Option<bool>
fn pre_statement( &self, _parser: &mut JavascriptParser<'_>, _stmt: Statement<'_>, ) -> Option<bool>
Return:
Some(true)signifies the termination of the current statement’s visit during the pre-walk phase.- Other return values imply that the walk operation ought to continue
fn block_pre_statement( &self, _parser: &mut JavascriptParser<'_>, _stmt: Statement<'_>, ) -> Option<bool>
Sourcefn top_level_await_expr(
&self,
_parser: &mut JavascriptParser<'_>,
_expr: &AwaitExpr,
)
fn top_level_await_expr( &self, _parser: &mut JavascriptParser<'_>, _expr: &AwaitExpr, )
The return value will have no effect.
Sourcefn top_level_for_of_await_stmt(
&self,
_parser: &mut JavascriptParser<'_>,
_stmt: &ForOfStmt,
)
fn top_level_for_of_await_stmt( &self, _parser: &mut JavascriptParser<'_>, _stmt: &ForOfStmt, )
The return value will have no effect.
fn can_rename( &self, _parser: &mut JavascriptParser<'_>, _str: &str, ) -> Option<bool>
fn rename( &self, _parser: &mut JavascriptParser<'_>, _expr: &Expr, _str: &str, ) -> Option<bool>
fn program( &self, _parser: &mut JavascriptParser<'_>, _ast: &Program, ) -> Option<bool>
fn statement( &self, _parser: &mut JavascriptParser<'_>, _stmt: Statement<'_>, ) -> Option<bool>
fn module_declaration( &self, _parser: &mut JavascriptParser<'_>, _decl: &ModuleDecl, ) -> Option<bool>
Sourcefn block_pre_module_declaration(
&self,
_parser: &mut JavascriptParser<'_>,
_decl: &ModuleDecl,
) -> Option<bool>
fn block_pre_module_declaration( &self, _parser: &mut JavascriptParser<'_>, _decl: &ModuleDecl, ) -> Option<bool>
Return:
None means continue this ModuleDecl
Others means skip this.
This is similar hooks.block_pre_statement in webpack
fn pre_declarator( &self, _parser: &mut JavascriptParser<'_>, _declarator: &VarDeclarator, _declaration: VariableDeclaration<'_>, ) -> Option<bool>
fn evaluate<'a>( &self, _parser: &mut JavascriptParser<'_>, _expr: &'a Expr, ) -> Option<BasicEvaluatedExpression<'a>>
fn evaluate_typeof<'a>( &self, _parser: &mut JavascriptParser<'_>, _expr: &'a UnaryExpr, _for_name: &str, ) -> Option<BasicEvaluatedExpression<'a>>
fn evaluate_identifier( &self, _parser: &mut JavascriptParser<'_>, _for_name: &str, _start: u32, _end: u32, ) -> Option<BasicEvaluatedExpression<'static>>
fn evaluate_call_expression_member<'a>( &self, _parser: &mut JavascriptParser<'_>, _property: &str, _expr: &'a CallExpr, _param: BasicEvaluatedExpression<'a>, ) -> Option<BasicEvaluatedExpression<'a>>
fn collect_destructuring_assignment_properties( &self, _parser: &mut JavascriptParser<'_>, _expr: &Expr, ) -> Option<bool>
fn pattern( &self, _parser: &mut JavascriptParser<'_>, _ident: &Ident, _for_name: &str, ) -> Option<bool>
fn call( &self, _parser: &mut JavascriptParser<'_>, _expr: &CallExpr, _for_name: &str, ) -> Option<bool>
fn call_member_chain( &self, _parser: &mut JavascriptParser<'_>, _expr: &CallExpr, _for_name: &str, _members: &[Atom], _members_optionals: &[bool], _member_ranges: &[Span], ) -> Option<bool>
fn member( &self, _parser: &mut JavascriptParser<'_>, _expr: &MemberExpr, _for_name: &str, ) -> Option<bool>
fn member_chain( &self, _parser: &mut JavascriptParser<'_>, _expr: &MemberExpr, _for_name: &str, _members: &[Atom], _members_optionals: &[bool], _member_ranges: &[Span], ) -> Option<bool>
fn unhandled_expression_member_chain( &self, _parser: &mut JavascriptParser<'_>, _root_info: &ExportedVariableInfo, _expr: &MemberExpr, ) -> Option<bool>
fn member_chain_of_call_member_chain( &self, _parser: &mut JavascriptParser<'_>, _member_expr: &MemberExpr, _callee_members: &[Atom], _call_expr: &CallExpr, _members: &[Atom], _member_ranges: &[Span], _for_name: &str, ) -> Option<bool>
fn call_member_chain_of_call_member_chain( &self, _parser: &mut JavascriptParser<'_>, _call_expr: &CallExpr, _callee_members: &[Atom], _inner_call_expr: &CallExpr, _members: &[Atom], _member_ranges: &[Span], _for_name: &str, ) -> Option<bool>
fn typeof( &self, _parser: &mut JavascriptParser<'_>, _expr: &UnaryExpr, _for_name: &str, ) -> Option<bool>
Sourcefn expression_logical_operator(
&self,
_parser: &mut JavascriptParser<'_>,
_expr: &BinExpr,
) -> Option<bool>
fn expression_logical_operator( &self, _parser: &mut JavascriptParser<'_>, _expr: &BinExpr, ) -> Option<bool>
Return:
Nonemeans should walk left and right;Some(true)means should walk right;Some(false)means nothing need to do.
Sourcefn binary_expression(
&self,
_parser: &mut JavascriptParser<'_>,
_expr: &BinExpr,
) -> Option<bool>
fn binary_expression( &self, _parser: &mut JavascriptParser<'_>, _expr: &BinExpr, ) -> Option<bool>
Return:
Nonemeans should walk left and right;
Sourcefn statement_if(
&self,
_parser: &mut JavascriptParser<'_>,
_expr: &IfStmt,
) -> Option<bool>
fn statement_if( &self, _parser: &mut JavascriptParser<'_>, _expr: &IfStmt, ) -> Option<bool>
Return:
Nonemeans need walkstmt.test,stmt.consandstmt.alt;Some(true)means only need walkstmt.cons;Some(false)means only need walkstmt.alt;