A context object is associated with any AST node which may have "strictness". Each context has a strictness state: UNKOWN, STRICT, and NOT_STRICT. In order to account for arrow functions, parenthesized expressions are also assigned a context.
- set C.parent to the current context object
- set C.strictError to null
- if C.parent.strict is STRICT
- set C.strict to STRICT
- else
- set C.strict to UNKNOWN