diff options
Diffstat (limited to 'node_modules/immediate/lib/stateChange.js')
| -rw-r--r-- | node_modules/immediate/lib/stateChange.js | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/node_modules/immediate/lib/stateChange.js b/node_modules/immediate/lib/stateChange.js new file mode 100644 index 00000000..5b2316d7 --- /dev/null +++ b/node_modules/immediate/lib/stateChange.js @@ -0,0 +1,24 @@ +'use strict'; + +exports.test = function () { + return 'document' in global && 'onreadystatechange' in global.document.createElement('script'); +}; + +exports.install = function (handle) { + return function () { + + // Create a <script> element; its readystatechange event will be fired asynchronously once it is inserted + // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called. + var scriptEl = global.document.createElement('script'); + scriptEl.onreadystatechange = function () { + handle(); + + scriptEl.onreadystatechange = null; + scriptEl.parentNode.removeChild(scriptEl); + scriptEl = null; + }; + global.document.documentElement.appendChild(scriptEl); + + return handle; + }; +};
\ No newline at end of file |
