Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(559)

Side by Side Diff: mojo/public/js/bindings/codec.js

Issue 511443002: Mojo javascript encoder: Empty string encoded as NULL. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add comment about undefined. Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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 });
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698