From c6bca15b0ac56f7e9f97a15afae4dd9a759dc1e0 Mon Sep 17 00:00:00 2001 From: mde Date: Sat, 23 Nov 2019 17:22:03 -0800 Subject: [PATCH] Removed legacy preprocessor include --- lib/ejs.js | 29 ---- test/ejs.js | 158 ------------------ test/fixtures/include_preprocessor.css.ejs | 1 - test/fixtures/include_preprocessor.css.html | 4 - test/fixtures/include_preprocessor.ejs | 5 - test/fixtures/include_preprocessor.html | 12 -- test/fixtures/include_preprocessor_cache.ejs | 1 - test/fixtures/include_preprocessor_cache.html | 1 - .../include_preprocessor_line_slurp.ejs | 1 - .../include_preprocessor_line_slurp.html | 5 - .../include_preprocessor_line_slurp_child.ejs | 5 - test/fixtures/includes/menu-item.ejs | 2 +- test/fixtures/menu_preprocessor.ejs | 11 -- test/fixtures/menu_preprocessor.html | 8 - 14 files changed, 1 insertion(+), 242 deletions(-) delete mode 100644 test/fixtures/include_preprocessor.css.ejs delete mode 100644 test/fixtures/include_preprocessor.css.html delete mode 100644 test/fixtures/include_preprocessor.ejs delete mode 100644 test/fixtures/include_preprocessor.html delete mode 100644 test/fixtures/include_preprocessor_cache.ejs delete mode 100644 test/fixtures/include_preprocessor_cache.html delete mode 100644 test/fixtures/include_preprocessor_line_slurp.ejs delete mode 100644 test/fixtures/include_preprocessor_line_slurp.html delete mode 100644 test/fixtures/include_preprocessor_line_slurp_child.ejs delete mode 100644 test/fixtures/menu_preprocessor.ejs delete mode 100644 test/fixtures/menu_preprocessor.html diff --git a/lib/ejs.js b/lib/ejs.js index abc3dfd7..312eb602 100755 --- a/lib/ejs.js +++ b/lib/ejs.js @@ -736,35 +736,6 @@ Template.prototype = { throw new Error('Could not find matching close tag for "' + line + '".'); } } - // HACK: backward-compat `include` preprocessor directives - if (opts.legacyInclude && (include = line.match(/^\s*include\s+(\S+)/))) { - opening = matches[index - 1]; - // Must be in EVAL or RAW mode - if (opening && (opening == o + d || opening == o + d + '-' || opening == o + d + '_')) { - includeOpts = utils.shallowCopy({}, self.opts); - includeObj = includeSource(include[1], includeOpts); - if (self.opts.compileDebug) { - includeSrc = - ' ; (function(){' + '\n' - + ' var __line = 1' + '\n' - + ' , __lines = ' + JSON.stringify(includeObj.template) + '\n' - + ' , __filename = ' + JSON.stringify(includeObj.filename) + ';' + '\n' - + ' try {' + '\n' - + includeObj.source - + ' } catch (e) {' + '\n' - + ' rethrow(e, __lines, __filename, __line, escapeFn);' + '\n' - + ' }' + '\n' - + ' ; }).call(this)' + '\n'; - }else{ - includeSrc = ' ; (function(){' + '\n' + includeObj.source + - ' ; }).call(this)' + '\n'; - } - self.source += includeSrc; - self.dependencies.push(exports.resolveInclude(include[1], - includeOpts.filename)); - return; - } - } self.scanLine(line); }); } diff --git a/test/ejs.js b/test/ejs.js index d4ac6723..5a7e7d4e 100755 --- a/test/ejs.js +++ b/test/ejs.js @@ -563,42 +563,6 @@ suite('ejs.renderFile(path, [data], [options], [fn])', function () { }); - test('support express multiple views folders, falls back to second if first is not available (include preprocessor)', function (done) { - var data = { - viewsText: 'test', - settings: { - views: [ - path.join(__dirname, 'fixtures/nonexistent-folder'), - path.join(__dirname, 'fixtures') - ] - } - }; - ejs.renderFile(path.join(__dirname, 'fixtures/views-old.ejs'), data, function(error, data){ - assert.ifError(error); - assert.equal('

global test

\n
\n', data); - done(); - }); - - }); - - test('looks relative to the containing file first (include preprocessor)', function (done) { - var data = { - viewsText: 'test', - settings: { - views: [ - path.join(__dirname, 'fixtures/views'), - path.join(__dirname, 'fixtures') - ] - } - }; - ejs.renderFile(path.join(__dirname, 'fixtures/views-old.ejs'), data, function(error, data){ - assert.ifError(error); - assert.equal('

