Skip to content

Commit

Permalink
Merge branch 'master' of github.com:jashkenas/coffeescript into 2
Browse files Browse the repository at this point in the history
# Conflicts:
#	lib/coffee-script/rewriter.js
#	lib/coffeescript/lexer.js
  • Loading branch information
GeoffreyBooth committed May 3, 2017
2 parents 2f9ab1d + 51c0657 commit eba271d
Show file tree
Hide file tree
Showing 7 changed files with 30 additions and 20 deletions.
2 changes: 1 addition & 1 deletion lib/coffeescript/rewriter.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion src/rewriter.coffee
Original file line number Diff line number Diff line change
Expand Up @@ -396,7 +396,8 @@ exports.Rewriter = class Rewriter
not (token[0] is 'TERMINATOR' and @tag(i + 1) in EXPRESSION_CLOSE) and
not (token[0] is 'ELSE' and starter isnt 'THEN') and
not (token[0] in ['CATCH', 'FINALLY'] and starter in ['->', '=>']) or
token[0] in CALL_CLOSERS and @tokens[i - 1].newLine
token[0] in CALL_CLOSERS and
(@tokens[i - 1].newLine or @tokens[i - 1][0] is 'OUTDENT')

action = (token, i) ->
@tokens.splice (if @tag(i - 1) is ',' then i - 1 else i), 0, outdent
Expand Down
23 changes: 23 additions & 0 deletions test/formatting.coffee
Original file line number Diff line number Diff line change
Expand Up @@ -198,6 +198,29 @@ test "#1495, method call chaining", ->
).join ', '
eq 'a, b, c', result

test "chaining should not wrap spilling ternary", ->
throws -> CoffeeScript.compile """
if 0 then 1 else g
a: 42
.h()
"""

test "chaining should wrap calls containing spilling ternary", ->
f = (x) -> h: x
id = (x) -> x
result = f if true then 42 else id
a: 2
.h
eq 42, result

test "chaining should work within spilling ternary", ->
f = (x) -> h: x
id = (x) -> x
result = f if false then 1 else id
a: 3
.a
eq 3, result.h

# Nested blocks caused by paren unwrapping
test "#1492: Nested blocks don't cause double semicolons", ->
js = CoffeeScript.compile '(0;0)'
Expand Down
6 changes: 0 additions & 6 deletions test/modules.coffee
Original file line number Diff line number Diff line change
Expand Up @@ -36,12 +36,6 @@
# CoffeeScript also supports optional commas within `{ … }`.


# Helper function
toJS = (str) ->
CoffeeScript.compile str, bare: yes
.replace /^\s+|\s+$/g, '' # Trim leading/trailing whitespace


# Import statements

test "backticked import statement", ->
Expand Down
6 changes: 0 additions & 6 deletions test/regexps.coffee
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,6 @@
# * Regexen
# * Heregexen

# Helper function
toJS = (str) ->
CoffeeScript.compile str, bare: yes
.replace /^\s+|\s+$/g, '' # Trim leading/trailing whitespace


test "basic regular expression literals", ->
ok 'a'.match(/a/)
ok 'a'.match /a/
Expand Down
6 changes: 0 additions & 6 deletions test/strings.coffee
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,6 @@
# * Strings
# * Heredocs

# Helper function
toJS = (str) ->
CoffeeScript.compile str, bare: yes
.replace /^\s+|\s+$/g, '' # Trim leading/trailing whitespace


test "backslash escapes", ->
eq "\\/\\\\", /\/\\/.source

Expand Down
4 changes: 4 additions & 0 deletions test/support/helpers.coffee
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,7 @@ arrayEgal = (a, b) ->

exports.eq = (a, b, msg) -> ok egal(a, b), msg or "Expected #{a} to equal #{b}"
exports.arrayEq = (a, b, msg) -> ok arrayEgal(a,b), msg or "Expected #{a} to deep equal #{b}"

exports.toJS = (str) ->
CoffeeScript.compile str, bare: yes
.replace /^\s+|\s+$/g, '' # Trim leading/trailing whitespace

0 comments on commit eba271d

Please sign in to comment.