mirror of
https://github.com/gnh1201/welsonjs.git
synced 2025-05-17 23:21:04 +00:00
49 lines
1.2 KiB
JavaScript
49 lines
1.2 KiB
JavaScript
/*!
|
|
{
|
|
"name": "Workers from Data URIs",
|
|
"property": "dataworkers",
|
|
"tags": ["performance", "workers"],
|
|
"builderAliases": ["workers_dataworkers"],
|
|
"notes": [{
|
|
"name": "W3C Spec",
|
|
"href": "https://www.w3.org/TR/workers/"
|
|
}],
|
|
"knownBugs": ["This test may output garbage to console."],
|
|
"authors": ["Jussi Kalliokoski"],
|
|
"async": true
|
|
}
|
|
!*/
|
|
/* DOC
|
|
Detects support for creating Web Workers from Data URIs.
|
|
*/
|
|
define(['Modernizr', 'addTest'], function(Modernizr, addTest) {
|
|
Modernizr.addAsyncTest(function() {
|
|
try {
|
|
var data = 'Modernizr',
|
|
worker = new Worker('data:text/javascript;base64,dGhpcy5vbm1lc3NhZ2U9ZnVuY3Rpb24oZSl7cG9zdE1lc3NhZ2UoZS5kYXRhKX0=');
|
|
|
|
worker.onmessage = function(e) {
|
|
worker.terminate();
|
|
addTest('dataworkers', data === e.data);
|
|
worker = null;
|
|
};
|
|
|
|
// Just in case...
|
|
worker.onerror = function() {
|
|
addTest('dataworkers', false);
|
|
worker = null;
|
|
};
|
|
|
|
setTimeout(function() {
|
|
addTest('dataworkers', false);
|
|
}, 200);
|
|
|
|
worker.postMessage(data);
|
|
} catch (e) {
|
|
setTimeout(function() {
|
|
addTest('dataworkers', false);
|
|
}, 0);
|
|
}
|
|
});
|
|
});
|