| (function(CanvasKit){ | |
| CanvasKit._extraInitializations = CanvasKit._extraInitializations || []; | |
| CanvasKit._extraInitializations.push(function() { | |
| function Int32ArrayToBidiRegions(int32Array) { | |
| if (!int32Array || !int32Array.length) { | |
| return []; | |
| } | |
| let ret = []; | |
| for (let i = 0; i < int32Array.length; i+=3) { | |
| let start = int32Array[i]; | |
| let end = int32Array[i+1]; | |
| let level = int32Array[i+2]; | |
| ret.push({'start': start, 'end': end, 'level': level}); | |
| } | |
| return ret; | |
| } | |
| function Int32ArrayToBidiIndexes(int32Array) { | |
| if (!int32Array || !int32Array.length) { | |
| return []; | |
| } | |
| let ret = []; | |
| for (let i = 0; i < int32Array.length; i+=1) { | |
| let index = int32Array[i]; | |
| ret.push({'index': index}); | |
| } | |
| return ret; | |
| } | |
| function Int16ArrayToCodeUnitsFlags(int16Array) { | |
| if (!int16Array || !int16Array.length) { | |
| return []; | |
| } | |
| let ret = []; | |
| for (let i = 0; i < int16Array.length; i+=1) { | |
| let index = int16Array[i]; | |
| ret.push({'flags': index}); | |
| } | |
| return ret; | |
| } | |
| CanvasKit.Bidi.getBidiRegions = function(text, textDirection) { | |
| let dir = textDirection === CanvasKit.TextDirection.LTR ? 1 : 0; | |
| /** | |
| * @type {Int32Array} | |
| */ | |
| let int32Array = CanvasKit.Bidi._getBidiRegions(text, dir); | |
| return Int32ArrayToBidiRegions(int32Array); | |
| } | |
| CanvasKit.Bidi.reorderVisual = function(visualRuns) { | |
| /** | |
| * @type {Uint8Array} | |
| */ | |
| let vPtr = copy1dArray(visualRuns, 'HEAPU8'); | |
| /** | |
| * @type {Int32Array} | |
| */ | |
| let int32Array = CanvasKit.Bidi._reorderVisual(vPtr, visualRuns && visualRuns.length || 0); | |
| freeArraysThatAreNotMallocedByUsers(vPtr, visualRuns); | |
| return Int32ArrayToBidiIndexes(int32Array); | |
| } | |
| CanvasKit.CodeUnits.compute = function(text) { | |
| /** | |
| * @type {Uint16Array} | |
| */ | |
| let uint16Array = CanvasKit.CodeUnits._compute(text); | |
| return Int16ArrayToCodeUnitsFlags(uint16Array); | |
| } | |
| if (!CanvasKit['TextDirection']) { | |
| CanvasKit['TextDirection'] = { | |
| LTR: { value: 1 }, | |
| RTL: { value: 0 }, | |
| } | |
| } | |
| }); | |
| }(Module)); // When this file is loaded in, the high level object is "Module"; |