summaryrefslogtreecommitdiffstats
path: root/js
diff options
context:
space:
mode:
Diffstat (limited to 'js')
-rw-r--r--js/src/jsscript.h9
1 files changed, 8 insertions, 1 deletions
diff --git a/js/src/jsscript.h b/js/src/jsscript.h
index d8d28ebeb..dfe0e486e 100644
--- a/js/src/jsscript.h
+++ b/js/src/jsscript.h
@@ -1443,7 +1443,14 @@ class JSScript : public js::gc::TenuredCell
return res;
}
bool canIonCompile() const {
- return ion != ION_DISABLED_SCRIPT;
+ // Exclude function scopes from Ion compilation.
+ // This is necessary to work around an issue with module scripts causing crashes
+ // with the function stack in Ion if module code is declared in-line.
+ // See Issue #1624
+ // XXX: Perhaps we can further fine-grain select which types of function scope
+ // we have to exclude?
+ return (ion != ION_DISABLED_SCRIPT &&
+ !bodyScope()->is<js::FunctionScope>());
}
bool isIonCompilingOffThread() const {
return ion == ION_COMPILING_SCRIPT;