|
|
|
@ -39,6 +39,13 @@ parse.BinaryOperation = function(contract, expression, skipStatementRegistry) { |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
parse.TupleExpression = function(contract, expression, skipStatementRegistry) { |
|
|
|
|
expression.components.forEach(component => { |
|
|
|
|
parse[component.type] && |
|
|
|
|
parse[component.type](contract, component, skipStatementRegistry); |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
parse.FunctionCall = function(contract, expression, skipStatementRegistry) { |
|
|
|
|
// In any given chain of call expressions, only the last one will fail this check.
|
|
|
|
|
// This makes sure we don't instrument a chain of expressions multiple times.
|
|
|
|
@ -197,6 +204,10 @@ parse.VariableDeclarationStatement = function (contract, expression) { |
|
|
|
|
|
|
|
|
|
parse.WhileStatement = function (contract, expression) { |
|
|
|
|
register.statement(contract, expression); |
|
|
|
|
|
|
|
|
|
parse[expression.condition.type] && |
|
|
|
|
parse[expression.condition.type](contract, expression.condition, true); |
|
|
|
|
|
|
|
|
|
parse[expression.body.type] && |
|
|
|
|
parse[expression.body.type](contract, expression.body); |
|
|
|
|
}; |
|
|
|
|