LibJS: Box ExpressionKind::New variant
This commit is contained in:
parent
d2a5c1260d
commit
0a1bf8079c
2 changed files with 6 additions and 12 deletions
|
|
@ -340,13 +340,7 @@ impl FunctionTable {
|
|||
}
|
||||
}
|
||||
}
|
||||
ExpressionKind::Call(data) => {
|
||||
self.collect_from_expression(&data.callee, result);
|
||||
for arg in &data.arguments {
|
||||
self.collect_from_expression(&arg.value, result);
|
||||
}
|
||||
}
|
||||
ExpressionKind::New(data) => {
|
||||
ExpressionKind::Call(data) | ExpressionKind::New(data) => {
|
||||
self.collect_from_expression(&data.callee, result);
|
||||
for arg in &data.arguments {
|
||||
self.collect_from_expression(&arg.value, result);
|
||||
|
|
@ -1384,7 +1378,7 @@ pub enum ExpressionKind {
|
|||
|
||||
// Calls
|
||||
Call(Box<CallExpressionData>),
|
||||
New(CallExpressionData),
|
||||
New(Box<CallExpressionData>),
|
||||
SuperCall(SuperCallData),
|
||||
|
||||
// Spread
|
||||
|
|
|
|||
|
|
@ -1265,23 +1265,23 @@ impl Parser<'_> {
|
|||
let arguments = self.parse_arguments();
|
||||
self.expression(
|
||||
start,
|
||||
ExpressionKind::New(CallExpressionData {
|
||||
ExpressionKind::New(Box::new(CallExpressionData {
|
||||
callee: Box::new(callee),
|
||||
arguments,
|
||||
// Mirrors C++ InvocationStyle::Parenthesized for `new Foo(...)`.
|
||||
is_parenthesized: true,
|
||||
is_inside_parens: false,
|
||||
}),
|
||||
})),
|
||||
)
|
||||
} else {
|
||||
self.expression(
|
||||
start,
|
||||
ExpressionKind::New(CallExpressionData {
|
||||
ExpressionKind::New(Box::new(CallExpressionData {
|
||||
callee: Box::new(callee),
|
||||
arguments: Vec::new(),
|
||||
is_parenthesized: false,
|
||||
is_inside_parens: false,
|
||||
}),
|
||||
})),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue