Chromium Code Reviews| 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/codec", [ | 5 define("mojo/public/js/codec", [ |
| 6 "mojo/public/js/unicode", | 6 "mojo/public/js/unicode", |
| 7 "mojo/public/js/buffer", | 7 "mojo/public/js/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"; |
| 11 var kErrorArray = "Passing non-array-like to array"; | |
| 11 | 12 |
| 12 // Memory ------------------------------------------------------------------- | 13 // Memory ------------------------------------------------------------------- |
| 13 | 14 |
| 14 var kAlignment = 8; | 15 var kAlignment = 8; |
| 15 | 16 |
| 16 function align(size) { | 17 function align(size) { |
| 17 return size + (kAlignment - (size % kAlignment)) % kAlignment; | 18 return size + (kAlignment - (size % kAlignment)) % kAlignment; |
| 18 } | 19 } |
| 19 | 20 |
| 20 function isAligned(offset) { | 21 function isAligned(offset) { |
| (...skipping 324 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 345 var encoder = this.createAndEncodeEncoder(cls.encodedSize); | 346 var encoder = this.createAndEncodeEncoder(cls.encodedSize); |
| 346 cls.encode(encoder, val); | 347 cls.encode(encoder, val); |
| 347 }; | 348 }; |
| 348 | 349 |
| 349 Encoder.prototype.encodeArrayPointer = function(cls, val) { | 350 Encoder.prototype.encodeArrayPointer = function(cls, val) { |
| 350 if (val == null) { | 351 if (val == null) { |
| 351 // Also handles undefined, since undefined == null. | 352 // Also handles undefined, since undefined == null. |
| 352 this.encodePointer(val); | 353 this.encodePointer(val); |
| 353 return; | 354 return; |
| 354 } | 355 } |
| 356 if (val.length === undefined) { | |
| 357 throw new Error(kErrorArray); | |
|
hansmuller
2014/12/15 16:56:17
I suppose another indication that val isn't an arr
| |
| 358 } | |
| 355 var numberOfElements = val.length; | 359 var numberOfElements = val.length; |
| 356 var encodedSize = kArrayHeaderSize + ((cls === PackedBool) ? | 360 var encodedSize = kArrayHeaderSize + ((cls === PackedBool) ? |
| 357 Math.ceil(numberOfElements / 8) : cls.encodedSize * numberOfElements); | 361 Math.ceil(numberOfElements / 8) : cls.encodedSize * numberOfElements); |
| 358 var encoder = this.createAndEncodeEncoder(encodedSize); | 362 var encoder = this.createAndEncodeEncoder(encodedSize); |
| 359 encoder.encodeArray(cls, val, numberOfElements, encodedSize); | 363 encoder.encodeArray(cls, val, numberOfElements, encodedSize); |
| 360 }; | 364 }; |
| 361 | 365 |
| 362 Encoder.prototype.encodeStringPointer = function(val) { | 366 Encoder.prototype.encodeStringPointer = function(val) { |
| 363 if (val == null) { | 367 if (val == null) { |
| 364 // Also handles undefined, since undefined == null. | 368 // Also handles undefined, since undefined == null. |
| (...skipping 441 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 806 exports.NullablePointerTo = NullablePointerTo; | 810 exports.NullablePointerTo = NullablePointerTo; |
| 807 exports.ArrayOf = ArrayOf; | 811 exports.ArrayOf = ArrayOf; |
| 808 exports.NullableArrayOf = NullableArrayOf; | 812 exports.NullableArrayOf = NullableArrayOf; |
| 809 exports.PackedBool = PackedBool; | 813 exports.PackedBool = PackedBool; |
| 810 exports.Handle = Handle; | 814 exports.Handle = Handle; |
| 811 exports.NullableHandle = NullableHandle; | 815 exports.NullableHandle = NullableHandle; |
| 812 exports.MapOf = MapOf; | 816 exports.MapOf = MapOf; |
| 813 exports.NullableMapOf = NullableMapOf; | 817 exports.NullableMapOf = NullableMapOf; |
| 814 return exports; | 818 return exports; |
| 815 }); | 819 }); |
| OLD | NEW |