Revision: 4283
Author: [email protected]
Date: Fri Sep 24 19:57:05 2010
Log: Edited wiki page DifferencesBetweenES5Over3AndES5 through web user
interface.
http://code.google.com/p/google-caja/source/detail?r=4283
Modified:
/wiki/DifferencesBetweenES5Over3AndES5.wiki
=======================================
--- /wiki/DifferencesBetweenES5Over3AndES5.wiki Mon Aug 30 15:03:48 2010
+++ /wiki/DifferencesBetweenES5Over3AndES5.wiki Fri Sep 24 19:57:05 2010
@@ -2,11 +2,11 @@
= Introduction =
-We're working on an implementation of ES5 that runs on ES3 browsers; we
anticipate that this implementation, which we call "ES5/3", will take the
place of Valija. We anticipate ES5/3 will run around 15 times faster than
Valija, i.e., with roughly 20% overhead compared to uncajoled ES3 code;
though it is still too early to measure this. SES5/3, the Cajita
replacement, is exactly the same with the exception of freezing all the
primordials.
+ES5/3 is an implementation of ES5 that runs on ES3 browsers. ES5/3 will
take the place of Valija and we will deprecate and eventually end-of-life
Valija. SES5/3, the Cajita replacement, is exactly the same with the
exception of freezing all the primordials.
SES5/3 will upwards compatible from Cajita. ES5/3 will be upwards
compatible from Valija, Cajita, and SES5/3.
-There will be some differences between ES5/3 and ES5, detailed below. For
code written with these in mind, ES5 will effectively be upwards compatible
from ES5/3, etc...
+There will be some differences between ES5/3 and ES5, detailed below. For
code written with these in mind, ES5 will effectively be upwards compatible
from ES5/3.
= Differences between ES5/3 and ES5 =
@@ -18,6 +18,7 @@
* Property names may not end in two underscores
* Does not support creating objects with null prototype
* In a method call, the getter is called after arguments are evaluated
([http://code.google.com/p/v8/issues/detail?id=691 V8 has the same issue])
+ * Whereas ES5/strict specifies no `this` coercion, ES5/3 will coerce
primitive values to wrappers (as ES3 and ES5/non-strict do), and will
coerce `null` and the global object to `undefined`.
* Numerically named properties and `'length'`
* Does not support FF2
* All numeric own properties of the same object share one property
descriptor
@@ -33,12 +34,11 @@
= Differences between ES5/3 and selected ES-Harmony features =
* Proxies
- * Proxies can only inherit, whether directly or indirectly, from
non-extensible objects or from other proxies.
* Proxies can't trap numeric properties or 'length'
* "Leaky" ephemeron tables
* Membranes hold onto all references that they wrap until the membrane
is revoked
-= Draft Sources for the ES5/3 additions to Caja =
+= Sources for the ES5/3 additions to Caja =
[http://code.google.com/p/google-caja/source/browse/trunk/src/com/google/caja/es53.js
es53.js],