| 3784 | return a; |
| 3785 | } |
| 3786 | function directives() { |
| 3787 | var i, p, pn; |
| 3788 | |
| 3789 | while (state.tokens.next.id === "(string)") { |
| 3790 | p = peek(0); |
| 3791 | if (p.id === "(endline)") { |
| 3792 | i = 1; |
| 3793 | do { |
| 3794 | pn = peek(i++); |
| 3795 | } while (pn.id === "(endline)"); |
| 3796 | if (pn.id === ";") { |
| 3797 | p = pn; |
| 3798 | } else if (pn.value === "[" || pn.value === ".") { |
| 3799 | return; |
| 3800 | } else if (!state.option.asi || pn.value === "(") { |
| 3801 | warning("W033", state.tokens.next); |
| 3802 | } |
| 3803 | } else if (p.id === "." || p.id === "[") { |
| 3804 | return; |
| 3805 | } else if (p.id !== ";") { |
| 3806 | warning("W033", p); |
| 3807 | } |
| 3808 | |
| 3809 | advance(); |
| 3810 | if (state.directive[state.tokens.curr.value]) { |
| 3811 | warning("W034", state.tokens.curr, state.tokens.curr.value); |
| 3812 | } |
| 3813 | |
| 3814 | if (state.tokens.curr.value === "use strict") { |
| 3815 | if (!state.option["(explicitNewcap)"]) { |
| 3816 | state.option.newcap = true; |
| 3817 | } |
| 3818 | state.option.undef = true; |
| 3819 | } |
| 3820 | state.directive[state.tokens.curr.value] = true; |
| 3821 | |
| 3822 | if (p.id === ";") { |
| 3823 | advance(";"); |
| 3824 | } |
| 3825 | } |
| 3826 | } |
| 3827 | function block(ordinary, stmt, isfunc, isfatarrow, iscase) { |
| 3828 | var a, |
| 3829 | b = inblock, |