<commit_before># undelay! _(Ándale!)_
by <NAME>

version 0.0.2
(5/25/12)

## DESCRIPTION

Patch `window.setTimeout` for zero-second delayed callbacks.

Undelay works transparently in any browser environment that supports [window.postMessage](https://developer.mozilla.org/en/DOM/window.postMessage) and [message events](http://help.dottoro.com/ljjqtjsj.php). Just include this script, to improve UI performance and responsiveness in your web applications.

Delays other than zero seconds are routed to the native [window.setTimeout](https://developer.mozilla.org/en/DOM/window.setTimeout) method. Undelay also patches [window.clearTimeout](https://developer.mozilla.org/en/DOM/window.setTimeout) to work with the numeric timeout identifiers.

Read David Baron's explanation and case for patching `window.setTimeout`, at [http://dbaron.org/log/20100309-faster-timeouts](http://dbaron.org/log/20100309-faster-timeouts).


#### DEVELOPER NOTES

 - The undelay script is a self-executing routine that does not add to the global namespace.
 - Undelay supports passing additional parameters as callback arguments.
 - The minified version is only 0.5K (gzipped)!
 - Undelay dispatches and listens to "message" events, wherein the `origin` parameter matches the host page's protocol and hostname. The exception to this rule is for local files; `origin` is set to "*".
 - Currently, there is no API for disabling undelay Instead, simply remove the script from your web page.


## FILES

* src/ - Directory containing the source code
* README.md - This readme file
* LICENSE - The legal terms and conditions under which this software may be used
* undelay-min.js - The undelay codebase, minified for production

## LICENSE

Undelay is available under the terms of the [MIT-License](http://en.wikipedia.org/wiki/MIT_License#License_terms).

Copyright 2012, <NAME><commit_msg>Updated feature descriptions, clarified implementation details<commit_after># undelay! _(Ándale!)_
by <NAME>

version 0.0.3
(5/26/12)

## DESCRIPTION

Patches `window.setTimeout` such that zero and one second delayed callbacks execute faster.

Undelay works transparently in any browser environment that supports [window.postMessage](https://developer.mozilla.org/en/DOM/window.postMessage) and [message events](http://help.dottoro.com/ljjqtjsj.php). Just include this script, to improve UI performance and responsiveness in your web applications.

Delays above 1 millisecond are routed to the native [window.setTimeout](https://developer.mozilla.org/en/DOM/window.setTimeout) method. Undelay also patches [window.clearTimeout](https://developer.mozilla.org/en/DOM/window.setTimeout) to work with the numeric timeout identifiers.

Read David Baron's explanation and case for patching `window.setTimeout`, at [http://dbaron.org/log/20100309-faster-timeouts](http://dbaron.org/log/20100309-faster-timeouts).


#### IMPLEMENTATION NOTES

 - Undelay is a self-executing routine that does not add to the global namespace.
 - The minified version is only 0.5K (gzipped)!
 - Undelay supports passing additional parameters as callback arguments, and does not fork this behavior for Internet Explorer (which doesn't support passing callback arguments).
 - Accelerated callbacks do not have a default time-delay argument, as with FireFox's native implementation.
 - Undelay listens to message events, originating from the host page's protocol and domain. The exception to this rule is for local files, wherein the message origin is "*" (i.e., any window). The message data is also validated.
 - Currently, there is no API for disabling undelay. Instead, simply remove the script from your web page.


## FILES

* src/ - Directory containing the source code
* README.md - This readme file
* LICENSE - The legal terms and conditions under which this software may be used
* undelay-min.js - The undelay codebase, minified for production

## LICENSE

Undelay is available under the terms of the [MIT-License](http://en.wikipedia.org/wiki/MIT_License#License_terms).

Copyright 2012, <NAME>
{'fraction_non_alphanumeric': 0.08863580094082693, 'fraction_numerical': 0.015102748205001237, 'mean_word_length': 4.763195435092725, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 7, 'https://': 6, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1476250', 'n_tokens_mistral': 1178, 'n_tokens_neox': 1081, 'n_words': 441}