Syntactic apply.
Syntactic apply. It is a method call if fun is a dot-select or bracket-select. It is a function call otherwise.
Binary operation (always preserves pureness).
Binary operation (always preserves pureness).
Operations which do not preserve pureness are not allowed in this tree. These are notably +=, -=, *=, /= and %=
ES6 let or const (depending on the mutable flag).
Marker for literals.
Marker for literals. Literals are always pure.
AST node of JavaScript.
Unary operation (always preserves pureness).
Unary operation (always preserves pureness).
Operations which do not preserve pureness are not allowed in this tree. These are notably ++ and --