{"version":3,"sources":["fixtures/other/third.js","rewriter.coffee","fixtures/other/fourth.js"],"sourcesContent":["function third(){\n  throw new Error(\"oh no\");\n}\n","# The CoffeeScript language has a good deal of optional syntax, implicit syntax,\n# and shorthand syntax. This can greatly complicate a grammar and bloat\n# the resulting parse table. Instead of making the parser handle it all, we take\n# a series of passes over the token stream, using this **Rewriter** to convert\n# shorthand into the unambiguous long form, add implicit indentation and\n# parentheses, and generally clean things up.\n\n# Create a generated token: one that exists due to a use of implicit syntax.\ngenerate = (tag, value, origin) ->\n  tok = [tag, value]\n  tok.generated = yes\n  tok.origin = origin if origin\n  tok\n\n# The **Rewriter** class is used by the [Lexer](lexer.html), directly against\n# its internal array of tokens.\nclass exports.Rewriter\n\n  # Helpful snippet for debugging:\n  #\n  #     console.log (t[0] + '/' + t[1] for t in @tokens).join ' '\n\n  # Rewrite the token stream in multiple passes, one logical filter at\n  # a time. This could certainly be changed into a single pass through the\n  # stream, with a big ol' efficient switch, but it's much nicer to work with\n  # like this. The order of these passes matters -- indentation must be\n  # corrected before implicit parentheses can be wrapped around blocks of code.\n  rewrite: (@tokens) ->\n    @removeLeadingNewlines()\n    @closeOpenCalls()\n    @closeOpenIndexes()\n    @normalizeLines()\n    @tagPostfixConditionals()\n    @addImplicitBracesAndParens()\n    @addLocationDataToGeneratedTokens()\n    @tokens\n\n  # Rewrite the token stream, looking one token ahead and behind.\n  # Allow the return value of the block to tell us how many tokens to move\n  # forwards (or backwards) in the stream, to make sure we don't miss anything\n  # as tokens are inserted and removed, and the stream changes length under\n  # our feet.\n  scanTokens: (block) ->\n    {tokens} = this\n    i = 0\n    i += block.call this, token, i, tokens while token = tokens[i]\n    true\n\n  detectEnd: (i, condition, action) ->\n    {tokens} = this\n    levels = 0\n    while token = tokens[i]\n      return action.call this, token, i     if levels is 0 and condition.call this, token, i\n      return action.call this, token, i - 1 if not token or levels < 0\n      if token[0] in EXPRESSION_START\n        levels += 1\n      else if token[0] in EXPRESSION_END\n        levels -= 1\n      i += 1\n    i - 1\n\n  # Leading newlines would introduce an ambiguity in the grammar, so we\n  # dispatch them here.\n  removeLeadingNewlines: ->\n    break for [tag], i in @tokens when tag isnt 'TERMINATOR'\n    @tokens.splice 0, i if i\n\n  # The lexer has tagged the opening parenthesis of a method call. Match it with\n  # its paired close. We have the mis-nested outdent case included here for\n  # calls that close on the same line, just before their outdent.\n  closeOpenCalls: ->\n    condition = (token, i) ->\n      token[0] in [')', 'CALL_END'] or\n      token[0] is 'OUTDENT' and @tag(i - 1) is ')'\n\n    action = (token, i) ->\n      @tokens[if token[0] is 'OUTDENT' then i - 1 else i][0] = 'CALL_END'\n\n    @scanTokens (token, i) ->\n      @detectEnd i + 1, condition, action if token[0] is 'CALL_START'\n      1\n\n  # The lexer has tagged the opening parenthesis of an indexing operation call.\n  # Match it with its paired close.\n  closeOpenIndexes: ->\n    condition = (token, i) ->\n      token[0] in [']', 'INDEX_END']\n\n    action = (token, i) ->\n      token[0] = 'INDEX_END'\n\n    @scanTokens (token, i) ->\n      @detectEnd i + 1, condition, action if token[0] is 'INDEX_START'\n      1\n\n  # Match tags in token stream starting at i with pattern, skipping HERECOMMENTs\n  # Pattern may consist of strings (equality), an array of strings (one of)\n  # or null (wildcard)\n  matchTags: (i, pattern...) ->\n    fuzz = 0\n    for j in [0 ... pattern.length]\n      fuzz += 2 while @tag(i + j + fuzz) is 'HERECOMMENT'\n      continue if not pattern[j]?\n      pattern[j] = [pattern[j]] if typeof pattern[j] is 'string'\n      return no if @tag(i + j + fuzz) not in pattern[j]\n    yes\n\n  # yes iff standing in front of something looking like\n  # @<x>: or <x>:, skipping over 'HERECOMMENT's\n  looksObjectish: (j) ->\n    @matchTags(j, '@', null, ':') or @matchTags(j, null, ':')\n\n  # yes iff current line of tokens contain an element of tags on same\n  # expression level. Stop searching at LINEBREAKS or explicit start of\n  # containing balanced expression.\n  findTagsBackwards: (i, tags) ->\n    backStack = []\n    while i >= 0 and (backStack.length or\n          @tag(i) not in tags and\n          (@tag(i) not in EXPRESSION_START or @tokens[i].generated) and\n          @tag(i) not in LINEBREAKS)\n      backStack.push @tag(i) if @tag(i) in EXPRESSION_END\n      backStack.pop() if @tag(i) in EXPRESSION_START and backStack.length\n      i -= 1\n    @tag(i) in tags\n\n  # Look for signs of implicit calls and objects in the token stream and\n  # add them.\n  addImplicitBracesAndParens: ->\n    # Track current balancing depth (both implicit and explicit) on stack.\n    stack = []\n\n    @scanTokens (token, i, tokens) ->\n      [tag]     = token\n      [prevTag] = prevToken = if i > 0 then tokens[i - 1] else []\n      [nextTag] = if i < tokens.length - 1 then tokens[i + 1] else []\n      stackTop  = -> stack[stack.length - 1]\n      startIdx  = i\n\n      # Helper function, used for keeping track of the number of tokens consumed\n      # and spliced, when returning for getting a new token.\n      forward   = (n) -> i - startIdx + n\n\n      # Helper functions\n      inImplicit        = -> stackTop()?[2]?.ours\n      inImplicitCall    = -> inImplicit() and stackTop()?[0] is '('\n      inImplicitObject  = -> inImplicit() and stackTop()?[0] is '{'\n      # Unclosed control statement inside implicit parens (like\n      # class declaration or if-conditionals)\n      inImplicitControl = -> inImplicit and stackTop()?[0] is 'CONTROL'\n\n      startImplicitCall = (j) ->\n        idx = j ? i\n        stack.push ['(', idx, ours: yes]\n        tokens.splice idx, 0, generate 'CALL_START', '('\n        i += 1 if not j?\n\n      endImplicitCall = ->\n        stack.pop()\n        tokens.splice i, 0, generate 'CALL_END', ')'\n        i += 1\n\n      startImplicitObject = (j, startsLine = yes) ->\n        idx = j ? i\n        stack.push ['{', idx, sameLine: yes, startsLine: startsLine, ours: yes]\n        tokens.splice idx, 0, generate '{', generate(new String('{')), token\n        i += 1 if not j?\n\n      endImplicitObject = (j) ->\n        j = j ? i\n        stack.pop()\n        tokens.splice j, 0, generate '}', '}', token\n        i += 1\n\n      # Don't end an implicit call on next indent if any of these are in an argument\n      if inImplicitCall() and tag in ['IF', 'TRY', 'FINALLY', 'CATCH',\n        'CLASS', 'SWITCH']\n        stack.push ['CONTROL', i, ours: true]\n        return forward(1)\n\n      if tag is 'INDENT' and inImplicit()\n\n        # An `INDENT` closes an implicit call unless\n        #\n        #  1. We have seen a `CONTROL` argument on the line.\n        #  2. The last token before the indent is part of the list below\n        #\n        if prevTag not in ['=>', '->', '[', '(', ',', '{', 'TRY', 'ELSE', '=']\n          endImplicitCall() while inImplicitCall()\n        stack.pop() if inImplicitControl()\n        stack.push [tag, i]\n        return forward(1)\n\n      # Straightforward start of explicit expression\n      if tag in EXPRESSION_START\n        stack.push [tag, i]\n        return forward(1)\n\n      # Close all implicit expressions inside of explicitly closed expressions.\n      if tag in EXPRESSION_END\n        while inImplicit()\n          if inImplicitCall()\n            endImplicitCall()\n          else if inImplicitObject()\n            endImplicitObject()\n          else\n            stack.pop()\n        stack.pop()\n\n      # Recognize standard implicit calls like\n      # f a, f() b, f? c, h[0] d etc.\n      if (tag in IMPLICIT_FUNC and token.spaced and not token.stringEnd or\n          tag is '?' and i > 0 and not tokens[i - 1].spaced) and\n         (nextTag in IMPLICIT_CALL or\n          nextTag in IMPLICIT_UNSPACED_CALL and\n          not tokens[i + 1]?.spaced and not tokens[i + 1]?.newLine)\n        tag = token[0] = 'FUNC_EXIST' if tag is '?'\n        startImplicitCall i + 1\n        return forward(2)\n\n      # Implicit call taking an implicit indented object as first argument.\n      #\n      #     f\n      #       a: b\n      #       c: d\n      #\n      # and\n      #\n      #     f\n      #       1\n      #       a: b\n      #       b: c\n      #\n      # Don't accept implicit calls of this type, when on the same line\n      # as the control strucutures below as that may misinterpret constructs like:\n      #\n      #     if f\n      #        a: 1\n      # as\n      #\n      #     if f(a: 1)\n      #\n      # which is probably always unintended.\n      # Furthermore don't allow this in literal arrays, as\n      # that creates grammatical ambiguities.\n      if tag in IMPLICIT_FUNC and @matchTags(i + 1, 'INDENT', null, ':') and\n         not @findTagsBackwards(i, ['CLASS', 'EXTENDS', 'IF', 'CATCH',\n          'SWITCH', 'LEADING_WHEN', 'FOR', 'WHILE', 'UNTIL'])\n        startImplicitCall i + 1\n        stack.push ['INDENT', i + 2]\n        return forward(3)\n\n      # Implicit objects start here\n      if tag is ':'\n        # Go back to the (implicit) start of the object\n        if @tag(i - 2) is '@' then s = i - 2 else s = i - 1\n        s -= 2 while @tag(s - 2) is 'HERECOMMENT'\n\n        # Mark if the value is a for loop\n        @insideForDeclaration = nextTag is 'FOR'\n\n        startsLine = s is 0 or @tag(s - 1) in LINEBREAKS or tokens[s - 1].newLine\n        # Are we just continuing an already declared object?\n        if stackTop()\n          [stackTag, stackIdx] = stackTop()\n          if (stackTag is '{' or stackTag is 'INDENT' and @tag(stackIdx - 1) is '{') and\n             (startsLine or @tag(s - 1) is ',' or @tag(s - 1) is '{')\n            return forward(1)\n\n        startImplicitObject(s, !!startsLine)\n        return forward(2)\n\n      # End implicit calls when chaining method calls\n      # like e.g.:\n      #\n      #     f ->\n      #       a\n      #     .g b, ->\n      #       c\n      #     .h a\n      #\n      # and also\n      #\n      #     f a\n      #     .g b\n      #     .h a\n\n      stackTop()[2].sameLine = no if inImplicitObject() and tag in LINEBREAKS\n\n      newLine = prevTag is 'OUTDENT' or prevToken.newLine\n      if tag in IMPLICIT_END or tag in CALL_CLOSERS and newLine\n        while inImplicit()\n          [stackTag, stackIdx, {sameLine, startsLine}] = stackTop()\n          # Close implicit calls when reached end of argument list\n          if inImplicitCall() and prevTag isnt ','\n            endImplicitCall()\n          # Close implicit objects such as:\n          # return a: 1, b: 2 unless true\n          else if inImplicitObject() and not @insideForDeclaration and sameLine and\n                  tag isnt 'TERMINATOR' and prevTag isnt ':' and\n            endImplicitObject()\n          # Close implicit objects when at end of line, line didn't end with a comma\n          # and the implicit object didn't start the line or the next line doesn't look like\n          # the continuation of an object.\n          else if inImplicitObject() and tag is 'TERMINATOR' and prevTag isnt ',' and\n                  not (startsLine and @looksObjectish(i + 1))\n            endImplicitObject()\n          else\n            break\n\n      # Close implicit object if comma is the last character\n      # and what comes after doesn't look like it belongs.\n      # This is used for trailing commas and calls, like:\n      #\n      #     x =\n      #         a: b,\n      #         c: d,\n      #     e = 2\n      #\n      # and\n      #\n      #     f a, b: c, d: e, f, g: h: i, j\n      #\n      if tag is ',' and not @looksObjectish(i + 1) and inImplicitObject() and\n         not @insideForDeclaration and\n         (nextTag isnt 'TERMINATOR' or not @looksObjectish(i + 2))\n        # When nextTag is OUTDENT the comma is insignificant and\n        # should just be ignored so embed it in the implicit object.\n        #\n        # When it isn't the comma go on to play a role in a call or\n        # array further up the stack, so give it a chance.\n\n        offset = if nextTag is 'OUTDENT' then 1 else 0\n        while inImplicitObject()\n          endImplicitObject i + offset\n      return forward(1)\n\n  # Add location data to all tokens generated by the rewriter.\n  addLocationDataToGeneratedTokens: ->\n    @scanTokens (token, i, tokens) ->\n      return 1 if     token[2]\n      return 1 unless token.generated or token.explicit\n      if token[0] is '{' and nextLocation=tokens[i + 1]?[2]\n        {first_line: line, first_column: column} = nextLocation\n      else if prevLocation = tokens[i - 1]?[2]\n        {last_line: line, last_column: column} = prevLocation\n      else\n        line = column = 0\n      token[2] =\n        first_line:   line\n        first_column: column\n        last_line:    line\n        last_column:  column\n      return 1\n\n  # Because our grammar is LALR(1), it can't handle some single-line\n  # expressions that lack ending delimiters. The **Rewriter** adds the implicit\n  # blocks, so it doesn't need to. To keep the grammar clean and tidy, trailing\n  # newlines within expressions are removed and the indentation tokens of empty\n  # blocks are added.\n  normalizeLines: ->\n    starter = indent = outdent = null\n\n    condition = (token, i) ->\n      token[1] isnt ';' and token[0] in SINGLE_CLOSERS and\n      not (token[0] is 'TERMINATOR' and @tag(i + 1) in EXPRESSION_CLOSE) and\n      not (token[0] is 'ELSE' and starter isnt 'THEN') and\n      not (token[0] in ['CATCH', 'FINALLY'] and starter in ['->', '=>']) or\n      token[0] in CALL_CLOSERS and @tokens[i - 1].newLine\n\n    action = (token, i) ->\n      @tokens.splice (if @tag(i - 1) is ',' then i - 1 else i), 0, outdent\n\n    @scanTokens (token, i, tokens) ->\n      [tag] = token\n      if tag is 'TERMINATOR'\n        if @tag(i + 1) is 'ELSE' and @tag(i - 1) isnt 'OUTDENT'\n          tokens.splice i, 1, @indentation()...\n          return 1\n        if @tag(i + 1) in EXPRESSION_CLOSE\n          tokens.splice i, 1\n          return 0\n      if tag is 'CATCH'\n        for j in [1..2] when @tag(i + j) in ['OUTDENT', 'TERMINATOR', 'FINALLY']\n          tokens.splice i + j, 0, @indentation()...\n          return 2 + j\n      if tag in SINGLE_LINERS and @tag(i + 1) isnt 'INDENT' and\n         not (tag is 'ELSE' and @tag(i + 1) is 'IF')\n        starter = tag\n        [indent, outdent] = @indentation tokens[i]\n        indent.fromThen   = true if starter is 'THEN'\n        tokens.splice i + 1, 0, indent\n        @detectEnd i + 2, condition, action\n        tokens.splice i, 1 if tag is 'THEN'\n        return 1\n      return 1\n\n  # Tag postfix conditionals as such, so that we can parse them with a\n  # different precedence.\n  tagPostfixConditionals: ->\n\n    original = null\n\n    condition = (token, i) ->\n      [tag] = token\n      [prevTag] = @tokens[i - 1]\n      tag is 'TERMINATOR' or (tag is 'INDENT' and prevTag not in SINGLE_LINERS)\n\n    action = (token, i) ->\n      if token[0] isnt 'INDENT' or (token.generated and not token.fromThen)\n        original[0] = 'POST_' + original[0]\n\n    @scanTokens (token, i) ->\n      return 1 unless token[0] is 'IF'\n      original = token\n      @detectEnd i + 1, condition, action\n      return 1\n\n  # Generate the indentation tokens, based on another token on the same line.\n  indentation: (origin) ->\n    indent  = ['INDENT', 2]\n    outdent = ['OUTDENT', 2]\n    if origin\n      indent.generated = outdent.generated = yes\n      indent.origin = outdent.origin = origin\n    else\n      indent.explicit = outdent.explicit = yes\n    [indent, outdent]\n\n  generate: generate\n\n  # Look up a tag by token index.\n  tag: (i) -> @tokens[i]?[0]\n\n# Constants\n# ---------\n\n# List of the token pairs that must be balanced.\nBALANCED_PAIRS = [\n  ['(', ')']\n  ['[', ']']\n  ['{', '}']\n  ['INDENT', 'OUTDENT'],\n  ['CALL_START', 'CALL_END']\n  ['PARAM_START', 'PARAM_END']\n  ['INDEX_START', 'INDEX_END']\n]\n\n# The inverse mappings of `BALANCED_PAIRS` we're trying to fix up, so we can\n# look things up from either end.\nexports.INVERSES = INVERSES = {}\n\n# The tokens that signal the start/end of a balanced pair.\nEXPRESSION_START = []\nEXPRESSION_END   = []\n\nfor [left, rite] in BALANCED_PAIRS\n  EXPRESSION_START.push INVERSES[rite] = left\n  EXPRESSION_END  .push INVERSES[left] = rite\n\n# Tokens that indicate the close of a clause of an expression.\nEXPRESSION_CLOSE = ['CATCH', 'THEN', 'ELSE', 'FINALLY'].concat EXPRESSION_END\n\n# Tokens that, if followed by an `IMPLICIT_CALL`, indicate a function invocation.\nIMPLICIT_FUNC    = ['IDENTIFIER', 'SUPER', ')', 'CALL_END', ']', 'INDEX_END', '@', 'THIS']\n\n# If preceded by an `IMPLICIT_FUNC`, indicates a function invocation.\nIMPLICIT_CALL    = [\n  'IDENTIFIER', 'NUMBER', 'STRING', 'JS', 'REGEX', 'NEW', 'PARAM_START', 'CLASS'\n  'IF', 'TRY', 'SWITCH', 'THIS', 'BOOL', 'NULL', 'UNDEFINED', 'UNARY', 'YIELD'\n  'UNARY_MATH', 'SUPER', 'THROW', '@', '->', '=>', '[', '(', '{', '--', '++'\n]\n\nIMPLICIT_UNSPACED_CALL = ['+', '-']\n\n# Tokens that always mark the end of an implicit call for single-liners.\nIMPLICIT_END     = ['POST_IF', 'FOR', 'WHILE', 'UNTIL', 'WHEN', 'BY',\n  'LOOP', 'TERMINATOR']\n\n# Single-line flavors of block expressions that have unclosed endings.\n# The grammar can't disambiguate them, so we insert the implicit indentation.\nSINGLE_LINERS    = ['ELSE', '->', '=>', 'TRY', 'FINALLY', 'THEN']\nSINGLE_CLOSERS   = ['TERMINATOR', 'CATCH', 'FINALLY', 'ELSE', 'OUTDENT', 'LEADING_WHEN']\n\n# Tokens that end a line.\nLINEBREAKS       = ['TERMINATOR', 'INDENT', 'OUTDENT']\n\n# Tokens that close open calls when they follow a newline.\nCALL_CLOSERS     = ['.', '?.', '::', '?::']\n","\n// Hello world\n\nfunction fourth(){\n  throw new Error('fourth');\n}\n"],"names":[],"mappings":"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","file":"test-short.js"}