Skip to content

Commit

Permalink
Refactor assignExpression -> assignExpressionAtPath
Browse files Browse the repository at this point in the history
  • Loading branch information
lukastaegert committed Nov 8, 2017
1 parent aa9a311 commit efef49f
Show file tree
Hide file tree
Showing 7 changed files with 15 additions and 15 deletions.
4 changes: 2 additions & 2 deletions src/ast/nodes/Identifier.js
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,8 @@ export default class Identifier extends Node {
}

bindAssignmentAtPath ( path, expression ) {
if ( this.variable && path.length === 0 ) {
this.variable.assignExpression( expression );
if ( this.variable ) {
this.variable.assignExpressionAtPath( path, expression );
}
}

Expand Down
4 changes: 2 additions & 2 deletions src/ast/nodes/shared/FunctionNode.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ export default class FunctionNode extends Node {
const thisVariable = this.scope.findVariable( 'this' );

if ( withNew ) {
thisVariable.assignExpression( UNKNOWN_OBJECT_LITERAL );
thisVariable.assignExpressionAtPath( [], UNKNOWN_OBJECT_LITERAL );
} else {
thisVariable.assignExpression( UNKNOWN_ASSIGNMENT );
thisVariable.assignExpressionAtPath( [], UNKNOWN_ASSIGNMENT );
}
}

Expand Down
2 changes: 1 addition & 1 deletion src/ast/scopes/Scope.js
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ export default class Scope {
if ( this.variables[ name ] ) {
const variable = this.variables[ name ];
variable.addDeclaration( identifier );
options.init && variable.assignExpression( options.init );
options.init && variable.assignExpressionAtPath( [], options.init );
} else {
this.variables[ name ] = new LocalVariable( identifier.name, identifier, options.init || UNDEFINED_ASSIGNMENT );
}
Expand Down
2 changes: 0 additions & 2 deletions src/ast/variables/GlobalVariable.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,6 @@ export default class GlobalVariable extends Variable {
if ( reference.isReassignment ) this.isReassigned = true;
}

assignExpression () {}

hasEffectsWhenCalled () {
return !pureFunctions[ this.name ];
}
Expand Down
12 changes: 6 additions & 6 deletions src/ast/variables/LocalVariable.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,12 @@ export default class LocalVariable extends Variable {
Array.from( this.assignedExpressions ).forEach( expression => expression.bindCall( callOptions ) );
}

addReference () {}

assignExpression ( expression ) {
this.assignedExpressions.add( expression );
this.isReassigned = true;
Array.from( this.calls ).forEach( callOptions => expression.bindCall( callOptions ) );
assignExpressionAtPath ( path, expression ) {
if ( path.length === 0 ) {
this.assignedExpressions.add( expression );
this.isReassigned = true;
Array.from( this.calls ).forEach( callOptions => expression.bindCall( callOptions ) );
}
}

getName ( es ) {
Expand Down
2 changes: 0 additions & 2 deletions src/ast/variables/NamespaceVariable.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,6 @@ export default class NamespaceVariable extends Variable {
this.name = node.name;
}

assignExpression () {}

includeVariable () {
const hasBeenIncluded = super.includeVariable();
if ( hasBeenIncluded ) {
Expand Down
4 changes: 4 additions & 0 deletions src/ast/variables/Variable.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,10 @@ export default class Variable {

addCall () {}

addReference () {}

assignExpressionAtPath () {}

getName () {
return this.name;
}
Expand Down

0 comments on commit efef49f

Please sign in to comment.