mirror of
https://github.com/swc-project/swc.git
synced 2024-12-21 04:32:01 +03:00
53610fdafc
- We don't need a list of bindings to check if an identifier is unresolved. - Checking if an identifier is unresolved is now one CPU instruction. - Previously it was one hashmap operation. - This PR also improves performance, by removing the hashmaps mentioned above.
197 lines
6.6 KiB
Plaintext
197 lines
6.6 KiB
Plaintext
TestSnapshot {
|
|
vars: [
|
|
(
|
|
(
|
|
Atom('ENUM_VALUE' type=dynamic),
|
|
#3,
|
|
),
|
|
VarUsageInfo {
|
|
inline_prevented: false,
|
|
ref_count: 1,
|
|
cond_init: false,
|
|
declared: false,
|
|
declared_count: 0,
|
|
declared_as_fn_param: false,
|
|
declared_as_fn_expr: false,
|
|
assign_count: 0,
|
|
mutation_by_call_count: 0,
|
|
usage_count: 1,
|
|
reassigned_with_assignment: false,
|
|
reassigned_with_var_decl: false,
|
|
mutated: false,
|
|
has_property_access: false,
|
|
has_property_mutation: false,
|
|
accessed_props: {},
|
|
exported: false,
|
|
used_above_decl: true,
|
|
is_fn_local: true,
|
|
used_by_nested_fn: true,
|
|
executed_multiple_time: false,
|
|
used_in_cond: false,
|
|
var_kind: None,
|
|
var_initialized: false,
|
|
declared_as_catch_param: false,
|
|
no_side_effect_for_member_access: false,
|
|
used_as_callee: false,
|
|
used_as_arg: false,
|
|
pure_fn: false,
|
|
infects: [],
|
|
},
|
|
),
|
|
(
|
|
(
|
|
Atom('arg' type=inline),
|
|
#2,
|
|
),
|
|
VarUsageInfo {
|
|
inline_prevented: false,
|
|
ref_count: 2,
|
|
cond_init: false,
|
|
declared: true,
|
|
declared_count: 1,
|
|
declared_as_fn_param: true,
|
|
declared_as_fn_expr: false,
|
|
assign_count: 0,
|
|
mutation_by_call_count: 0,
|
|
usage_count: 2,
|
|
reassigned_with_assignment: false,
|
|
reassigned_with_var_decl: false,
|
|
mutated: false,
|
|
has_property_access: false,
|
|
has_property_mutation: false,
|
|
accessed_props: {},
|
|
exported: false,
|
|
used_above_decl: false,
|
|
is_fn_local: true,
|
|
used_by_nested_fn: true,
|
|
executed_multiple_time: false,
|
|
used_in_cond: true,
|
|
var_kind: None,
|
|
var_initialized: false,
|
|
declared_as_catch_param: false,
|
|
no_side_effect_for_member_access: false,
|
|
used_as_callee: false,
|
|
used_as_arg: false,
|
|
pure_fn: false,
|
|
infects: [],
|
|
},
|
|
),
|
|
(
|
|
(
|
|
Atom('call' type=static),
|
|
#3,
|
|
),
|
|
VarUsageInfo {
|
|
inline_prevented: false,
|
|
ref_count: 1,
|
|
cond_init: false,
|
|
declared: false,
|
|
declared_count: 0,
|
|
declared_as_fn_param: false,
|
|
declared_as_fn_expr: false,
|
|
assign_count: 0,
|
|
mutation_by_call_count: 0,
|
|
usage_count: 1,
|
|
reassigned_with_assignment: false,
|
|
reassigned_with_var_decl: false,
|
|
mutated: false,
|
|
has_property_access: false,
|
|
has_property_mutation: false,
|
|
accessed_props: {},
|
|
exported: false,
|
|
used_above_decl: true,
|
|
is_fn_local: true,
|
|
used_by_nested_fn: true,
|
|
executed_multiple_time: false,
|
|
used_in_cond: true,
|
|
var_kind: None,
|
|
var_initialized: false,
|
|
declared_as_catch_param: false,
|
|
no_side_effect_for_member_access: false,
|
|
used_as_callee: true,
|
|
used_as_arg: false,
|
|
pure_fn: false,
|
|
infects: [],
|
|
},
|
|
),
|
|
(
|
|
(
|
|
Atom('data' type=inline),
|
|
#4,
|
|
),
|
|
VarUsageInfo {
|
|
inline_prevented: false,
|
|
ref_count: 1,
|
|
cond_init: true,
|
|
declared: true,
|
|
declared_count: 1,
|
|
declared_as_fn_param: false,
|
|
declared_as_fn_expr: false,
|
|
assign_count: 0,
|
|
mutation_by_call_count: 1,
|
|
usage_count: 1,
|
|
reassigned_with_assignment: false,
|
|
reassigned_with_var_decl: false,
|
|
mutated: true,
|
|
has_property_access: false,
|
|
has_property_mutation: false,
|
|
accessed_props: {},
|
|
exported: false,
|
|
used_above_decl: false,
|
|
is_fn_local: true,
|
|
used_by_nested_fn: true,
|
|
executed_multiple_time: false,
|
|
used_in_cond: true,
|
|
var_kind: Some(
|
|
"const",
|
|
),
|
|
var_initialized: true,
|
|
declared_as_catch_param: false,
|
|
no_side_effect_for_member_access: false,
|
|
used_as_callee: false,
|
|
used_as_arg: true,
|
|
pure_fn: false,
|
|
infects: [],
|
|
},
|
|
),
|
|
(
|
|
(
|
|
Atom('foo' type=inline),
|
|
#1,
|
|
),
|
|
VarUsageInfo {
|
|
inline_prevented: true,
|
|
ref_count: 0,
|
|
cond_init: false,
|
|
declared: true,
|
|
declared_count: 1,
|
|
declared_as_fn_param: false,
|
|
declared_as_fn_expr: false,
|
|
assign_count: 0,
|
|
mutation_by_call_count: 0,
|
|
usage_count: 0,
|
|
reassigned_with_assignment: false,
|
|
reassigned_with_var_decl: false,
|
|
mutated: false,
|
|
has_property_access: false,
|
|
has_property_mutation: false,
|
|
accessed_props: {},
|
|
exported: false,
|
|
used_above_decl: false,
|
|
is_fn_local: true,
|
|
used_by_nested_fn: false,
|
|
executed_multiple_time: false,
|
|
used_in_cond: false,
|
|
var_kind: None,
|
|
var_initialized: true,
|
|
declared_as_catch_param: false,
|
|
no_side_effect_for_member_access: false,
|
|
used_as_callee: false,
|
|
used_as_arg: false,
|
|
pure_fn: false,
|
|
infects: [],
|
|
},
|
|
),
|
|
],
|
|
}
|