aboutsummaryrefslogtreecommitdiff
path: root/HighLevelGoals.md
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2015-05-04 11:10:20 -0700
committerAlon Zakai <alonzakai@gmail.com>2015-05-04 14:39:06 -0700
commit3ec7cf8fc09a59a0bee66329783dd1ca7df93bc4 (patch)
tree2a255e0f182103fffac7120feb6620b84627d13b /HighLevelGoals.md
parent2d779d9439896e4349ce45e083c7babc56716084 (diff)
downloadnanowasm-design-3ec7cf8fc09a59a0bee66329783dd1ca7df93bc4.tar.gz
mention polyfill limitations
Diffstat (limited to 'HighLevelGoals.md')
-rw-r--r--HighLevelGoals.md8
1 files changed, 6 insertions, 2 deletions
diff --git a/HighLevelGoals.md b/HighLevelGoals.md
index c560891..eb9bbff 100644
--- a/HighLevelGoals.md
+++ b/HighLevelGoals.md
@@ -11,8 +11,12 @@
evolution story of the web; engines should not need multiple, versioned
decoders.
5. Design and implement incrementally:
- * [v.1](V1.md) of the standard will be a Minimum Viable Product with a full, effective [polyfill][] via client-side compilation to [asm.js][] and thus run on existing browsers;
- * subsequent versions will add more [features](EssentialPostV1Features.md) prioritized by feedback.
+ * [v.1](V1.md) of the standard will be a Minimum Viable Product with a [polyfill][] via client-side compilation to [asm.js][] and thus run on existing browsers.
+ In semantic corner cases (such as out-of-bounds and alignment, which evoke Undefined Behavior in C and C++), where asm.js does not have ideal semantics,
+ the default polyfill would diverge for performance reasons (it would also be possible to run a more precise but slower polyfill, but almost all
+ real-world applications are not expected to need to do so).
+ * subsequent versions will add more [features](EssentialPostV1Features.md) prioritized by feedback. Some of those features might not be polyfillable
+ to asm.js in a practical way.
6. Design to execute within and integrate well with the existing web platform:
* execute in the same semantic universe as JavaScript;
* allow synchronous calls to and from JavaScript;