From 9b97eb952df1db4635c0bab4e0204e62ce4d340f Mon Sep 17 00:00:00 2001 From: Forbes Lindesay Date: Fri, 18 Oct 2013 16:14:24 +0100 Subject: [PATCH 1/2] Remove the assignment operator The behaviour was never what anyone expected. What ever we made the behaviour, it would confuse someone. --- lib/lexer.js | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/lib/lexer.js b/lib/lexer.js index f3a7677e6..a9dd26e83 100644 --- a/lib/lexer.js +++ b/lib/lexer.js @@ -417,24 +417,6 @@ Lexer.prototype = { return this.scan(/^default */, 'default'); }, - /** - * Assignment. - */ - - assignment: function() { - var captures; - if (captures = /^([\w_]+) += *([^\n]+)/.exec(this.input)) { - this.consume(captures[0].length); - var name = captures[1] - , val = captures[2].trim(); - if (val[val.length - 1] === ';') { - val = val.substr(0, val.length - 1); - } - assertExpression(val); - return this.tok('code', 'var ' + name + ' = (' + val + ');'); - } - }, - /** * Call mixin. */ @@ -829,7 +811,6 @@ Lexer.prototype = { || this.conditional() || this.each() || this["while"]() - || this.assignment() || this.tag() || this.filter() || this.code() From b5e7160387023d53284f4ec3819f2de6122cd60b Mon Sep 17 00:00:00 2001 From: Forbes Lindesay Date: Fri, 18 Oct 2013 16:23:52 +0100 Subject: [PATCH 2/2] Fix redundant tests --- test/cases/attrs-data.jade | 2 +- test/cases/case-blocks.jade | 2 +- test/cases/case.jade | 2 +- test/cases/code.iteration.jade | 10 +++++----- test/cases/each.else.jade | 10 +++++----- test/cases/filters-empty.jade | 2 +- test/cases/filters.cdata.jade | 2 +- test/cases/mixin.blocks.jade | 2 +- test/cases/regression.784.jade | 2 +- test/cases/tag.interpolation.jade | 4 ++-- test/cases/vars.jade | 4 ++-- test/jade.test.js | 11 ----------- 12 files changed, 21 insertions(+), 32 deletions(-) diff --git a/test/cases/attrs-data.jade b/test/cases/attrs-data.jade index e3430ece0..4e47db487 100644 --- a/test/cases/attrs-data.jade +++ b/test/cases/attrs-data.jade @@ -1,4 +1,4 @@ -user = { name: 'tobi' } +- var user = { name: 'tobi' } foo(data-user=user) foo(data-items=[1,2,3]) foo(data-username='tobi') diff --git a/test/cases/case-blocks.jade b/test/cases/case-blocks.jade index 9bf237353..345cd410f 100644 --- a/test/cases/case-blocks.jade +++ b/test/cases/case-blocks.jade @@ -1,6 +1,6 @@ html body - friends = 1 + - var friends = 1 case friends when 0 p you have no friends diff --git a/test/cases/case.jade b/test/cases/case.jade index 9ba6180b2..8d16f2bfa 100644 --- a/test/cases/case.jade +++ b/test/cases/case.jade @@ -1,6 +1,6 @@ html body - friends = 1 + - var friends = 1 case friends when 0: p you have no friends when 1: p you have a friend diff --git a/test/cases/code.iteration.jade b/test/cases/code.iteration.jade index 29a53e2e0..6065ef1be 100644 --- a/test/cases/code.iteration.jade +++ b/test/cases/code.iteration.jade @@ -6,7 +6,7 @@ ul li= item - }) -items = [1,2,3] +- var items = [1,2,3] ul for item, i in items @@ -20,16 +20,16 @@ ul each $item in items li= $item -nums = [1, 2, 3] -letters = ['a', 'b', 'c'] +- var nums = [1, 2, 3] +- var letters = ['a', 'b', 'c'] ul for l in letters for n in nums li #{n}: #{l} -count = 1 -counter = function() { return [count++, count++, count++] } +- var count = 1 +- var counter = function() { return [count++, count++, count++] } ul for n in counter() li #{n} \ No newline at end of file diff --git a/test/cases/each.else.jade b/test/cases/each.else.jade index e1840fc96..688b1adce 100644 --- a/test/cases/each.else.jade +++ b/test/cases/each.else.jade @@ -1,5 +1,5 @@ -users = [] +- var users = [] ul for user in users @@ -8,7 +8,7 @@ ul li no users! -users = [{ name: 'tobi', friends: ['loki'] }, { name: 'loki' }] +- var users = [{ name: 'tobi', friends: ['loki'] }, { name: 'loki' }] if users ul @@ -17,7 +17,7 @@ if users else li no users! -user = { name: 'tobi', age: 10 } +- var user = { name: 'tobi', age: 10 } ul each val, key in user @@ -25,7 +25,7 @@ ul else li user has no details! -user = {} +- var user = {} ul each prop, key in user @@ -39,7 +39,7 @@ ul - else li user has no details! -user = Object.create(null) +- var user = Object.create(null) - user.name = 'tobi' ul diff --git a/test/cases/filters-empty.jade b/test/cases/filters-empty.jade index 8b00ec9c3..7aa64de3f 100644 --- a/test/cases/filters-empty.jade +++ b/test/cases/filters-empty.jade @@ -1,4 +1,4 @@ -users = [{ name: 'tobi', age: 2 }] +- var users = [{ name: 'tobi', age: 2 }] fb:users for user in users diff --git a/test/cases/filters.cdata.jade b/test/cases/filters.cdata.jade index cc14b417e..a9f092184 100644 --- a/test/cases/filters.cdata.jade +++ b/test/cases/filters.cdata.jade @@ -1,5 +1,5 @@ -users = [{ name: 'tobi', age: 2 }] +- users = [{ name: 'tobi', age: 2 }] fb:users for user in users diff --git a/test/cases/mixin.blocks.jade b/test/cases/mixin.blocks.jade index c48bd796e..30c9990dd 100644 --- a/test/cases/mixin.blocks.jade +++ b/test/cases/mixin.blocks.jade @@ -2,7 +2,7 @@ mixin form(method, action) form(method=method, action=action) - csrf_token_from_somewhere = 'hey' + - var csrf_token_from_somewhere = 'hey' input(type='hidden', name='_csrf', value=csrf_token_from_somewhere) block diff --git a/test/cases/regression.784.jade b/test/cases/regression.784.jade index a48a50605..bab754061 100644 --- a/test/cases/regression.784.jade +++ b/test/cases/regression.784.jade @@ -1,2 +1,2 @@ -url = 'http://www.google.com' +- var url = 'http://www.google.com' .url #{url.replace('http://', '').replace(/^www\./, '')} \ No newline at end of file diff --git a/test/cases/tag.interpolation.jade b/test/cases/tag.interpolation.jade index 1032c5faf..ab167aaf4 100644 --- a/test/cases/tag.interpolation.jade +++ b/test/cases/tag.interpolation.jade @@ -1,6 +1,6 @@ -tag = 'p' -foo = 'bar' +- var tag = 'p' +- var foo = 'bar' #{tag} value #{tag}(foo='bar') value diff --git a/test/cases/vars.jade b/test/cases/vars.jade index 45e3fde8f..46451a945 100644 --- a/test/cases/vars.jade +++ b/test/cases/vars.jade @@ -1,3 +1,3 @@ -foo = 'bar' -list = [1,2,3] +- var foo = 'bar' +- var list = [1,2,3] a(class=list, id=foo) \ No newline at end of file diff --git a/test/jade.test.js b/test/jade.test.js index dd6467861..df815a111 100644 --- a/test/jade.test.js +++ b/test/jade.test.js @@ -962,17 +962,6 @@ describe('jade', function(){ assert.ok(!tag.getAttribute(name)) }); - it('should support assignment', function(){ - assert.equal('
5
', jade.render('a = 5;\ndiv= a')); - assert.equal('
5
', jade.render('a = 5\ndiv= a')); - assert.equal('
foo bar baz
', jade.render('a = "foo bar baz"\ndiv= a')); - assert.equal('
5
', jade.render('a = 5 \ndiv= a')); - assert.equal('
5
', jade.render('a = 5 ; \ndiv= a')); - - var fn = jade.compile('test = local\np=test'); - assert.equal('

bar

', fn({ local: 'bar' })); - }); - it('should be reasonably fast', function(){ jade.compile(perfTest, {}) })