Revision: 3864
Author: jasvir
Date: Mon Nov 23 11:54:16 2009
Log: Edited wiki page through web user interface.
http://code.google.com/p/google-caja/source/detail?r=3864

Modified:
 /wiki/SourcesOfNonDeterminism.wiki

=======================================
--- /wiki/SourcesOfNonDeterminism.wiki  Sat Nov 21 20:10:34 2009
+++ /wiki/SourcesOfNonDeterminism.wiki  Mon Nov 23 11:54:16 2009
@@ -12,18 +12,17 @@
 == Sources of Non-Determinism in JavaScript ==

   * Enumeration order of `for..in` loops
-  * Semantics of modifying a list that is being iterated over
* Several aspects of the behaviour of `Array.sort` (stability of the sort, ordering of calls to accessors and `valueOf`, behaviour when the comparison function is inconsistent, and a few other edge cases -- see ES5 section 15.4.4.11)
-  * Order of callbacks queued using `setTimeout`
- * Some information about running time of a piece of code inferable from `setTimeout` * Implementation-defined behaviour of base !JavaScript library functions (for example, `String.prototype.localeCompare`; any function called with extra arguments). + * Non-deterministic exceptions like out of memory and stack overflow are catchable

 == Sources of Non-determinism in Tamed Libraries ==

When taming libraries, the author of taming must be careful that the tamed code does not accidentally violate the security properties of the cajoled program using it. Determinism is a particularly easy property to violate in taming.

 == Sources of Non-determinism in Domita ==
-
+  * Order of callbacks queued using `setTimeout`
+ * Some information about running time of a piece of code inferable from `setTimeout`
   * Fetching an external resource identified by a URL is not deterministic
     * This can be addressed using a url policy which caches agressively
* Parse tree generated by setting `innerHTML` varies depending on the browser

Reply via email to