michael@0: importScripts('utils_bug743615.js'); michael@0: michael@0: self.onmessage = function onMessage(evt) { michael@0: // Check the pattern that was sent. michael@0: var imageData = evt.data.imageData; michael@0: var pattern = evt.data.pattern; michael@0: var statusMessage = checkPattern(imageData, pattern) michael@0: ? 'PASS' : 'Got corrupt typed array in worker'; michael@0: michael@0: // Check against the interface object. michael@0: if (!(imageData instanceof ImageData)) michael@0: statusMessage += ", Bad interface object in worker"; michael@0: michael@0: // Check the getters. michael@0: if (imageData.width * imageData.height != imageData.data.length / 4) { michael@0: statusMessage += ", Bad ImageData getters in worker: " michael@0: statusMessage += [imageData.width, imageData.height].join(', '); michael@0: } michael@0: michael@0: // Make sure that writing to .data is a no-op when not in strict mode. michael@0: var origData = imageData.data; michael@0: var threw = false; michael@0: try { michael@0: imageData.data = []; michael@0: imageData.width = 2; michael@0: imageData.height = 2; michael@0: } catch(e) { threw = true; } michael@0: if (threw || imageData.data !== origData) michael@0: statusMessage = statusMessage + ", Should silently ignore sets"; michael@0: michael@0: michael@0: michael@0: // Send back a new pattern. michael@0: pattern = makePattern(imageData.data.length, 99, 2); michael@0: setPattern(imageData, pattern); michael@0: self.postMessage({ statusMessage: statusMessage, imageData: imageData, michael@0: pattern: pattern }); michael@0: }