global test

\n
\n', data); - done(); - }); - - }); - test('can reference by paths with directory names', function (done) { var data = { viewsText: 'test', @@ -1113,128 +1077,6 @@ suite('include()', function () { }); -suite('preprocessor include', function () { - test('work', function () { - var file = 'test/fixtures/include_preprocessor.ejs'; - assert.equal(ejs.render(fixture('include_preprocessor.ejs'), {pets: users}, {filename: file, delimiter: '@'}), - fixture('include_preprocessor.html')); - }); - - test('no false positives', function () { - assert.equal(ejs.render('<% %> include foo <% %>'), ' include foo '); - }); - - test('fails without `filename`', function () { - try { - ejs.render(fixture('include_preprocessor.ejs'), {pets: users}, {delimiter: '@'}); - } - catch (err) { - assert.ok(err.message.indexOf('Could not find') > -1); - return; - } - throw new Error('expected inclusion error'); - }); - - test('strips BOM', function () { - assert.equal( - ejs.render('<% include fixtures/includes/bom.ejs %>', - {}, {filename: path.join(__dirname, 'f.ejs')}), - '

This is a file with BOM.

\n'); - }); - - test('work when nested', function () { - var file = 'test/fixtures/menu_preprocessor.ejs'; - assert.equal(ejs.render(fixture('menu_preprocessor.ejs'), {pets: users}, {filename: file}), - fixture('menu_preprocessor.html')); - }); - - test('tracks dependency correctly', function () { - var file = 'test/fixtures/menu_preprocessor.ejs'; - var fn = ejs.compile(fixture('menu_preprocessor.ejs'), {filename: file}); - assert(fn.dependencies.length); - }); - - test('include arbitrary files as-is', function () { - var file = 'test/fixtures/include_preprocessor.css.ejs'; - assert.equal(ejs.render(fixture('include_preprocessor.css.ejs'), {pets: users}, {filename: file}), - fixture('include_preprocessor.css.html')); - }); - - test('pass compileDebug to include', function () { - var file = 'test/fixtures/include_preprocessor.ejs'; - var fn; - fn = ejs.compile(fixture('include_preprocessor.ejs'), { - filename: file, - delimiter: '@', - compileDebug: false - }); - try { - // Render without a required variable reference - fn({foo: 'asdf'}); - } - catch(e) { - assert.equal(e.message, 'pets is not defined'); - assert.ok(!e.path); - return; - } - throw new Error('no error reported when there should be'); - }); - - test('is static', function () { - fs.writeFileSync(__dirname + '/tmp/include_preprocessor.ejs', '

Old

'); - var file = 'test/fixtures/include_preprocessor_cache.ejs'; - var options = {filename: file}; - var out = ejs.compile(fixture('include_preprocessor_cache.ejs'), options); - assert.equal(out(), '

Old

\n'); - - fs.writeFileSync(__dirname + '/tmp/include_preprocessor.ejs', '

New

'); - assert.equal(out(), '

Old

\n'); - }); - - test('support caching', function () { - fs.writeFileSync(__dirname + '/tmp/include_preprocessor.ejs', '

Old

'); - var file = 'test/fixtures/include_preprocessor_cache.ejs'; - var options = {cache: true, filename: file}; - var out = ejs.render(fixture('include_preprocessor_cache.ejs'), {}, options); - var expected = fixture('include_preprocessor_cache.html'); - assert.equal(out, expected); - fs.writeFileSync(__dirname + '/tmp/include_preprocessor.ejs', '

New

