1// Adds compile-time JS functions to augment the DebuggerView interface. 2(function(DebuggerView){ 3 4 DebuggerView.SkpFilePlayer = function(file_arraybuf) { 5 // Create the instance of SkpDebugPlayer 6 var player = new this.SkpDebugPlayer(); 7 // Convert file (an ArrayBuffer) into a typedarray, 8 // otherwise fileMem.set() below seems to have no effect. 9 var fileContents = new Uint8Array(file_arraybuf); 10 var size = fileContents.byteLength; 11 // Allocate memory in wasm to hold the skp file selected by the user. 12 var fileMemPtr = this._malloc(size); 13 // Make a typed array view of that memory 14 var fileMem = new Uint8Array(DebuggerView.HEAPU8.buffer, fileMemPtr, size); 15 // Copy the file into it 16 fileMem.set(fileContents); 17 // Hand off pointer to wasm 18 var error = player.loadSkp(fileMemPtr, size); 19 // Free the memory that was used to hold the file, since it is now represented as an SkPicture 20 this._free(fileMemPtr) 21 return { 22 'error': error, 23 'player': player 24 }; 25 } 26 27}(Module)); // When this file is loaded in, the high level object is "Module"; 28