-
-
Notifications
You must be signed in to change notification settings - Fork 411
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implement runtime limits for recursion #2904
Conversation
Test262 conformance changes
Fixed tests (1):
|
Codecov Report
@@ Coverage Diff @@
## main #2904 +/- ##
==========================================
- Coverage 51.88% 51.82% -0.06%
==========================================
Files 431 431
Lines 43230 43302 +72
==========================================
+ Hits 22429 22443 +14
- Misses 20801 20859 +58
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It looks great to me! I'm only missing the test and example, as you mention :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks great!
This Pull Request fixes/closes #809 and fixes/closes #1307 and related to #2350 .
It changes the following:
$boa.limits
module for debuggingLike #2857 the recursion limit can be controlled through the
.runtime_limits()
:Or using the
$boa
object for debugging:Tried different values
400
seemed to not cause a stack-overflow, while500
did, so I set it to400
. This is in debug mode, In release we could probably set it to a higher value.Removed
"tail-call-optimization"
feature from test262 ignore list, because it no longer causes a stack-overflow :)Currently the way we do calls requires us to recurse in rust, this is not the ideal approach, we need to refactor it! That's why we are limited by our native stack size instead of heap size. This issue does not prevent this PR from being merged though.
I'll work on refactoring the way we call functions in a separate PR :)