'); - out = ejs.render(fixture('include_preprocessor_cache.ejs'), {}, options); - assert.equal(out, expected); - }); - - test('whitespace slurp and rmWhitespace work', function() { - var file = 'test/fixtures/include_preprocessor_line_slurp.ejs'; - var template = fixture('include_preprocessor_line_slurp.ejs'); - var expected = fixture('include_preprocessor_line_slurp.html'); - var options = {rmWhitespace: true, filename: file}; - assert.equal(ejs.render(template, {}, options), - expected); - }); - - test('handles errors in included file', function() { - try { - ejs.render('<%- include fixtures/include-with-error %>', {}, {filename: path.join(__dirname, 'f.ejs')}); - } - catch (err) { - assert.ok(err.message.indexOf('foobar is not defined') > -1); - return; - } - throw new Error('expected inclusion error'); - }); - - test('legacy includes are a syntax error when disabled', function() { - try { - ejs.render('<%- include is-syntax-error %>', null, {legacyInclude: false}); - } - catch (err) { - assert.ok(err.message.indexOf('missing ) after argument list') > -1); - return; - } - throw new Error('expected SyntaxError from legacy include being disabled'); - }); -}); - suite('comments', function () { test('fully render with comments removed', function () { assert.equal(ejs.render(fixture('comments.ejs')), diff --git a/test/fixtures/include_preprocessor.css.ejs b/test/fixtures/include_preprocessor.css.ejs deleted file mode 100644 index 2535b6c8..00000000 --- a/test/fixtures/include_preprocessor.css.ejs +++ /dev/null @@ -1 +0,0 @@ - diff --git a/test/fixtures/include_preprocessor.css.html b/test/fixtures/include_preprocessor.css.html deleted file mode 100644 index 9e6e33e6..00000000 --- a/test/fixtures/include_preprocessor.css.html +++ /dev/null @@ -1,4 +0,0 @@ - diff --git a/test/fixtures/include_preprocessor.ejs b/test/fixtures/include_preprocessor.ejs deleted file mode 100644 index f2728c52..00000000 --- a/test/fixtures/include_preprocessor.ejs +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/test/fixtures/include_preprocessor.html b/test/fixtures/include_preprocessor.html deleted file mode 100644 index 5431d7c3..00000000 --- a/test/fixtures/include_preprocessor.html +++ /dev/null @@ -1,12 +0,0 @@ - diff --git a/test/fixtures/include_preprocessor_cache.ejs b/test/fixtures/include_preprocessor_cache.ejs deleted file mode 100644 index ae609231..00000000 --- a/test/fixtures/include_preprocessor_cache.ejs +++ /dev/null @@ -1 +0,0 @@ -<%- include ../tmp/include_preprocessor %> diff --git a/test/fixtures/include_preprocessor_cache.html b/test/fixtures/include_preprocessor_cache.html deleted file mode 100644 index 63bf29c4..00000000 --- a/test/fixtures/include_preprocessor_cache.html +++ /dev/null @@ -1 +0,0 @@ -

Old

diff --git a/test/fixtures/include_preprocessor_line_slurp.ejs b/test/fixtures/include_preprocessor_line_slurp.ejs deleted file mode 100644 index fd1765c8..00000000 --- a/test/fixtures/include_preprocessor_line_slurp.ejs +++ /dev/null @@ -1 +0,0 @@ -<% include include_preprocessor_line_slurp_child %> \ No newline at end of file diff --git a/test/fixtures/include_preprocessor_line_slurp.html b/test/fixtures/include_preprocessor_line_slurp.html deleted file mode 100644 index 7ab7998b..00000000 --- a/test/fixtures/include_preprocessor_line_slurp.html +++ /dev/null @@ -1,5 +0,0 @@ -
-12 -3 -45 -
\ No newline at end of file diff --git a/test/fixtures/include_preprocessor_line_slurp_child.ejs b/test/fixtures/include_preprocessor_line_slurp_child.ejs deleted file mode 100644 index 1c4a7c6e..00000000 --- a/test/fixtures/include_preprocessor_line_slurp_child.ejs +++ /dev/null @@ -1,5 +0,0 @@ -
-1 <%_ if (true) { _%> 2 - 3 -4 <%_ } _%> 5 -
\ No newline at end of file diff --git a/test/fixtures/includes/menu-item.ejs b/test/fixtures/includes/menu-item.ejs index 5a1e2efc..4764996e 100644 --- a/test/fixtures/includes/menu-item.ejs +++ b/test/fixtures/includes/menu-item.ejs @@ -1 +1 @@ -
  • <% include menu/item %>
  • +
  • <%- include('menu/item', {url: url, title: title}); -%>
  • diff --git a/test/fixtures/menu_preprocessor.ejs b/test/fixtures/menu_preprocessor.ejs deleted file mode 100644 index cca1d02a..00000000 --- a/test/fixtures/menu_preprocessor.ejs +++ /dev/null @@ -1,11 +0,0 @@ -<% var url = '/foo' -%> -<% var title = 'Foo' -%> -<% include includes/menu-item -%> - -<% var url = '/bar' -%> -<% var title = 'Bar' -%> -<% include includes/menu-item -%> - -<% var url = '/baz' -%> -<% var title = 'Baz' -%> -<% include includes/menu-item -%> diff --git a/test/fixtures/menu_preprocessor.html b/test/fixtures/menu_preprocessor.html deleted file mode 100644 index 651b60ed..00000000 --- a/test/fixtures/menu_preprocessor.html +++ /dev/null @@ -1,8 +0,0 @@ -
  • Foo -
  • - -
  • Bar -
  • - -
  • Baz -