refactor(es/ast): Change definition of optional chaining expressions (#3645)

This commit is contained in:
Austaras 2022-02-21 15:12:09 +08:00 committed by GitHub
parent bea6810c08
commit 2cb66ae075
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
82 changed files with 823 additions and 525 deletions

View File

@ -7,10 +7,10 @@ function _classPrivateFieldGet(receiver, privateMap) {
// @target: es2015
class A {
test() {
var _obj, ref;
var ref;
var _ref;
_classPrivateFieldGet(this, _fieldFunc).call(this);
(ref = (_obj = _classPrivateFieldGet(this, _fieldFunc)).call) === null || ref === void 0 ? void 0 : ref.call(_obj, this);
(ref = _classPrivateFieldGet(this, _fieldFunc)) === null || ref === void 0 ? void 0 : ref.call(this);
const func = _classPrivateFieldGet(this, _fieldFunc);
func();
new (_classPrivateFieldGet(this, _fieldFunc))();

View File

@ -4,8 +4,8 @@ function _classPrivateFieldGet(receiver, privateMap) {
}
class A {
test() {
var _obj, ref, _ref;
_classPrivateFieldGet(this, _fieldFunc).call(this), null === (ref = (_obj = _classPrivateFieldGet(this, _fieldFunc)).call) || void 0 === ref || ref.call(_obj, this);
var ref, _ref;
_classPrivateFieldGet(this, _fieldFunc).call(this), null === (ref = _classPrivateFieldGet(this, _fieldFunc)) || void 0 === ref || ref.call(this);
const func = _classPrivateFieldGet(this, _fieldFunc);
func(), new (_classPrivateFieldGet(this, _fieldFunc))();
const arr = [

View File

@ -141,10 +141,10 @@ var A = // @target: es2015
key: "test",
value: function test() {
var _instance;
var _obj, ref;
var ref;
var _ref;
_classPrivateFieldGet(this, _fieldFunc).call(this);
(ref = (_obj = _classPrivateFieldGet(this, _fieldFunc)).call) === null || ref === void 0 ? void 0 : ref.call(_obj, this);
(ref = _classPrivateFieldGet(this, _fieldFunc)) === null || ref === void 0 ? void 0 : ref.call(this);
var func = _classPrivateFieldGet(this, _fieldFunc);
func();
new (_classPrivateFieldGet(this, _fieldFunc))();

View File

@ -103,8 +103,8 @@ var A = function() {
{
key: "test",
value: function() {
_classPrivateFieldGet(this, _fieldFunc).call(this), null === (ref = (_obj = _classPrivateFieldGet(this, _fieldFunc)).call) || void 0 === ref || ref.call(_obj, this), _classPrivateFieldGet(this, _fieldFunc)(), new (_classPrivateFieldGet(this, _fieldFunc))();
var _instance, _obj, ref, _ref, arr = [
_classPrivateFieldGet(this, _fieldFunc).call(this), null === (ref = _classPrivateFieldGet(this, _fieldFunc)) || void 0 === ref || ref.call(this), _classPrivateFieldGet(this, _fieldFunc)(), new (_classPrivateFieldGet(this, _fieldFunc))();
var _instance, ref, _ref, arr = [
1,
2
];

View File

@ -7,9 +7,9 @@ function _classStaticPrivateFieldSpecGet(receiver, classConstructor, descriptor)
// @target: es2015
class A {
test() {
var _obj, ref;
var ref;
_classStaticPrivateFieldSpecGet(A, A, _fieldFunc).call(A);
(ref = (_obj = _classStaticPrivateFieldSpecGet(A, A, _fieldFunc)).call) === null || ref === void 0 ? void 0 : ref.call(_obj, A);
(ref = _classStaticPrivateFieldSpecGet(A, A, _fieldFunc)) === null || ref === void 0 ? void 0 : ref.call(A);
const func = _classStaticPrivateFieldSpecGet(A, A, _fieldFunc);
func();
new (_classStaticPrivateFieldSpecGet(A, A, _fieldFunc))();

View File

@ -4,8 +4,8 @@ function _classStaticPrivateFieldSpecGet(receiver, classConstructor, descriptor)
}
class A {
test() {
var _obj, ref;
_classStaticPrivateFieldSpecGet(A, A, _fieldFunc).call(A), null === (ref = (_obj = _classStaticPrivateFieldSpecGet(A, A, _fieldFunc)).call) || void 0 === ref || ref.call(_obj, A);
var ref;
_classStaticPrivateFieldSpecGet(A, A, _fieldFunc).call(A), null === (ref = _classStaticPrivateFieldSpecGet(A, A, _fieldFunc)) || void 0 === ref || ref.call(A);
const func = _classStaticPrivateFieldSpecGet(A, A, _fieldFunc);
func(), new (_classStaticPrivateFieldSpecGet(A, A, _fieldFunc))();
const arr = [

View File

@ -127,9 +127,9 @@ var A = // @target: es2015
key: "test",
value: function test() {
var _instance;
var _obj, ref;
var ref;
_classStaticPrivateFieldSpecGet(A, A, _fieldFunc).call(A);
(ref = (_obj = _classStaticPrivateFieldSpecGet(A, A, _fieldFunc)).call) === null || ref === void 0 ? void 0 : ref.call(_obj, A);
(ref = _classStaticPrivateFieldSpecGet(A, A, _fieldFunc)) === null || ref === void 0 ? void 0 : ref.call(A);
var func = _classStaticPrivateFieldSpecGet(A, A, _fieldFunc);
func();
new (_classStaticPrivateFieldSpecGet(A, A, _fieldFunc))();

View File

@ -93,8 +93,8 @@ var A = function() {
{
key: "test",
value: function() {
_classStaticPrivateFieldSpecGet(A, A, _fieldFunc).call(A), null === (ref = (_obj = _classStaticPrivateFieldSpecGet(A, A, _fieldFunc)).call) || void 0 === ref || ref.call(_obj, A), _classStaticPrivateFieldSpecGet(A, A, _fieldFunc)(), new (_classStaticPrivateFieldSpecGet(A, A, _fieldFunc))();
var _instance, _obj, ref, arr = [
_classStaticPrivateFieldSpecGet(A, A, _fieldFunc).call(A), null === (ref = _classStaticPrivateFieldSpecGet(A, A, _fieldFunc)) || void 0 === ref || ref.call(A), _classStaticPrivateFieldSpecGet(A, A, _fieldFunc)(), new (_classStaticPrivateFieldSpecGet(A, A, _fieldFunc))();
var _instance, ref, arr = [
1,
2
];

View File

@ -1013,7 +1013,87 @@ impl Take for PatOrExpr {
pub struct OptChainExpr {
pub span: Span,
pub question_dot_token: Span,
pub expr: Box<Expr>,
pub base: OptChainBase,
}
#[ast_node]
#[derive(Eq, Hash, Is, EqIgnoreSpan)]
#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))]
pub enum OptChainBase {
#[tag("MemberExpression")]
Member(MemberExpr),
#[tag("CallExpression")]
Call(OptCall),
}
#[ast_node("CallExpression")]
#[derive(Eq, Hash, EqIgnoreSpan)]
#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))]
pub struct OptCall {
pub span: Span,
pub callee: Box<Expr>,
#[serde(default, rename = "arguments")]
pub args: Vec<ExprOrSpread>,
#[serde(default, rename = "typeArguments")]
pub type_args: Option<TsTypeParamInstantiation>,
// pub type_params: Option<TsTypeParamInstantiation>,
}
impl Take for OptChainBase {
fn dummy() -> Self {
OptChainBase::Member(Take::dummy())
}
}
impl From<OptChainBase> for Expr {
fn from(opt: OptChainBase) -> Self {
match opt {
OptChainBase::Call(OptCall {
span,
callee,
args,
type_args,
}) => Self::Call(CallExpr {
callee: Callee::Expr(callee),
args,
span,
type_args,
}),
OptChainBase::Member(member) => Self::Member(member),
}
}
}
impl Take for OptCall {
fn dummy() -> Self {
Self {
span: DUMMY_SP,
callee: Take::dummy(),
args: Vec::new(),
type_args: None,
}
}
}
impl From<OptCall> for CallExpr {
fn from(
OptCall {
span,
callee,
args,
type_args,
}: OptCall,
) -> Self {
Self {
span,
callee: Callee::Expr(callee),
args,
type_args,
}
}
}
test_de!(

View File

@ -21,9 +21,9 @@ pub use self::{
expr::{
ArrayLit, ArrowExpr, AssignExpr, AwaitExpr, BinExpr, BlockStmtOrExpr, CallExpr, Callee,
ClassExpr, CondExpr, Expr, ExprOrSpread, FnExpr, Import, MemberExpr, MemberProp,
MetaPropExpr, MetaPropKind, NewExpr, ObjectLit, OptChainExpr, ParenExpr, PatOrExpr,
PropOrSpread, SeqExpr, SpreadElement, Super, SuperProp, SuperPropExpr, TaggedTpl, ThisExpr,
Tpl, TplElement, UnaryExpr, UpdateExpr, YieldExpr,
MetaPropExpr, MetaPropKind, NewExpr, ObjectLit, OptCall, OptChainBase, OptChainExpr,
ParenExpr, PatOrExpr, PropOrSpread, SeqExpr, SpreadElement, Super, SuperProp,
SuperPropExpr, TaggedTpl, ThisExpr, Tpl, TplElement, UnaryExpr, UpdateExpr, YieldExpr,
},
function::{Function, Param, ParamOrTsParamProp},
ident::{BindingIdent, Id, Ident, IdentExt, PrivateName},

View File

@ -649,8 +649,8 @@ where
fn emit_opt_chain(&mut self, n: &OptChainExpr) -> Result {
self.emit_leading_comments_of_span(n.span(), false)?;
match *n.expr {
Expr::Member(ref e) => {
match n.base {
OptChainBase::Member(ref e) => {
emit!(e.obj);
punct!("?.");
@ -660,7 +660,7 @@ where
MemberProp::PrivateName(p) => emit!(p),
}
}
Expr::Call(ref e) => {
OptChainBase::Call(ref e) => {
emit!(e.callee);
punct!("?.");
@ -668,7 +668,6 @@ where
self.emit_expr_or_spreads(n.span(), &e.args, ListFormat::CallExpressionArguments)?;
punct!(")");
}
_ => {}
}
}

View File

@ -296,7 +296,15 @@ impl StartsWithAlphaNum for Expr {
expr.starts_with_alpha_num()
}
Expr::OptChain(ref e) => e.expr.starts_with_alpha_num(),
Expr::OptChain(OptChainExpr {
base: OptChainBase::Member(MemberExpr { obj: expr, .. }),
..
}) => expr.starts_with_alpha_num(),
Expr::OptChain(OptChainExpr {
base: OptChainBase::Call(OptCall { callee, .. }),
..
}) => callee.starts_with_alpha_num(),
Expr::Invalid(..) => true,
}

View File

@ -147,7 +147,11 @@ impl NoAlert {
self.prop = Some(ident.sym.clone());
}
}
Expr::Member(member_expr) => {
Expr::Member(member_expr)
| Expr::OptChain(OptChainExpr {
base: OptChainBase::Member(member_expr),
..
}) => {
let MemberExpr { obj, prop, .. } = member_expr;
match obj.as_ref() {

View File

@ -281,8 +281,8 @@ where
_ => return,
};
match &mut *opt.expr {
Expr::Member(MemberExpr { span, obj, .. }) => {
match &mut opt.base {
OptChainBase::Member(MemberExpr { span, obj, .. }) => {
//
if is_pure_undefined_or_null(obj) {
self.changed = true;
@ -295,11 +295,7 @@ where
}
}
Expr::Call(CallExpr {
span,
callee: Callee::Expr(callee),
..
}) => {
OptChainBase::Call(OptCall { span, callee, .. }) => {
if is_pure_undefined_or_null(callee) {
self.changed = true;
tracing::debug!(
@ -310,8 +306,6 @@ where
*e = *undefined(*span);
}
}
_ => {}
}
}
}

View File

@ -108,12 +108,6 @@ fn should_replace(pred: &Expr, node: &Expr) -> bool {
}
match (pred, node) {
(pred, Expr::OptChain(node)) => {
if should_replace(pred, &node.expr) {
return true;
}
}
// super?. is invalid
(
Expr::Member(MemberExpr {
@ -125,6 +119,15 @@ fn should_replace(pred: &Expr, node: &Expr) -> bool {
obj: node_obj,
prop: nodes,
..
})
| Expr::OptChain(OptChainExpr {
base:
OptChainBase::Member(MemberExpr {
obj: node_obj,
prop: nodes,
..
}),
..
}),
) if !(pred.is_computed() || nodes.is_computed()) => {
if !pred.eq_ignore_span(nodes) {

View File

@ -168,6 +168,7 @@ pub enum SyntaxError {
ReadOnlyMethod,
GeneratorConstructor,
TsBindingPatCannotBeOptional,
SuperCallOptional,
TrailingCommaInsideImport,
@ -404,6 +405,7 @@ impl SyntaxError {
SyntaxError::TsRequiredAfterOptional => {
"A required element cannot follow an optional element.".into()
}
SyntaxError::SuperCallOptional => "Super call cannot be optional".into(),
SyntaxError::TsInvalidParamPropPat => {
"Typescript parameter property must be an identifier or assignment pattern".into()
}

View File

@ -1123,21 +1123,6 @@ impl<'a, I: Tokens> Parser<I> {
None
};
/// Wrap with optional chaining
macro_rules! wrap {
($e:expr) => {{
if let Some(question_dot_token) = question_dot_token {
Expr::OptChain(OptChainExpr {
span: span!(self, start),
question_dot_token,
expr: Box::new($e),
})
} else {
$e
}
}};
}
// $obj[name()]
if !no_computed_member
&& ((question_dot_token.is_some()
@ -1189,12 +1174,22 @@ impl<'a, I: Tokens> Parser<I> {
}
}
Callee::Expr(obj) => {
let expr = Expr::Member(MemberExpr {
let expr = MemberExpr {
span,
obj,
prop: MemberProp::Computed(prop),
});
let expr = if type_args.is_some() {
};
let expr = if let Some(question_dot_token) = question_dot_token {
Expr::OptChain(OptChainExpr {
span,
question_dot_token,
base: OptChainBase::Member(expr),
})
} else {
Expr::Member(expr)
};
if type_args.is_some() {
Expr::TsInstantiation(TsExprWithTypeArgs {
expr: Box::new(expr),
type_args,
@ -1202,15 +1197,6 @@ impl<'a, I: Tokens> Parser<I> {
})
} else {
expr
};
if let Some(question_dot_token) = question_dot_token {
Expr::OptChain(OptChainExpr {
span: span!(self, start),
question_dot_token,
expr: Box::new(expr),
})
} else {
expr
}
}
}),
@ -1230,15 +1216,38 @@ impl<'a, I: Tokens> Parser<I> {
None
};
let args = self.parse_args(obj.is_import())?;
return Ok((
Box::new(wrap!(Expr::Call(CallExpr {
span: span!(self, start),
callee: obj,
args,
type_args,
}))),
true,
));
let span = span!(self, start);
return if let Some(question_dot_token) = question_dot_token {
match obj {
Callee::Super(_) | Callee::Import(_) => {
syntax_error!(self, self.input.cur_span(), SyntaxError::SuperCallOptional)
}
Callee::Expr(callee) => Ok((
Box::new(Expr::OptChain(OptChainExpr {
span,
question_dot_token,
base: OptChainBase::Call(OptCall {
span: span!(self, start),
callee,
args,
type_args,
}),
})),
true,
)),
}
} else {
Ok((
Expr::Call(CallExpr {
span: span!(self, start),
callee: obj,
args,
type_args: None,
})
.into(),
true,
))
};
}
// member expression
@ -1309,8 +1318,17 @@ impl<'a, I: Tokens> Parser<I> {
}
}
Callee::Expr(obj) => {
let expr = Expr::Member(MemberExpr { span, obj, prop });
let expr = if type_args.is_some() {
let expr = MemberExpr { span, obj, prop };
let expr = if let Some(question_dot_token) = question_dot_token {
Expr::OptChain(OptChainExpr {
span: span!(self, start),
question_dot_token,
base: OptChainBase::Member(expr),
})
} else {
Expr::Member(expr)
};
if type_args.is_some() {
Expr::TsInstantiation(TsExprWithTypeArgs {
expr: Box::new(expr),
type_args,
@ -1318,15 +1336,6 @@ impl<'a, I: Tokens> Parser<I> {
})
} else {
expr
};
if let Some(question_dot_token) = question_dot_token {
Expr::OptChain(OptChainExpr {
span: span!(self, start),
question_dot_token,
expr: Box::new(expr),
})
} else {
expr
}
}
}),

View File

@ -302,7 +302,10 @@ impl<'a, I: Tokens> Parser<I> {
}
match &*arg {
Expr::Member(..) => {}
Expr::OptChain(e) if matches!(&*e.expr, Expr::Member(..)) => {}
Expr::OptChain(OptChainExpr {
base: OptChainBase::Member(..),
..
}) => {}
_ => self.emit_err(unwrap_paren(&arg).span(), SyntaxError::TS2703),
}
}

View File

@ -552,6 +552,16 @@ impl Visit for Shower<'_> {
n.visit_children_with(self)
}
fn visit_opt_chain_base(&mut self, n: &OptChainBase) {
self.show("OptChainBase", n);
n.visit_children_with(self)
}
fn visit_opt_call(&mut self, n: &OptCall) {
self.show("OptCall", n);
n.visit_children_with(self)
}
fn visit_param(&mut self, n: &Param) {
self.show("Param", n);
n.visit_children_with(self)

View File

@ -35,6 +35,12 @@ warning: OptChainExpr
1 | a?.b?.c
| ^^^^^^^
warning: OptChainBase
--> $DIR/tests/span/js/expr/optional-chaining.js:1:1
|
1 | a?.b?.c
| ^^^^^^^
warning: MemberExpr
--> $DIR/tests/span/js/expr/optional-chaining.js:1:1
|
@ -53,6 +59,12 @@ warning: OptChainExpr
1 | a?.b?.c
| ^^^^
warning: OptChainBase
--> $DIR/tests/span/js/expr/optional-chaining.js:1:1
|
1 | a?.b?.c
| ^^^^
warning: MemberExpr
--> $DIR/tests/span/js/expr/optional-chaining.js:1:1
|
@ -113,17 +125,17 @@ warning: OptChainExpr
2 | A?.['B']?.()
| ^^^^^^^^^^^^
warning: CallExpr
warning: OptChainBase
--> $DIR/tests/span/js/expr/optional-chaining.js:2:1
|
2 | A?.['B']?.()
| ^^^^^^^^^^^^
warning: Callee
warning: OptCall
--> $DIR/tests/span/js/expr/optional-chaining.js:2:1
|
2 | A?.['B']?.()
| ^^^^^^^^
| ^^^^^^^^^^^^
warning: Expr
--> $DIR/tests/span/js/expr/optional-chaining.js:2:1
@ -137,6 +149,12 @@ warning: OptChainExpr
2 | A?.['B']?.()
| ^^^^^^^^
warning: OptChainBase
--> $DIR/tests/span/js/expr/optional-chaining.js:2:1
|
2 | A?.['B']?.()
| ^^^^^^^^
warning: MemberExpr
--> $DIR/tests/span/js/expr/optional-chaining.js:2:1
|

View File

@ -119,7 +119,7 @@
"end": 68,
"ctxt": 0
},
"expr": {
"base": {
"type": "CallExpression",
"span": {
"start": 65,
@ -295,7 +295,7 @@
"end": 128,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 125,
@ -532,7 +532,7 @@
"end": 200,
"ctxt": 0
},
"expr": {
"base": {
"type": "CallExpression",
"span": {
"start": 195,

View File

@ -371,7 +371,7 @@
"end": 131,
"ctxt": 0
},
"expr": {
"base": {
"type": "CallExpression",
"span": {
"start": 126,
@ -390,7 +390,7 @@
"end": 128,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 126,
@ -519,7 +519,7 @@
"end": 234,
"ctxt": 0
},
"expr": {
"base": {
"type": "CallExpression",
"span": {
"start": 229,
@ -538,7 +538,7 @@
"end": 231,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 229,
@ -697,7 +697,7 @@
"end": 300,
"ctxt": 0
},
"expr": {
"base": {
"type": "CallExpression",
"span": {
"start": 295,
@ -716,7 +716,7 @@
"end": 297,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 295,
@ -864,7 +864,7 @@
"end": 364,
"ctxt": 0
},
"expr": {
"base": {
"type": "CallExpression",
"span": {
"start": 359,
@ -883,7 +883,7 @@
"end": 361,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 359,
@ -1007,7 +1007,7 @@
"end": 460,
"ctxt": 0
},
"expr": {
"base": {
"type": "CallExpression",
"span": {
"start": 455,
@ -1026,7 +1026,7 @@
"end": 457,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 455,

View File

@ -169,7 +169,7 @@
"end": 81,
"ctxt": 0
},
"expr": {
"base": {
"type": "CallExpression",
"span": {
"start": 78,
@ -210,7 +210,7 @@
"end": 89,
"ctxt": 0
},
"expr": {
"base": {
"type": "CallExpression",
"span": {
"start": 86,
@ -264,7 +264,7 @@
"end": 98,
"ctxt": 0
},
"expr": {
"base": {
"type": "CallExpression",
"span": {
"start": 95,
@ -347,7 +347,7 @@
"end": 115,
"ctxt": 0
},
"expr": {
"base": {
"type": "CallExpression",
"span": {
"start": 112,
@ -639,7 +639,7 @@
"end": 204,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 201,
@ -698,7 +698,7 @@
"end": 213,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 210,
@ -770,7 +770,7 @@
"end": 223,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 220,
@ -871,7 +871,7 @@
"end": 241,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 238,
@ -996,7 +996,7 @@
"end": 265,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 262,
@ -1067,7 +1067,7 @@
"end": 278,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 275,
@ -1151,7 +1151,7 @@
"end": 292,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 289,
@ -1264,7 +1264,7 @@
"end": 314,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 311,
@ -1629,7 +1629,7 @@
"end": 419,
"ctxt": 0
},
"expr": {
"base": {
"type": "CallExpression",
"span": {
"start": 414,
@ -1706,7 +1706,7 @@
"end": 431,
"ctxt": 0
},
"expr": {
"base": {
"type": "CallExpression",
"span": {
"start": 426,
@ -1796,7 +1796,7 @@
"end": 444,
"ctxt": 0
},
"expr": {
"base": {
"type": "CallExpression",
"span": {
"start": 439,
@ -1915,7 +1915,7 @@
"end": 465,
"ctxt": 0
},
"expr": {
"base": {
"type": "CallExpression",
"span": {
"start": 460,
@ -2058,7 +2058,7 @@
"end": 492,
"ctxt": 0
},
"expr": {
"base": {
"type": "CallExpression",
"span": {
"start": 487,
@ -2147,7 +2147,7 @@
"end": 507,
"ctxt": 0
},
"expr": {
"base": {
"type": "CallExpression",
"span": {
"start": 502,
@ -2249,7 +2249,7 @@
"end": 523,
"ctxt": 0
},
"expr": {
"base": {
"type": "CallExpression",
"span": {
"start": 518,
@ -2380,7 +2380,7 @@
"end": 547,
"ctxt": 0
},
"expr": {
"base": {
"type": "CallExpression",
"span": {
"start": 542,
@ -2535,7 +2535,7 @@
"end": 580,
"ctxt": 0
},
"expr": {
"base": {
"type": "CallExpression",
"span": {
"start": 572,
@ -2624,7 +2624,7 @@
"end": 595,
"ctxt": 0
},
"expr": {
"base": {
"type": "CallExpression",
"span": {
"start": 587,
@ -2726,7 +2726,7 @@
"end": 611,
"ctxt": 0
},
"expr": {
"base": {
"type": "CallExpression",
"span": {
"start": 603,
@ -2857,7 +2857,7 @@
"end": 635,
"ctxt": 0
},
"expr": {
"base": {
"type": "CallExpression",
"span": {
"start": 627,
@ -3367,7 +3367,7 @@
"end": 791,
"ctxt": 0
},
"expr": {
"base": {
"type": "CallExpression",
"span": {
"start": 788,
@ -3566,7 +3566,7 @@
"end": 879,
"ctxt": 0
},
"expr": {
"base": {
"type": "CallExpression",
"span": {
"start": 866,
@ -3656,7 +3656,7 @@
"end": 900,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 897,
@ -3748,7 +3748,7 @@
"end": 919,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 916,

View File

@ -401,7 +401,7 @@
"end": 188,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 182,
@ -482,7 +482,7 @@
"end": 208,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 202,

View File

@ -151,7 +151,7 @@
"end": 170,
"ctxt": 0
},
"expr": {
"base": {
"type": "CallExpression",
"span": {
"start": 157,
@ -255,7 +255,7 @@
"end": 216,
"ctxt": 0
},
"expr": {
"base": {
"type": "CallExpression",
"span": {
"start": 200,

View File

@ -332,7 +332,7 @@
"end": 214,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 212,
@ -510,7 +510,7 @@
"end": 256,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 254,
@ -692,7 +692,7 @@
"end": 299,
"ctxt": 0
},
"expr": {
"base": {
"type": "CallExpression",
"span": {
"start": 297,
@ -868,7 +868,7 @@
"end": 340,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 338,
@ -1216,7 +1216,7 @@
"end": 481,
"ctxt": 0
},
"expr": {
"base": {
"type": "CallExpression",
"span": {
"start": 479,
@ -1696,7 +1696,7 @@
"end": 664,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 661,
@ -1823,7 +1823,7 @@
"end": 734,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 731,
@ -1879,7 +1879,7 @@
"end": 745,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 742,
@ -1991,7 +1991,7 @@
"end": 783,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 780,
@ -2115,7 +2115,7 @@
"end": 809,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 806,
@ -2467,7 +2467,7 @@
"end": 900,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 897,
@ -2587,7 +2587,7 @@
"end": 937,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 934,
@ -2664,7 +2664,7 @@
"end": 965,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 962,
@ -2770,7 +2770,7 @@
"end": 988,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 985,
@ -2988,7 +2988,7 @@
"end": 1050,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 1045,
@ -3152,7 +3152,7 @@
"end": 1113,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 1108,
@ -3265,7 +3265,7 @@
"end": 1153,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 1148,
@ -3425,7 +3425,7 @@
"end": 1182,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 1177,
@ -3763,7 +3763,7 @@
"end": 1266,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 1256,
@ -3789,7 +3789,7 @@
"end": 1261,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 1256,
@ -4138,7 +4138,7 @@
"end": 1345,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 1336,
@ -4255,7 +4255,7 @@
"end": 1366,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 1361,
@ -4344,7 +4344,7 @@
"end": 1396,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 1386,
@ -4370,7 +4370,7 @@
"end": 1391,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 1386,
@ -4506,7 +4506,7 @@
"end": 1436,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 1431,
@ -4580,7 +4580,7 @@
"end": 1449,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 1444,
@ -4658,7 +4658,7 @@
"end": 1469,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 1459,
@ -4684,7 +4684,7 @@
"end": 1464,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 1459,
@ -4957,7 +4957,7 @@
"end": 1514,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 1509,
@ -5031,7 +5031,7 @@
"end": 1523,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 1518,
@ -5109,7 +5109,7 @@
"end": 1539,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 1529,
@ -5135,7 +5135,7 @@
"end": 1534,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 1529,
@ -5652,7 +5652,7 @@
"end": 1704,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 1701,
@ -5793,7 +5793,7 @@
"end": 1765,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 1762,
@ -5899,7 +5899,7 @@
"end": 1788,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 1785,
@ -6655,7 +6655,7 @@
"end": 2158,
"ctxt": 0
},
"expr": {
"base": {
"type": "CallExpression",
"span": {
"start": 2149,
@ -6774,7 +6774,7 @@
"end": 2221,
"ctxt": 0
},
"expr": {
"base": {
"type": "CallExpression",
"span": {
"start": 2207,
@ -6935,7 +6935,7 @@
"end": 2318,
"ctxt": 0
},
"expr": {
"base": {
"type": "CallExpression",
"span": {
"start": 2304,
@ -7054,7 +7054,7 @@
"end": 2378,
"ctxt": 0
},
"expr": {
"base": {
"type": "CallExpression",
"span": {
"start": 2367,
@ -7433,7 +7433,7 @@
"end": 2533,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 2531,
@ -7548,7 +7548,7 @@
"end": 2582,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 2580,
@ -7694,7 +7694,7 @@
"end": 2638,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 2636,
@ -7812,7 +7812,7 @@
"end": 2689,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 2687,
@ -7927,7 +7927,7 @@
"end": 2737,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 2735,
@ -8073,7 +8073,7 @@
"end": 2792,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 2790,
@ -8328,7 +8328,7 @@
"end": 2892,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 2890,
@ -8443,7 +8443,7 @@
"end": 2941,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 2939,
@ -8589,7 +8589,7 @@
"end": 2997,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 2995,
@ -8707,7 +8707,7 @@
"end": 3048,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 3046,
@ -8822,7 +8822,7 @@
"end": 3096,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 3094,
@ -8968,7 +8968,7 @@
"end": 3151,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 3149,
@ -9242,7 +9242,7 @@
"end": 3268,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 3266,
@ -9357,7 +9357,7 @@
"end": 3327,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 3325,
@ -9503,7 +9503,7 @@
"end": 3393,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 3391,
@ -9621,7 +9621,7 @@
"end": 3454,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 3452,
@ -9736,7 +9736,7 @@
"end": 3512,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 3510,
@ -9882,7 +9882,7 @@
"end": 3577,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 3575,
@ -10156,7 +10156,7 @@
"end": 3700,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 3698,
@ -10271,7 +10271,7 @@
"end": 3749,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 3747,
@ -10417,7 +10417,7 @@
"end": 3805,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 3803,
@ -10535,7 +10535,7 @@
"end": 3856,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 3854,
@ -10650,7 +10650,7 @@
"end": 3914,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 3912,
@ -10796,7 +10796,7 @@
"end": 3979,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 3977,
@ -11015,7 +11015,7 @@
"end": 4079,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 4077,
@ -11130,7 +11130,7 @@
"end": 4132,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 4130,
@ -11276,7 +11276,7 @@
"end": 4192,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 4190,
@ -11394,7 +11394,7 @@
"end": 4247,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 4245,
@ -11509,7 +11509,7 @@
"end": 4299,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 4297,
@ -11655,7 +11655,7 @@
"end": 4358,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 4356,
@ -11874,7 +11874,7 @@
"end": 4453,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 4451,
@ -11987,7 +11987,7 @@
"end": 4511,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 4509,
@ -12131,7 +12131,7 @@
"end": 4576,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 4574,
@ -12247,7 +12247,7 @@
"end": 4636,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 4634,
@ -12360,7 +12360,7 @@
"end": 4683,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 4681,
@ -12504,7 +12504,7 @@
"end": 4737,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 4735,
@ -12721,7 +12721,7 @@
"end": 4821,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 4819,
@ -12836,7 +12836,7 @@
"end": 4874,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 4872,
@ -12982,7 +12982,7 @@
"end": 4934,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 4932,
@ -13237,7 +13237,7 @@
"end": 5044,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 5042,
@ -13397,7 +13397,7 @@
"end": 5135,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 5133,
@ -13557,7 +13557,7 @@
"end": 5226,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 5224,
@ -13717,7 +13717,7 @@
"end": 5316,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 5314,
@ -14014,7 +14014,7 @@
"end": 5463,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 5461,
@ -14174,7 +14174,7 @@
"end": 5564,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 5562,
@ -14334,7 +14334,7 @@
"end": 5665,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 5663,
@ -14494,7 +14494,7 @@
"end": 5765,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 5763,
@ -14755,7 +14755,7 @@
"end": 5905,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 5903,
@ -14915,7 +14915,7 @@
"end": 6000,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 5998,
@ -15075,7 +15075,7 @@
"end": 6095,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 6093,
@ -15235,7 +15235,7 @@
"end": 6189,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 6187,
@ -15504,7 +15504,7 @@
"end": 6330,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 6328,
@ -15632,7 +15632,7 @@
"end": 6389,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 6387,
@ -15791,7 +15791,7 @@
"end": 6455,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 6453,
@ -15914,7 +15914,7 @@
"end": 6509,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 6507,
@ -16138,7 +16138,7 @@
"end": 6607,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 6605,
@ -16266,7 +16266,7 @@
"end": 6666,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 6664,
@ -16425,7 +16425,7 @@
"end": 6732,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 6730,
@ -16548,7 +16548,7 @@
"end": 6786,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 6784,
@ -16772,7 +16772,7 @@
"end": 6889,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 6887,
@ -16945,7 +16945,7 @@
"end": 6990,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 6988,
@ -17118,7 +17118,7 @@
"end": 7091,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 7089,
@ -17291,7 +17291,7 @@
"end": 7191,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 7189,
@ -17565,7 +17565,7 @@
"end": 7331,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 7329,
@ -17738,7 +17738,7 @@
"end": 7435,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 7433,
@ -17911,7 +17911,7 @@
"end": 7539,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 7537,
@ -18084,7 +18084,7 @@
"end": 7642,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 7640,
@ -18677,7 +18677,7 @@
"end": 7922,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 7920,
@ -18840,7 +18840,7 @@
"end": 7985,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 7983,
@ -19021,7 +19021,7 @@
"end": 8062,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 8060,
@ -19192,7 +19192,7 @@
"end": 8145,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 8143,
@ -19386,7 +19386,7 @@
"end": 8227,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 8225,
@ -19800,7 +19800,7 @@
"end": 8552,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 8550,
@ -20478,7 +20478,7 @@
"end": 9019,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 9013,
@ -21062,7 +21062,7 @@
"end": 9389,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 9378,
@ -21499,7 +21499,7 @@
"end": 9692,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 9673,
@ -21723,7 +21723,7 @@
"end": 9881,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 9862,
@ -22175,7 +22175,7 @@
"end": 10113,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 10106,
@ -22317,7 +22317,7 @@
"end": 10159,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 10152,

View File

@ -355,7 +355,7 @@
"end": 151,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 147,
@ -475,7 +475,7 @@
"end": 214,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 210,
@ -652,7 +652,7 @@
"end": 274,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 270,
@ -772,7 +772,7 @@
"end": 337,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 333,
@ -1337,7 +1337,7 @@
"end": 494,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 492,
@ -1581,7 +1581,7 @@
"end": 633,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 631,
@ -1825,7 +1825,7 @@
"end": 767,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 765,
@ -2069,7 +2069,7 @@
"end": 896,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 894,
@ -2313,7 +2313,7 @@
"end": 1030,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 1028,
@ -2555,7 +2555,7 @@
"end": 1172,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 1170,
@ -2797,7 +2797,7 @@
"end": 1301,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 1299,
@ -3039,7 +3039,7 @@
"end": 1433,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 1431,

View File

@ -143,7 +143,7 @@
"end": 73,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 70,
@ -208,7 +208,7 @@
"end": 88,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 85,
@ -426,7 +426,7 @@
"end": 156,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 153,
@ -509,7 +509,7 @@
"end": 173,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 170,
@ -731,7 +731,7 @@
"end": 245,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 240,
@ -814,7 +814,7 @@
"end": 262,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 257,
@ -1108,7 +1108,7 @@
"end": 341,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 331,
@ -1134,7 +1134,7 @@
"end": 336,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 331,
@ -1233,7 +1233,7 @@
"end": 364,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 352,
@ -1266,7 +1266,7 @@
"end": 358,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 353,
@ -1373,7 +1373,7 @@
"end": 386,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 376,
@ -1399,7 +1399,7 @@
"end": 381,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 376,
@ -1715,7 +1715,7 @@
"end": 470,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 457,
@ -1748,7 +1748,7 @@
"end": 462,
"ctxt": 0
},
"expr": {
"base": {
"type": "CallExpression",
"span": {
"start": 457,
@ -1857,7 +1857,7 @@
"end": 495,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 482,
@ -1890,7 +1890,7 @@
"end": 487,
"ctxt": 0
},
"expr": {
"base": {
"type": "CallExpression",
"span": {
"start": 482,
@ -2210,7 +2210,7 @@
"end": 578,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 564,
@ -2236,7 +2236,7 @@
"end": 569,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 564,
@ -2366,7 +2366,7 @@
"end": 608,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 594,
@ -2392,7 +2392,7 @@
"end": 599,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 594,

View File

@ -135,7 +135,7 @@
"end": 67,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 64,
@ -355,7 +355,7 @@
"end": 131,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 128,
@ -434,7 +434,7 @@
"end": 144,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 141,
@ -658,7 +658,7 @@
"end": 214,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 206,
@ -737,7 +737,7 @@
"end": 223,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 218,

View File

@ -83,7 +83,7 @@
"end": 47,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 43,
@ -161,7 +161,7 @@
"end": 61,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 57,
@ -243,7 +243,7 @@
"end": 76,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 72,
@ -321,7 +321,7 @@
"end": 90,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 86,
@ -403,7 +403,7 @@
"end": 108,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 104,
@ -481,7 +481,7 @@
"end": 122,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 118,
@ -563,7 +563,7 @@
"end": 137,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 133,
@ -641,7 +641,7 @@
"end": 151,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 147,
@ -722,7 +722,7 @@
"end": 165,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 161,
@ -808,7 +808,7 @@
"end": 181,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 177,
@ -898,7 +898,7 @@
"end": 198,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 194,
@ -984,7 +984,7 @@
"end": 215,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 211,
@ -1066,7 +1066,7 @@
"end": 239,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 235,
@ -1151,7 +1151,7 @@
"end": 263,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 259,
@ -1241,7 +1241,7 @@
"end": 288,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 284,
@ -1327,7 +1327,7 @@
"end": 312,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 308,
@ -1548,7 +1548,7 @@
"end": 371,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 367,
@ -1792,7 +1792,7 @@
"end": 436,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 432,
@ -1999,7 +1999,7 @@
"end": 489,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 485,

View File

@ -135,7 +135,7 @@
"end": 66,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 63,
@ -355,7 +355,7 @@
"end": 130,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 127,
@ -434,7 +434,7 @@
"end": 143,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 140,
@ -658,7 +658,7 @@
"end": 213,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 205,
@ -737,7 +737,7 @@
"end": 222,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 217,
@ -1033,7 +1033,7 @@
"end": 301,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 287,
@ -1059,7 +1059,7 @@
"end": 292,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 287,
@ -1161,7 +1161,7 @@
"end": 319,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 305,
@ -1187,7 +1187,7 @@
"end": 310,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 305,
@ -1517,7 +1517,7 @@
"end": 402,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 386,
@ -1550,7 +1550,7 @@
"end": 391,
"ctxt": 0
},
"expr": {
"base": {
"type": "CallExpression",
"span": {
"start": 386,
@ -1655,7 +1655,7 @@
"end": 422,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 406,
@ -1688,7 +1688,7 @@
"end": 411,
"ctxt": 0
},
"expr": {
"base": {
"type": "CallExpression",
"span": {
"start": 406,
@ -1805,7 +1805,7 @@
"end": 449,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 430,
@ -1838,7 +1838,7 @@
"end": 438,
"ctxt": 0
},
"expr": {
"base": {
"type": "CallExpression",
"span": {
"start": 430,
@ -1955,7 +1955,7 @@
"end": 472,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 453,
@ -1988,7 +1988,7 @@
"end": 461,
"ctxt": 0
},
"expr": {
"base": {
"type": "CallExpression",
"span": {
"start": 453,
@ -2282,7 +2282,7 @@
"end": 562,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 549,
@ -2385,7 +2385,7 @@
"end": 586,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 583,
@ -2472,7 +2472,7 @@
"end": 600,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 597,
@ -2578,7 +2578,7 @@
"end": 617,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 614,
@ -2673,7 +2673,7 @@
"end": 632,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 629,

View File

@ -6913,7 +6913,7 @@
"end": 4093,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 4089,

View File

@ -134,7 +134,7 @@
"end": 163,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 147,

View File

@ -283,7 +283,7 @@
"end": 182,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 178,
@ -518,7 +518,7 @@
"end": 278,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 274,
@ -753,7 +753,7 @@
"end": 374,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 370,

View File

@ -903,7 +903,7 @@
"end": 460,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 458,
@ -952,7 +952,7 @@
"end": 468,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 466,
@ -1013,7 +1013,7 @@
"end": 515,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 513,
@ -1062,7 +1062,7 @@
"end": 523,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 521,

View File

@ -197,7 +197,7 @@
"end": 98,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 94,

View File

@ -97,7 +97,7 @@
"end": 171,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 165,

View File

@ -569,7 +569,7 @@
"end": 298,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 291,

View File

@ -196,7 +196,7 @@
"end": 195,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 191,
@ -433,7 +433,7 @@
"end": 252,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 248,

View File

@ -196,7 +196,7 @@
"end": 178,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 174,

View File

@ -197,7 +197,7 @@
"end": 196,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 192,
@ -397,7 +397,7 @@
"end": 243,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 239,

View File

@ -197,7 +197,7 @@
"end": 179,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 175,

View File

@ -150,7 +150,7 @@
"end": 93,
"ctxt": 0
},
"expr": {
"base": {
"type": "CallExpression",
"span": {
"start": 78,
@ -234,7 +234,7 @@
"end": 111,
"ctxt": 0
},
"expr": {
"base": {
"type": "CallExpression",
"span": {
"start": 98,
@ -318,7 +318,7 @@
"end": 156,
"ctxt": 0
},
"expr": {
"base": {
"type": "CallExpression",
"span": {
"start": 123,
@ -402,7 +402,7 @@
"end": 198,
"ctxt": 0
},
"expr": {
"base": {
"type": "CallExpression",
"span": {
"start": 167,

View File

@ -655,7 +655,7 @@
"end": 331,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 328,
@ -840,7 +840,7 @@
"end": 396,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 393,
@ -1124,7 +1124,7 @@
"end": 514,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 511,
@ -1302,7 +1302,7 @@
"end": 580,
"ctxt": 0
},
"expr": {
"base": {
"type": "CallExpression",
"span": {
"start": 576,
@ -1472,7 +1472,7 @@
"end": 641,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 638,
@ -1669,7 +1669,7 @@
"end": 711,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 707,
@ -1865,7 +1865,7 @@
"end": 782,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 778,
@ -2073,7 +2073,7 @@
"end": 857,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 852,

View File

@ -903,7 +903,7 @@
"end": 308,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 305,
@ -1009,7 +1009,7 @@
"end": 326,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 323,
@ -1125,7 +1125,7 @@
"end": 346,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 343,

View File

@ -395,7 +395,7 @@
"end": 191,
"ctxt": 0
},
"expr": {
"base": {
"type": "CallExpression",
"span": {
"start": 175,

View File

@ -397,7 +397,7 @@
"end": 201,
"ctxt": 0
},
"expr": {
"base": {
"type": "CallExpression",
"span": {
"start": 188,

View File

@ -135,7 +135,7 @@
"end": 67,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 64,
@ -343,7 +343,7 @@
"end": 127,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 124,
@ -555,7 +555,7 @@
"end": 191,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 186,

View File

@ -83,7 +83,7 @@
"end": 47,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 43,
@ -149,7 +149,7 @@
"end": 57,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 53,
@ -219,7 +219,7 @@
"end": 69,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 65,
@ -285,7 +285,7 @@
"end": 79,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 75,
@ -355,7 +355,7 @@
"end": 94,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 90,
@ -421,7 +421,7 @@
"end": 104,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 100,
@ -491,7 +491,7 @@
"end": 116,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 112,
@ -557,7 +557,7 @@
"end": 126,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 122,
@ -626,7 +626,7 @@
"end": 137,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 133,
@ -700,7 +700,7 @@
"end": 149,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 145,
@ -778,7 +778,7 @@
"end": 163,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 159,
@ -852,7 +852,7 @@
"end": 176,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 172,
@ -922,7 +922,7 @@
"end": 197,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 193,
@ -995,7 +995,7 @@
"end": 217,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 213,
@ -1073,7 +1073,7 @@
"end": 239,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 235,
@ -1147,7 +1147,7 @@
"end": 259,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 255,
@ -1356,7 +1356,7 @@
"end": 311,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 307,
@ -1588,7 +1588,7 @@
"end": 369,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 365,
@ -1783,7 +1783,7 @@
"end": 415,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 411,

View File

@ -135,7 +135,7 @@
"end": 66,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 63,
@ -343,7 +343,7 @@
"end": 126,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 123,
@ -555,7 +555,7 @@
"end": 190,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 185,
@ -839,7 +839,7 @@
"end": 261,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 251,
@ -865,7 +865,7 @@
"end": 256,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 251,
@ -1171,7 +1171,7 @@
"end": 337,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 324,
@ -1204,7 +1204,7 @@
"end": 329,
"ctxt": 0
},
"expr": {
"base": {
"type": "CallExpression",
"span": {
"start": 324,
@ -1462,7 +1462,7 @@
"end": 423,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 410,
@ -1546,7 +1546,7 @@
"end": 443,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 440,
@ -1628,7 +1628,7 @@
"end": 471,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 468,
@ -1710,7 +1710,7 @@
"end": 481,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 478,

View File

@ -151,7 +151,7 @@
"end": 139,
"ctxt": 0
},
"expr": {
"base": {
"type": "CallExpression",
"span": {
"start": 126,
@ -255,7 +255,7 @@
"end": 205,
"ctxt": 0
},
"expr": {
"base": {
"type": "CallExpression",
"span": {
"start": 192,

View File

@ -467,7 +467,7 @@
"end": 317,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 312,
@ -628,7 +628,7 @@
"end": 375,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 370,

View File

@ -467,7 +467,7 @@
"end": 318,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 313,
@ -628,7 +628,7 @@
"end": 376,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 371,

View File

@ -467,7 +467,7 @@
"end": 298,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 293,
@ -628,7 +628,7 @@
"end": 356,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 351,

View File

@ -467,7 +467,7 @@
"end": 299,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 294,
@ -628,7 +628,7 @@
"end": 357,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 352,

View File

@ -124,7 +124,7 @@
"end": 94,
"ctxt": 0
},
"expr": {
"base": {
"type": "CallExpression",
"span": {
"start": 82,

View File

@ -287,7 +287,7 @@
"end": 253,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 250,

View File

@ -1001,7 +1001,7 @@
"end": 566,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 555,

View File

@ -46,7 +46,7 @@
"end": 21,
"ctxt": 0
},
"expr": {
"base": {
"type": "CallExpression",
"span": {
"start": 11,

View File

@ -33,7 +33,7 @@
"end": 11,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 7,

View File

@ -32,7 +32,7 @@
"end": 4,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 0,
@ -99,7 +99,7 @@
"end": 19,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 15,
@ -166,7 +166,7 @@
"end": 42,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 33,
@ -185,7 +185,7 @@
"end": 37,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 33,
@ -257,7 +257,7 @@
"end": 67,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 53,
@ -276,7 +276,7 @@
"end": 57,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 53,

View File

@ -39,7 +39,7 @@
"end": 6,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 4,

View File

@ -25,7 +25,7 @@
"end": 5,
"ctxt": 0
},
"expr": {
"base": {
"type": "CallExpression",
"span": {
"start": 0,
@ -66,7 +66,7 @@
"end": 15,
"ctxt": 0
},
"expr": {
"base": {
"type": "CallExpression",
"span": {
"start": 10,
@ -134,7 +134,7 @@
"end": 32,
"ctxt": 0
},
"expr": {
"base": {
"type": "CallExpression",
"span": {
"start": 24,
@ -153,7 +153,7 @@
"end": 26,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 24,
@ -206,7 +206,7 @@
"end": 45,
"ctxt": 0
},
"expr": {
"base": {
"type": "CallExpression",
"span": {
"start": 37,
@ -225,7 +225,7 @@
"end": 39,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 37,
@ -305,7 +305,7 @@
"end": 61,
"ctxt": 0
},
"expr": {
"base": {
"type": "CallExpression",
"span": {
"start": 54,

View File

@ -25,7 +25,7 @@
"end": 4,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 0,
@ -82,7 +82,7 @@
"end": 25,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 13,
@ -101,7 +101,7 @@
"end": 17,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 13,
@ -178,7 +178,7 @@
"end": 39,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 35,
@ -234,7 +234,7 @@
"end": 60,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 48,
@ -253,7 +253,7 @@
"end": 52,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 48,
@ -328,7 +328,7 @@
"end": 75,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 69,
@ -403,7 +403,7 @@
"end": 90,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 84,

View File

@ -25,7 +25,7 @@
"end": 4,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 0,
@ -74,7 +74,7 @@
"end": 19,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 10,
@ -93,7 +93,7 @@
"end": 14,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 10,
@ -154,7 +154,7 @@
"end": 33,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 25,

View File

@ -32,7 +32,7 @@
"end": 4,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 0,

View File

@ -32,7 +32,7 @@
"end": 6,
"ctxt": 0
},
"expr": {
"base": {
"type": "CallExpression",
"span": {
"start": 4,

View File

@ -32,7 +32,7 @@
"end": 2,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 0,

View File

@ -39,7 +39,7 @@
"end": 3,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 1,
@ -121,7 +121,7 @@
"end": 14,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 12,
@ -185,7 +185,7 @@
"end": 36,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 24,
@ -211,7 +211,7 @@
"end": 31,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 24,
@ -237,7 +237,7 @@
"end": 27,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 25,

View File

@ -25,7 +25,7 @@
"end": 11,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 0,
@ -65,7 +65,7 @@
"end": 2,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 0,
@ -173,7 +173,7 @@
"end": 21,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 15,

View File

@ -71,7 +71,7 @@
"end": 55,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 47,

View File

@ -25,7 +25,7 @@
"end": 3,
"ctxt": 0
},
"expr": {
"base": {
"type": "CallExpression",
"span": {
"start": 0,

View File

@ -32,7 +32,7 @@
"end": 14,
"ctxt": 0
},
"expr": {
"base": {
"type": "MemberExpression",
"span": {
"start": 0,

View File

@ -1152,6 +1152,8 @@ fn can_be_null(e: &Expr) -> bool {
| Expr::Member(..)
| Expr::SuperProp(..)
| Expr::Call(..)
// an opt chain is either a member or a call
| Expr::OptChain(..)
| Expr::New(..)
| Expr::Yield(..)
| Expr::Await(..)
@ -1193,7 +1195,6 @@ fn can_be_null(e: &Expr) -> bool {
| Expr::TsTypeAssertion(TsTypeAssertion { ref expr, .. })
| Expr::TsConstAssertion(TsConstAssertion { ref expr, .. })
| Expr::TsInstantiation(TsExprWithTypeArgs { ref expr, .. }) => can_be_null(expr),
Expr::OptChain(ref e) => can_be_null(&e.expr),
Expr::Invalid(..) => unreachable!(),
}

View File

@ -339,10 +339,7 @@ impl CaseHandler<'_> {
| Expr::PrivateName(..)
| Expr::Invalid(..) => e,
Expr::OptChain(e) => Expr::OptChain(OptChainExpr {
expr: e.expr.map(|e| self.explode_expr(e, false)),
..e
}),
Expr::OptChain(..) => unimplemented!("regenerator: optional chain in generator"),
Expr::Await(..) => unimplemented!("regenerator: await in generator"),

View File

@ -356,8 +356,8 @@ impl OptChaining {
let span = e.span;
let cons = undefined(span);
match &mut *e.expr {
Expr::Member(MemberExpr {
match &mut e.base {
OptChainBase::Member(MemberExpr {
obj,
prop,
span: m_span,
@ -368,22 +368,22 @@ impl OptChaining {
let obj_span = obj.span;
let obj = self.unwrap(&mut obj);
let alt = Box::new(Expr::Member(MemberExpr {
let alt = OptChainBase::Member(MemberExpr {
span: *m_span,
obj: obj.alt,
prop: prop.take(),
}));
});
let alt = Box::new(Expr::OptChain(OptChainExpr {
span: obj_span,
question_dot_token,
expr: alt,
base: alt,
}));
return CondExpr { alt, ..obj };
}
Expr::Call(CallExpr {
OptChainBase::Call(OptCall {
span,
callee: Callee::Expr(callee),
callee,
args,
type_args,
}) if callee.is_opt_chain() => {
@ -392,16 +392,16 @@ impl OptChaining {
let obj = self.unwrap(&mut callee);
let alt = Box::new(Expr::Call(CallExpr {
let alt = OptChainBase::Call(OptCall {
span: *span,
callee: Callee::Expr(obj.alt),
callee: obj.alt,
args: args.take(),
type_args: type_args.take(),
}));
});
let alt = Box::new(Expr::OptChain(OptChainExpr {
span: *span,
question_dot_token,
expr: alt,
base: alt,
}));
return CondExpr {
@ -413,14 +413,14 @@ impl OptChaining {
_ => {}
}
e.expr.visit_mut_children_with(self);
e.base.visit_mut_children_with(self);
match &mut *e.expr {
Expr::Member(MemberExpr { obj, prop, .. }) => {
match &mut e.base {
OptChainBase::Member(MemberExpr { obj, prop, .. }) => {
let obj_span = obj.span();
let (left, right, alt) = match &mut **obj {
Expr::Ident(..) => (obj.clone(), obj.clone(), e.expr.take()),
Expr::Ident(..) => (obj.clone(), obj.clone(), Box::new(e.base.take().into())),
_ => {
let i = private_ident!(obj_span, "ref");
self.vars_without_init.push(VarDeclarator {
@ -481,40 +481,38 @@ impl OptChaining {
}
}
Expr::Call(CallExpr {
callee: Callee::Expr(obj),
args,
type_args,
..
}) => {
let obj_span = obj.span();
let is_super_access = matches!(**obj, Expr::SuperProp(_));
OptChainBase::Call(call) => {
let callee = &mut call.callee;
let obj_span = callee.span();
let is_super_access = matches!(&**callee, Expr::SuperProp(_));
let (left, right, alt) = match &**obj {
let (left, right, alt) = match &**callee {
Expr::Ident(ident) => (
obj.clone(),
obj.clone(),
callee.clone(),
callee.clone(),
if ident.sym == js_word!("eval") {
Box::new(e.expr.take().expect_call().into_indirect().into())
Box::new(CallExpr::from(call.take()).into_indirect().into())
} else {
e.expr.take()
Box::new(CallExpr::from(call.take()).into())
},
),
_ if is_simple_expr(obj) && self.c.pure_getter => {
(obj.clone(), obj.clone(), e.expr.take())
}
_ if is_simple_expr(callee) && self.c.pure_getter => (
callee.clone(),
callee.clone(),
Box::new(CallExpr::from(call.take()).into()),
),
_ => {
let this_as_super;
let should_call = obj.is_member() || obj.is_super_prop();
let should_call = callee.is_member() || callee.is_super_prop();
let (this_obj, aliased) = if should_call {
alias_if_required(
match &**obj {
match &**callee {
Expr::SuperProp(m) => {
this_as_super = Expr::This(ThisExpr { span: m.obj.span });
&this_as_super
}
Expr::Member(m) => &*m.obj,
_ => &*obj,
_ => &*call.callee,
},
"_obj",
)
@ -529,7 +527,7 @@ impl OptChaining {
init: None,
});
match &mut **obj {
match &mut *call.callee {
Expr::Member(obj) => Box::new(Expr::Member(MemberExpr {
span: obj.span,
obj: Expr::Assign(AssignExpr {
@ -545,11 +543,11 @@ impl OptChaining {
span: DUMMY_SP,
op: op!("="),
left: PatOrExpr::Pat(this_obj.clone().into()),
right: obj.take(),
right: call.callee.take(),
})),
}
} else {
obj.take()
call.callee.take()
};
let tmp = private_ident!(obj_span, "ref");
@ -586,12 +584,12 @@ impl OptChaining {
} else {
this_obj.as_arg()
})
.chain(args.take())
.chain(call.args.take())
.collect()
} else {
args.take()
call.args.take()
},
type_args: type_args.take(),
type_args: call.type_args.take(),
})),
)
}
@ -630,7 +628,6 @@ impl OptChaining {
alt,
}
}
_ => unreachable!("TsOptChain.expr = {:?}", e.expr),
}
}
}

View File

@ -9,7 +9,7 @@ use swc_common::{
use swc_ecma_ast::*;
use swc_ecma_transforms_base::helper;
use swc_ecma_utils::{
alias_ident_for, alias_if_required, prepend, quote_ident, ExprFactory, HANDLER,
alias_ident_for, alias_if_required, prepend, quote_ident, undefined, ExprFactory, HANDLER,
};
use swc_ecma_visit::{noop_visit_mut_type, VisitMut, VisitMutWith};
@ -478,10 +478,86 @@ impl<'a> VisitMut for PrivateAccessVisitor<'a> {
}
}
Expr::OptChain(OptChainExpr {
base: OptChainBase::Call(call),
question_dot_token,
span,
}) if call.callee.is_member() => {
let mut callee = call.callee.take().member().unwrap();
callee.visit_mut_with(self);
call.args.visit_mut_with(self);
let (expr, this) = self.visit_mut_private_get(&mut callee, None);
if let Some(this) = this {
let args = iter::once(this.as_arg()).chain(call.args.take()).collect();
*e = Expr::Call(CallExpr {
span: *span,
callee: Callee::Expr(Box::new(Expr::OptChain(OptChainExpr {
question_dot_token: *question_dot_token,
span: *span,
base: OptChainBase::Member(MemberExpr {
obj: Box::new(expr),
span: call.span,
prop: MemberProp::Ident(quote_ident!("call")),
}),
}))),
args,
type_args: call.type_args.take(),
});
} else {
call.callee = Box::new(expr);
}
}
Expr::Member(member_expr) => {
member_expr.visit_mut_with(self);
member_expr.visit_mut_children_with(self);
*e = self.visit_mut_private_get(member_expr, None).0;
}
Expr::OptChain(OptChainExpr {
base:
OptChainBase::Member(
member @ MemberExpr {
prop: MemberProp::PrivateName(..),
..
},
),
span,
..
}) => {
member.visit_mut_children_with(self);
let (ident, aliased) = alias_if_required(&member.obj, "_ref");
if aliased {
self.vars.push(VarDeclarator {
span: DUMMY_SP,
name: ident.clone().into(),
init: None,
definite: false,
});
}
let (expr, _) = self.visit_mut_private_get(member, None);
*e = Expr::Cond(CondExpr {
span: *span,
test: Box::new(Expr::Bin(BinExpr {
span: DUMMY_SP,
left: Box::new(Expr::Bin(BinExpr {
span: DUMMY_SP,
left: Box::new(ident.clone().into()),
op: op!("==="),
right: Box::new(Expr::Lit(Lit::Null(Null { span: DUMMY_SP }))),
})),
op: op!("||"),
right: Box::new(Expr::Bin(BinExpr {
span: DUMMY_SP,
left: Box::new(ident.into()),
op: op!("==="),
right: undefined(DUMMY_SP),
})),
})),
cons: undefined(DUMMY_SP),
alt: Box::new(expr),
})
}
_ => e.visit_mut_children_with(self),
};
}

View File

@ -4120,6 +4120,64 @@ new ComputedField();
"#
);
test!(
syntax(),
|_| class_properties(class_properties::Config { loose: false }),
private_optional_chain_call,
r#"
class A {
#fieldFunc;
x = 1;
test() {
this.#fieldFunc?.();
}
}
"#,
r#"
class A {
test() {
_classPrivateFieldGet(this, _fieldFunc)?.call(this);
}
constructor(){
_fieldFunc.set(this, {
writable: true,
value: void 0
});
_defineProperty(this, "x", 1);
}
}
var _fieldFunc = new WeakMap();
"#
);
test!(
syntax(),
|_| class_properties(class_properties::Config { loose: false }),
private_optional_chain_member,
r#"
class MyClass {
#a
foo(o) {
o?.#a
}
}
"#,
r#"
class MyClass {
foo(o) {
o === null || o === void 0 ? void 0 : _classPrivateFieldGet(o, _a);
}
constructor(){
_a.set(this, {
writable: true,
value: void 0
});
}
}
var _a = new WeakMap();
"#
);
// private_canonical
test!(
syntax(),

View File

@ -1162,6 +1162,10 @@ pub trait ExprExt {
| Expr::Yield(_)
| Expr::Member(_)
| Expr::SuperProp(_)
| Expr::OptChain(OptChainExpr {
base: OptChainBase::Member(_),
..
})
| Expr::Update(_)
| Expr::Assign(_) => true,
@ -1172,10 +1176,24 @@ pub trait ExprExt {
callee: Callee::Expr(ref callee),
ref args,
..
})
| Expr::OptChain(OptChainExpr {
base:
OptChainBase::Call(OptCall {
ref callee,
ref args,
..
}),
..
}) if callee.is_pure_callee() => {
args.iter().any(|arg| arg.expr.may_have_side_effects())
}
Expr::Call(_) => true,
Expr::Call(_)
| Expr::OptChain(OptChainExpr {
base: OptChainBase::Call(_),
..
}) => true,
Expr::Seq(SeqExpr { ref exprs, .. }) => exprs.iter().any(|e| e.may_have_side_effects()),
@ -1218,7 +1236,6 @@ pub trait ExprExt {
| Expr::TsInstantiation(TsExprWithTypeArgs { ref expr, .. }) => {
expr.may_have_side_effects()
}
Expr::OptChain(ref e) => e.expr.may_have_side_effects(),
Expr::Invalid(..) => true,
}
@ -1961,7 +1978,12 @@ pub fn extract_side_effects_to(to: &mut Vec<Box<Expr>>, expr: Box<Expr>) {
to.push(Box::new(Expr::New(e)))
}
Expr::Member(_) | Expr::SuperProp(_) => to.push(Box::new(expr)),
Expr::Member(_)
| Expr::SuperProp(_)
| Expr::OptChain(OptChainExpr {
base: OptChainBase::Member(_),
..
}) => to.push(Box::new(expr)),
// We are at here because we could not determine value of test.
//TODO: Drop values if it does not have side effects.
@ -2068,7 +2090,9 @@ pub fn extract_side_effects_to(to: &mut Vec<Box<Expr>>, expr: Box<Expr>) {
| Expr::TsInstantiation(TsExprWithTypeArgs { expr, .. }) => {
extract_side_effects_to(to, expr)
}
Expr::OptChain(e) => extract_side_effects_to(to, e.expr),
Expr::OptChain(OptChainExpr { base: child, .. }) => {
extract_side_effects_to(to, Box::new(child.into()))
}
Expr::Invalid(..) => unreachable!(),
}

View File

@ -832,7 +832,17 @@ define!({
pub struct OptChainExpr {
pub span: Span,
pub question_dot_token: Span,
pub expr: Box<Expr>,
pub base: OptChainBase,
}
pub enum OptChainBase {
Member(MemberExpr),
Call(OptCall),
}
pub struct OptCall {
pub span: Span,
pub callee: Box<Expr>,
pub args: Vec<ExprOrSpread>,
pub type_args: Option<TsTypeParamInstantiation>,
}
pub struct Function {
pub params: Vec<Param>,

View File

@ -5,10 +5,10 @@ use swc_ecma_ast::{
BlockStmtOrExpr, CallExpr, Callee, ClassExpr, ComputedPropName, CondExpr, Expr, ExprOrSpread,
FnExpr, Function, Ident, Import, JSXAttr, JSXAttrOrSpread, JSXAttrValue, JSXEmptyExpr, JSXExpr,
JSXExprContainer, JSXMemberExpr, JSXObject, KeyValueProp, Lit, MemberExpr, MemberProp,
MetaPropExpr, MetaPropKind, MethodProp, NewExpr, ObjectLit, OptChainExpr, ParenExpr, PatOrExpr,
Prop, PropName, PropOrSpread, SeqExpr, SpreadElement, SuperProp, SuperPropExpr, TaggedTpl,
ThisExpr, TsAsExpr, TsNonNullExpr, TsTypeAssertion, TsTypeParamInstantiation, UnaryExpr,
UnaryOp, UpdateExpr, YieldExpr,
MetaPropExpr, MetaPropKind, MethodProp, NewExpr, ObjectLit, OptCall, OptChainBase,
OptChainExpr, ParenExpr, PatOrExpr, Prop, PropName, PropOrSpread, SeqExpr, SpreadElement,
SuperProp, SuperPropExpr, TaggedTpl, ThisExpr, TsAsExpr, TsNonNullExpr, TsTypeAssertion,
TsTypeParamInstantiation, UnaryExpr, UnaryOp, UpdateExpr, YieldExpr,
};
use swc_estree_ast::{
Arg, ArrayExprEl, ArrayExpression, ArrowFuncExprBody, ArrowFunctionExpression,
@ -775,7 +775,7 @@ impl Swcify for OptionalMemberExpression {
span: ctx.span(&self.base),
// TODO: Use correct span.
question_dot_token: DUMMY_SP,
expr: Box::new(Expr::Member(MemberExpr {
base: OptChainBase::Member(MemberExpr {
span: ctx.span(&self.base),
obj: self.object.swcify(ctx),
prop: match (self.property, self.computed) {
@ -789,7 +789,7 @@ impl Swcify for OptionalMemberExpression {
}
_ => unreachable!(),
},
})),
}),
}
}
}
@ -813,12 +813,12 @@ impl Swcify for OptionalCallExpression {
span: ctx.span(&self.base),
// TODO: Use correct span.
question_dot_token: DUMMY_SP,
expr: Box::new(Expr::Call(CallExpr {
base: OptChainBase::Call(OptCall {
span: ctx.span(&self.base),
callee: Callee::Expr(self.callee.swcify(ctx)),
callee: self.callee.swcify(ctx),
args: self.arguments.swcify(ctx).into_iter().flatten().collect(),
type_args: self.type_parameters.swcify(ctx),
})),
}),
}
}
}

View File

@ -531,10 +531,7 @@ impl ReduceAst {
| Expr::Await(AwaitExpr { arg: inner, .. }, ..)
| Expr::Yield(YieldExpr {
arg: Some(inner), ..
})
| Expr::OptChain(OptChainExpr { expr: inner, .. }) => {
self.is_safe_to_flatten_test(inner)
}
}) => self.is_safe_to_flatten_test(inner),
Expr::Bin(e) => {
self.is_safe_to_flatten_test(&e.left) && self.is_safe_to_flatten_test(&e.right)
@ -550,9 +547,17 @@ impl ReduceAst {
callee: Callee::Expr(callee),
..
})
| Expr::New(NewExpr { callee, .. }) => self.is_safe_to_flatten_test(callee),
| Expr::New(NewExpr { callee, .. })
| Expr::OptChain(OptChainExpr {
base: OptChainBase::Call(OptCall { callee, .. }),
..
}) => self.is_safe_to_flatten_test(callee),
Expr::Member(MemberExpr { obj, .. }) => self.is_safe_to_flatten_test(obj),
Expr::Member(MemberExpr { obj, .. })
| Expr::OptChain(OptChainExpr {
base: OptChainBase::Member(MemberExpr { obj, .. }, ..),
..
}) => self.is_safe_to_flatten_test(obj),
_ => true,
}
@ -783,7 +788,7 @@ impl VisitMut for ReduceAst {
}
Expr::OptChain(opt) => {
*e = *opt.expr.take();
*e = opt.base.take().into();
}
Expr::Await(expr) => {