OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 define("mojo/public/js/bindings/codec", [ | 5 define("mojo/public/js/bindings/codec", [ |
6 "mojo/public/js/bindings/unicode", | 6 "mojo/public/js/bindings/unicode", |
7 "mojo/public/js/bindings/buffer" | 7 "mojo/public/js/bindings/buffer" |
8 ], function(unicode, buffer) { | 8 ], function(unicode, buffer) { |
9 | 9 |
10 var kErrorUnsigned = "Passing negative value to unsigned"; | 10 var kErrorUnsigned = "Passing negative value to unsigned"; |
(...skipping 298 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
309 for (var i = 0; i < numberOfElements; ++i) | 309 for (var i = 0; i < numberOfElements; ++i) |
310 cls.encode(this, val[i]); | 310 cls.encode(this, val[i]); |
311 } | 311 } |
312 }; | 312 }; |
313 | 313 |
314 Encoder.prototype.encodeStruct = function(cls, val) { | 314 Encoder.prototype.encodeStruct = function(cls, val) { |
315 return cls.encode(this, val); | 315 return cls.encode(this, val); |
316 }; | 316 }; |
317 | 317 |
318 Encoder.prototype.encodeStructPointer = function(cls, val) { | 318 Encoder.prototype.encodeStructPointer = function(cls, val) { |
319 if (!val) { | 319 if (val == null) { |
| 320 // Also handles undefined, since undefined == null. |
320 this.encodePointer(val); | 321 this.encodePointer(val); |
321 return; | 322 return; |
322 } | 323 } |
323 var encoder = this.createAndEncodeEncoder(cls.encodedSize); | 324 var encoder = this.createAndEncodeEncoder(cls.encodedSize); |
324 cls.encode(encoder, val); | 325 cls.encode(encoder, val); |
325 }; | 326 }; |
326 | 327 |
327 Encoder.prototype.encodeArrayPointer = function(cls, val) { | 328 Encoder.prototype.encodeArrayPointer = function(cls, val) { |
328 if (!val) { | 329 if (val == null) { |
| 330 // Also handles undefined, since undefined == null. |
329 this.encodePointer(val); | 331 this.encodePointer(val); |
330 return; | 332 return; |
331 } | 333 } |
332 var numberOfElements = val.length; | 334 var numberOfElements = val.length; |
333 var encodedSize = kArrayHeaderSize + ((cls === PackedBool) ? | 335 var encodedSize = kArrayHeaderSize + ((cls === PackedBool) ? |
334 Math.ceil(numberOfElements / 8) : cls.encodedSize * numberOfElements); | 336 Math.ceil(numberOfElements / 8) : cls.encodedSize * numberOfElements); |
335 var encoder = this.createAndEncodeEncoder(encodedSize); | 337 var encoder = this.createAndEncodeEncoder(encodedSize); |
336 encoder.encodeArray(cls, val, numberOfElements, encodedSize); | 338 encoder.encodeArray(cls, val, numberOfElements, encodedSize); |
337 }; | 339 }; |
338 | 340 |
339 Encoder.prototype.encodeStringPointer = function(val) { | 341 Encoder.prototype.encodeStringPointer = function(val) { |
340 if (!val) { | 342 if (val == null) { |
| 343 // Also handles undefined, since undefined == null. |
341 this.encodePointer(val); | 344 this.encodePointer(val); |
342 return; | 345 return; |
343 } | 346 } |
344 var encodedSize = kArrayHeaderSize + unicode.utf8Length(val); | 347 var encodedSize = kArrayHeaderSize + unicode.utf8Length(val); |
345 var encoder = this.createAndEncodeEncoder(encodedSize); | 348 var encoder = this.createAndEncodeEncoder(encodedSize); |
346 encoder.encodeString(val); | 349 encoder.encodeString(val); |
347 }; | 350 }; |
348 | 351 |
349 // Message ------------------------------------------------------------------ | 352 // Message ------------------------------------------------------------------ |
350 | 353 |
(...skipping 376 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
727 exports.NullableString = NullableString; | 730 exports.NullableString = NullableString; |
728 exports.PointerTo = PointerTo; | 731 exports.PointerTo = PointerTo; |
729 exports.NullablePointerTo = NullablePointerTo; | 732 exports.NullablePointerTo = NullablePointerTo; |
730 exports.ArrayOf = ArrayOf; | 733 exports.ArrayOf = ArrayOf; |
731 exports.NullableArrayOf = NullableArrayOf; | 734 exports.NullableArrayOf = NullableArrayOf; |
732 exports.PackedBool = PackedBool; | 735 exports.PackedBool = PackedBool; |
733 exports.Handle = Handle; | 736 exports.Handle = Handle; |
734 exports.NullableHandle = NullableHandle; | 737 exports.NullableHandle = NullableHandle; |
735 return exports; | 738 return exports; |
736 }); | 739 }); |
OLD | NEW |