Skip to content

Commit

Permalink
Prevent view manager from cloning engines. Closes #1661
Browse files Browse the repository at this point in the history
  • Loading branch information
Eran Hammer committed May 26, 2014
1 parent 5574cb7 commit bb0fcb5
Showing 1 changed file with 15 additions and 5 deletions.
20 changes: 15 additions & 5 deletions lib/views.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,25 +22,35 @@ exports.Manager = internals.Manager = function (options, override) {

var self = this;

var extensions = Object.keys(options.engines);
Hoek.assert(extensions.length, 'Views manager requires at least one registered extension handler');
// Save non-defaults values

var engines = options.engines;
var defaultExtension = options.defaultExtension;

// Clone options

options.engines = null; // Prevent engines from being cloned
var defaults = Hoek.applyToDefaults(Defaults.views, options);
if (override) {
var defaults = Hoek.applyToDefaults(defaults, override);
}

delete defaults.engines;
options.engines = engines; // Restore object to original state
delete defaults.defaultExtension;

// Prepare manager state

var extensions = Object.keys(engines);
Hoek.assert(extensions.length, 'Views manager requires at least one registered extension handler');

this._engines = {};
this._defaultExtension = options.defaultExtension || (extensions.length === 1 ? extensions[0] : '');
this._defaultExtension = defaultExtension || (extensions.length === 1 ? extensions[0] : '');

// Load engines

extensions.forEach(function (extension) {

var config = options.engines[extension];
var config = engines[extension];
var engine = {};

if (config.compile &&
Expand Down

0 comments on commit bb0fcb5

Please sign in to comment.