From 8805281798753e044f5487c2da2c3d3aec6acf87 Mon Sep 17 00:00:00 2001 From: David Greenspan Date: Thu, 3 Apr 2014 09:26:42 -0700 Subject: [PATCH] Make Deps not require Underscore --- packages/deps/deps.js | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/packages/deps/deps.js b/packages/deps/deps.js index 2b4df9bb61..513d653e8c 100644 --- a/packages/deps/deps.js +++ b/packages/deps/deps.js @@ -15,6 +15,16 @@ var setCurrentComputation = function (c) { Deps.active = !! c; }; +// _assign is like _.extend or the upcoming Object.assign. +// Copy src's own, enumerable properties onto tgt and return +// tgt. +var _assign = function (tgt, src) { + for (var k in src) + if (src.hasOwnProperty(k)) + tgt[k] = src[k]; + return tgt; +}; + var _debugFunc = function () { // lazy evaluation because `Meteor` does not exist right away return (typeof Meteor !== "undefined" ? Meteor._debug : @@ -116,7 +126,7 @@ Deps.Computation = function (f, parent) { } }; -_.extend(Deps.Computation.prototype, { +_assign(Deps.Computation.prototype, { // http://docs.meteor.com/#computation_oninvalidate onInvalidate: function (f) { @@ -213,7 +223,7 @@ Deps.Dependency = function () { this._dependentsById = {}; }; -_.extend(Deps.Dependency.prototype, { +_assign(Deps.Dependency.prototype, { // http://docs.meteor.com/#dependency_depend // // Adds `computation` to this set if it is not already @@ -255,7 +265,7 @@ _.extend(Deps.Dependency.prototype, { } }); -_.extend(Deps, { +_assign(Deps, { // http://docs.meteor.com/#deps_flush flush: function (_opts) { // XXX What part of the comment below is still true? (We no longer