mark reassigned/mutated when done inline in the template

pull/4492/head
Tan Li Hau 6 years ago
parent 20e079007c
commit 83c276d328

@ -114,16 +114,14 @@ export default class Expression {
let names;
let deep = false;
if (function_expression) {
if (node.type === 'AssignmentExpression') {
deep = node.left.type === 'MemberExpression';
names = deep
? [get_object(node.left).name]
: extract_names(node.left);
} else if (node.type === 'UpdateExpression') {
const { name } = get_object(node.argument);
names = [name];
}
if (node.type === 'AssignmentExpression') {
deep = node.left.type === 'MemberExpression';
names = deep
? [get_object(node.left).name]
: extract_names(node.left);
} else if (node.type === 'UpdateExpression') {
const { name } = get_object(node.argument);
names = [name];
}
if (names) {

@ -0,0 +1,50 @@
export default {
test(assert, vars) {
assert.deepEqual(vars, [
{
name: "a",
export_name: null,
injected: false,
module: false,
mutated: false,
reassigned: true,
referenced: true,
referenced_from_script: false,
writable: true
},
{
name: "b",
export_name: null,
injected: false,
module: false,
mutated: true,
reassigned: false,
referenced: true,
referenced_from_script: false,
writable: true
},
{
name: "c",
export_name: null,
injected: false,
module: false,
mutated: false,
reassigned: true,
referenced: true,
referenced_from_script: false,
writable: true
},
{
name: "d",
export_name: null,
injected: false,
module: false,
mutated: true,
reassigned: false,
referenced: true,
referenced_from_script: false,
writable: true
}
]);
}
};

@ -0,0 +1,10 @@
<script>
let a = 0;
let b = {};
let c = {};
let d = 0;
</script>
{() => a = 1}
{() => b.a = 1}
{c = 1}
{d.a = 1}
Loading…
Cancel
Save