diff options
Diffstat (limited to 'node_modules/montage')
71 files changed, 6980 insertions, 2735 deletions
diff --git a/node_modules/montage/core/deserializer.js b/node_modules/montage/core/deserializer.js index 7e812235..b8ed5618 100755 --- a/node_modules/montage/core/deserializer.js +++ b/node_modules/montage/core/deserializer.js | |||
@@ -98,6 +98,26 @@ var Deserializer = Montage.create(Montage, /** @lends module:montage/core/deseri | |||
98 | }}, | 98 | }}, |
99 | 99 | ||
100 | /** | 100 | /** |
101 | Initializes the deserializer with a string | ||
102 | @param {String|Object} serialization A string or JSON-style object | ||
103 | describing the serialized objects. | ||
104 | @param {Function} require The module loader for the containing package. | ||
105 | @param {String} origin Usually a file name. | ||
106 | */ | ||
107 | init: { | ||
108 | value: function (serialization, require, origin) { | ||
109 | if (typeof serialization !== "string") { | ||
110 | serialization = JSON.stringify(serialization); | ||
111 | } | ||
112 | this._reset(); | ||
113 | this._serializationString = serialization; | ||
114 | this._require = require; | ||
115 | this._origin = origin; | ||
116 | return this; | ||
117 | } | ||
118 | }, | ||
119 | |||
120 | /** | ||
101 | Initializes the deserializer with a string of serialized objects. | 121 | Initializes the deserializer with a string of serialized objects. |
102 | @function | 122 | @function |
103 | @param {String} string A string of serialized objects. | 123 | @param {String} string A string of serialized objects. |
@@ -122,6 +142,14 @@ var Deserializer = Montage.create(Montage, /** @lends module:montage/core/deseri | |||
122 | return this; | 142 | return this; |
123 | }}, | 143 | }}, |
124 | 144 | ||
145 | initWithObjectAndRequire: {value: function(string, require, origin) { | ||
146 | this._reset(); | ||
147 | this._serializationString = JSON.stringify(object); | ||
148 | this._require = require; | ||
149 | this._origin = origin; | ||
150 | return this; | ||
151 | }}, | ||
152 | |||
125 | /** | 153 | /** |
126 | Initializes the deserializer object with a serialization string and the require object used to load the modules containing the object's prototypes. | 154 | Initializes the deserializer object with a serialization string and the require object used to load the modules containing the object's prototypes. |
127 | @function | 155 | @function |
@@ -168,8 +196,37 @@ var Deserializer = Montage.create(Montage, /** @lends module:montage/core/deseri | |||
168 | 196 | ||
169 | return objectsArray; | 197 | return objectsArray; |
170 | }}, | 198 | }}, |
199 | |||
200 | chainDeserializer: { | ||
201 | value: function(deserializer) { | ||
202 | var chainedSerializations = this._chainedSerializations, | ||
203 | optimizedIds, chainedOptimizedIds; | ||
204 | |||
205 | if (!chainedSerializations) { | ||
206 | this._chainedSerializations = chainedSerializations = []; | ||
207 | } | ||
208 | |||
209 | chainedSerializations.push({ | ||
210 | string: deserializer._serializationString, | ||
211 | compiledFunction: deserializer._compiledDeserializationFunction, | ||
212 | compiledFunctionString: deserializer._compiledDeserializationFunctionString | ||
213 | }); | ||
214 | |||
215 | // need to copy the optimized ids too, ideally all chained templates are optimized for the same document | ||
216 | chainedOptimizedIds = deserializer._optimizedIds; | ||
217 | if (chainedOptimizedIds) { | ||
218 | if (!optimizedIds) { | ||
219 | this._optimizedIds = optimizedIds = {}; | ||
220 | } | ||
221 | for (var id in chainedOptimizedIds) { | ||
222 | optimizedIds[id] = chainedOptimizedIds[id]; | ||
223 | } | ||
224 | } | ||
225 | } | ||
226 | }, | ||
227 | |||
171 | /** | 228 | /** |
172 | This function is to be used in the context of deserializeSelf delegate used for custom object deserializations. | 229 | This function is to be used in the context of deserializeProperties delegate used for custom object deserializations. |
173 | It reads an entry from the "properties" serialization unit of the object being deserialized. | 230 | It reads an entry from the "properties" serialization unit of the object being deserialized. |
174 | @function | 231 | @function |
175 | @param {string} name The name of the entry to be read. | 232 | @param {string} name The name of the entry to be read. |
@@ -182,8 +239,93 @@ var Deserializer = Montage.create(Montage, /** @lends module:montage/core/deseri | |||
182 | return stack[ix][name]; | 239 | return stack[ix][name]; |
183 | }}, | 240 | }}, |
184 | 241 | ||
242 | deserializeProperties: { | ||
243 | value: function() { | ||
244 | var stack = this._objectStack, | ||
245 | ix = stack.length - 1, | ||
246 | object = stack[ix-1], | ||
247 | desc = stack[ix]; | ||
248 | |||
249 | this._deserializeProperties(object, desc.propert |