5.6.15 With Expressions

A With expression is a member access or dictionary access expression with its <l-expression> implicitly supplied by the innermost enclosing With block.

 with-expression = with-member-access-expression / with-dictionary-access-expression 
  
 with-member-access-expression = "." unrestricted-name 
 with-dictionary-access-expression = "!" unrestricted-name 

Static semantics. A <with-member-access-expression> or <with-dictionary-access-expression> is statically resolved as a normal member access or dictionary access expression, respectively, as if the innermost enclosing With block variable was specified for <l-expression>. If there is no enclosing With block, the <with-expression> is invalid.