diff --git a/lib/index.js b/lib/index.js index ce576dd88..7f1275d19 100644 --- a/lib/index.js +++ b/lib/index.js @@ -301,27 +301,27 @@ module.exports.render = function(options, cb) { if (Array.isArray(importer)) { importer.forEach(function(subject, index) { options.importer[index] = function(file, prev, bridge) { - function done(data) { - bridge.success(data); + function done(result) { + bridge.success(result === module.exports.NULL ? null : result); } var result = subject.call(options.context, file, prev, done); - if (result) { - done(result === module.exports.NULL ? null : result); + if (result !== undefined) { + done(result); } }; }); } else { options.importer = function(file, prev, bridge) { - function done(data) { - bridge.success(data); + function done(result) { + bridge.success(result === module.exports.NULL ? null : result); } var result = importer.call(options.context, file, prev, done); - if (result) { - done(result === module.exports.NULL ? null : result); + if (result !== undefined) { + done(result); } }; } diff --git a/test/api.js b/test/api.js index 98d9fa5a7..bbdd754c1 100644 --- a/test/api.js +++ b/test/api.js @@ -325,6 +325,17 @@ describe('api', function() { }); }); + it('should fallback to default import behaviour if importer returns sass.NULL', function(done) { + sass.render({ + file: fixture('include-files/index.scss'), + importer: function(url, prev, done) { + done(sass.NULL); + } + }, function(error, result) { + assert.equal(result.css.toString().trim(), '/* foo.scss */\n/* bar.scss */'); + done(); + }); + }); it('should fallback to default import behaviour if importer returns null for backwards compatibility', function(done) { sass.render({ @@ -1010,7 +1021,7 @@ describe('api', function() { return sass.types.String('foo'); }, bar: function(a) { - assert.strictEqual(a, sass.NULL, + assert.strictEqual(a, sass.NULL, 'Supplied value should be the same instance as sass.NULL'); assert.throws(function() {