From 55e3b6b3c35b5cd19cc4f03935785e8bbb61c29d Mon Sep 17 00:00:00 2001 From: Leonid Beschastny Date: Wed, 17 Sep 2014 15:02:10 +0400 Subject: [PATCH 1/2] Fixed jashkenas/coffeescript#3638 - invalid block comments compilation --- lib/coffee-script/nodes.js | 2 +- src/nodes.coffee | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/coffee-script/nodes.js b/lib/coffee-script/nodes.js index 52c99a9f8a..23086482de 100644 --- a/lib/coffee-script/nodes.js +++ b/lib/coffee-script/nodes.js @@ -855,7 +855,7 @@ Comment.prototype.compileNode = function(o, level) { var code, comment; - comment = this.comment.replace(/^(\s*)#/gm, "$1 *"); + comment = this.comment.replace(/^(\s*)# /gm, "$1 * "); code = "/*" + (multident(comment, this.tab)) + (__indexOf.call(comment, '\n') >= 0 ? "\n" + this.tab : '') + " */"; if ((level || o.level) === LEVEL_TOP) { code = o.indent + code; diff --git a/src/nodes.coffee b/src/nodes.coffee index 01eb384d9e..7067034967 100644 --- a/src/nodes.coffee +++ b/src/nodes.coffee @@ -577,7 +577,7 @@ exports.Comment = class Comment extends Base makeReturn: THIS compileNode: (o, level) -> - comment = @comment.replace /^(\s*)#/gm, "$1 *" + comment = @comment.replace /^(\s*)# /gm, "$1 * " code = "/*#{multident comment, @tab}#{if '\n' in comment then "\n#{@tab}" else ''} */" code = o.indent + code if (level or o.level) is LEVEL_TOP [@makeCode("\n"), @makeCode(code)] From 77d5b952600b2e320046203fdd5c5ba61ac30290 Mon Sep 17 00:00:00 2001 From: Leonid Beschastny Date: Wed, 17 Sep 2014 14:46:50 +0400 Subject: [PATCH 2/2] Added test for jashkenas/coffee-script#3638 --- test/comments.coffee | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/test/comments.coffee b/test/comments.coffee index 0b68ee37da..8c2aa1279c 100644 --- a/test/comments.coffee +++ b/test/comments.coffee @@ -399,3 +399,22 @@ test "#3132: Place block-comments nicely", -> """ eq CoffeeScript.compile(input, bare: on), result + +test "#3638: Demand a whitespace after # symbol", -> + input = """ + ### + #No + #whitespace + ###""" + + result = """ + + /* + #No + #whitespace + */ + + + """ + + eq CoffeeScript.compile(input, bare: on), result