| 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 /** | 5 /** |
| 6 * Defines functions for translating between JavaScript strings and UTF8 strings | 6 * Defines functions for translating between JavaScript strings and UTF8 strings |
| 7 * stored in ArrayBuffers. There is much room for optimization in this code if | 7 * stored in ArrayBuffers. There is much room for optimization in this code if |
| 8 * it proves necessary. | 8 * it proves necessary. |
| 9 */ | 9 */ |
| 10 define("mojo/public/js/unicode", function() { | 10 (function() { |
| 11 var internal = mojoBindings.internal; |
| 12 |
| 11 /** | 13 /** |
| 12 * Decodes the UTF8 string from the given buffer. | 14 * Decodes the UTF8 string from the given buffer. |
| 13 * @param {ArrayBufferView} buffer The buffer containing UTF8 string data. | 15 * @param {ArrayBufferView} buffer The buffer containing UTF8 string data. |
| 14 * @return {string} The corresponding JavaScript string. | 16 * @return {string} The corresponding JavaScript string. |
| 15 */ | 17 */ |
| 16 function decodeUtf8String(buffer) { | 18 function decodeUtf8String(buffer) { |
| 17 return decodeURIComponent(escape(String.fromCharCode.apply(null, buffer))); | 19 return decodeURIComponent(escape(String.fromCharCode.apply(null, buffer))); |
| 18 } | 20 } |
| 19 | 21 |
| 20 /** | 22 /** |
| (...skipping 15 matching lines...) Expand all Loading... |
| 36 | 38 |
| 37 /** | 39 /** |
| 38 * Returns the number of bytes that a UTF8 encoding of the JavaScript string | 40 * Returns the number of bytes that a UTF8 encoding of the JavaScript string |
| 39 * |str| would occupy. | 41 * |str| would occupy. |
| 40 */ | 42 */ |
| 41 function utf8Length(str) { | 43 function utf8Length(str) { |
| 42 var utf8String = unescape(encodeURIComponent(str)); | 44 var utf8String = unescape(encodeURIComponent(str)); |
| 43 return utf8String.length; | 45 return utf8String.length; |
| 44 } | 46 } |
| 45 | 47 |
| 46 var exports = {}; | 48 internal.decodeUtf8String = decodeUtf8String; |
| 47 exports.decodeUtf8String = decodeUtf8String; | 49 internal.encodeUtf8String = encodeUtf8String; |
| 48 exports.encodeUtf8String = encodeUtf8String; | 50 internal.utf8Length = utf8Length; |
| 49 exports.utf8Length = utf8Length; | 51 })(); |
| 50 return exports; | |
| 51 }); | |
| OLD | NEW |