From 1de6d3c45678c3b1e39789b99c5f8d6b1447bfed Mon Sep 17 00:00:00 2001 From: Chris Mather Date: Sun, 26 Oct 2014 20:39:13 -0700 Subject: [PATCH] remove EJSON.clone of data context in urlFor, pathFor and linkTo Note, we still clone individual attributes. But for the main data context we'll just create a new object and merge into it. That we we're assigning new properties to the new object vs. mutating the original data context. But we'll avoid the circular reference loops that cause problems for EJSON.clone. --- lib/helpers.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/helpers.js b/lib/helpers.js index 96e4eb9e..71034401 100644 --- a/lib/helpers.js +++ b/lib/helpers.js @@ -37,7 +37,7 @@ UI.registerHelper('pathFor', function (options) { var query = opts.query; var hash = opts.hash; var routeName = routeName || opts.route; - var data = EJSON.clone(opts.data || this); + var data = _.extend({}, opts.data || this); var route = Router.routes[routeName]; warn(route, "pathFor couldn't find a route named " + JSON.stringify(routeName)); @@ -78,7 +78,7 @@ UI.registerHelper('urlFor', function (options) { var query = opts.query; var hash = opts.hash; var routeName = routeName || opts.route; - var data = EJSON.clone(opts.data || this); + var data = _.extend({}, opts.data || this); var route = Router.routes[routeName]; warn(route, "urlFor couldn't find a route named " + JSON.stringify(routeName)); @@ -120,7 +120,7 @@ UI.registerHelper('linkTo', new Blaze.Template('linkTo', function () { var query = opts.query; var hash = opts.hash; var routeName = opts.route; - var data = EJSON.clone(opts.data || DynamicTemplate.getParentDataContext(this)); + var data = _.extend({}, opts.data || DynamicTemplate.getParentDataContext(this)); var route = Router.routes[routeName]; var paramKeys;