From ee4112b7f1fc0dbcce26c2c21353bf5bbb55f5ca Mon Sep 17 00:00:00 2001 From: Martin Carlberg Date: Wed, 22 May 2013 10:34:46 +0200 Subject: [PATCH] Fixed: Removed double spaces before '@ref' and '@selector' generated output from compiler. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit '@ref' is generated to ' function(__input…' with the starting space if, for example, the code is 'return(@ref(a))'. This will create a space between 'return' and 'function(__input…'. When the compiler is generate the code this is not necessary. --- Objective-J/ObjJAcornCompiler.js | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/Objective-J/ObjJAcornCompiler.js b/Objective-J/ObjJAcornCompiler.js index d96364c9a..d8851579b 100644 --- a/Objective-J/ObjJAcornCompiler.js +++ b/Objective-J/ObjJAcornCompiler.js @@ -1624,22 +1624,30 @@ MessageSendExpression: function(node, st, c) { }, SelectorLiteralExpression: function(node, st, c) { var compiler = st.compiler, + buffer = compiler.jsBuffer, generate = compiler.generate; - if (!generate) compiler.jsBuffer.concat(compiler.source.substring(compiler.lastPos, node.start)); - compiler.jsBuffer.concat(" sel_getUid(\""); - compiler.jsBuffer.concat(node.selector); - compiler.jsBuffer.concat("\")"); + if (!generate) { + buffer.concat(compiler.source.substring(compiler.lastPos, node.start)); + buffer.concat(" "); // Add an extra space if it looks something like this: "return(@selector(a:))". No space between return and expression. + } + buffer.concat("sel_getUid(\""); + buffer.concat(node.selector); + buffer.concat("\")"); if (!generate) compiler.lastPos = node.end; }, Reference: function(node, st, c) { var compiler = st.compiler, + buffer = compiler.jsBuffer, generate = compiler.generate; - if (!generate) compiler.jsBuffer.concat(compiler.source.substring(compiler.lastPos, node.start)); - compiler.jsBuffer.concat(" function(__input) { if (arguments.length) return "); - compiler.jsBuffer.concat(node.element.name); - compiler.jsBuffer.concat(" = __input; return "); - compiler.jsBuffer.concat(node.element.name); - compiler.jsBuffer.concat("; }"); + if (!generate) { + buffer.concat(compiler.source.substring(compiler.lastPos, node.start)); + buffer.concat(" "); // Add an extra space if it looks something like this: "return()". No space between return and expression. + } + buffer.concat("function(__input) { if (arguments.length) return "); + buffer.concat(node.element.name); + buffer.concat(" = __input; return "); + buffer.concat(node.element.name); + buffer.concat("; }"); if (!generate) compiler.lastPos = node.end; }, Dereference: function(node, st, c) {