| OLD | NEW | 
|---|
| (Empty) |  | 
|  | 1 /* | 
|  | 2  * This file is part of Adblock Plus <http://adblockplus.org/>, | 
|  | 3  * Copyright (C) 2006-2014 Eyeo GmbH | 
|  | 4  * | 
|  | 5  * Adblock Plus is free software: you can redistribute it and/or modify | 
|  | 6  * it under the terms of the GNU General Public License version 3 as | 
|  | 7  * published by the Free Software Foundation. | 
|  | 8  * | 
|  | 9  * Adblock Plus is distributed in the hope that it will be useful, | 
|  | 10  * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
|  | 11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
|  | 12  * GNU General Public License for more details. | 
|  | 13  * | 
|  | 14  * You should have received a copy of the GNU General Public License | 
|  | 15  * along with Adblock Plus.  If not, see <http://www.gnu.org/licenses/>. | 
|  | 16  */ | 
|  | 17 | 
|  | 18 "use strict"; | 
|  | 19 | 
|  | 20 let {uint16} = require("typedObjects/primitiveTypes"); | 
|  | 21 | 
|  | 22 let string = exports.string = uint16.Array({ | 
|  | 23   toString: function() | 
|  | 24   { | 
|  | 25     let buffer = this.getArrayBuffer(); | 
|  | 26     if (!buffer) | 
|  | 27       return ""; | 
|  | 28     let array = new Uint16Array(buffer, this.arrayByteOffset, this.length); | 
|  | 29     return String.fromCharCode.apply(null, array); | 
|  | 30   } | 
|  | 31 }, { | 
|  | 32   constructor: function(value, offset, length) | 
|  | 33   { | 
|  | 34     let type = typeof value; | 
|  | 35     if (type == "number") | 
|  | 36       this.length = value | 0; | 
|  | 37     else if (type == "string" || (value && string.isInstance(value))) | 
|  | 38     { | 
|  | 39       let sourceLength = value.length | 0; | 
|  | 40       offset = Math.min(sourceLength, offset | 0) | 
|  | 41       length = (typeof length == "number" ? length | 0 : sourceLength); | 
|  | 42       length = Math.min(length, sourceLength - offset); | 
|  | 43       this.length = length; | 
|  | 44 | 
|  | 45       if (length > 0) | 
|  | 46       { | 
|  | 47         let dest = new Uint16Array(this.getArrayBuffer(), this.arrayByteOffset, 
    length); | 
|  | 48         if (type == "string") | 
|  | 49         { | 
|  | 50           for (let i = 0; i < length; i++, offset++) | 
|  | 51             dest[i] = value.charCodeAt(offset); | 
|  | 52         } | 
|  | 53         else | 
|  | 54         { | 
|  | 55           let src = new Uint16Array(value.getArrayBuffer(), | 
|  | 56               value.arrayByteOffset + offset * (uint16.referenceLength | 0), | 
|  | 57               length); | 
|  | 58           dest.set(src); | 
|  | 59         } | 
|  | 60       } | 
|  | 61     } | 
|  | 62   } | 
|  | 63 }); | 
| OLD | NEW | 
|---|