-
Notifications
You must be signed in to change notification settings - Fork 645
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
Strictness, caller
and arguments
spec compliancy
#1582
Comments
Hi, I am not exactly sure what you are asking. If there are specific bugs, please file issues for them (or submit PRs). We will address them, except the ones that we have explicitly said we do not support, though nothing is set in stone. For example, we have a PR from Snapchat adding support for Admittedly, some issues are not high priority, like allowing assignment to BTW, the latest most compliant implementation is in the
Spec compliance is important to us, but due to internal constraints and priorities, we have taken a pragmatic approach. We separate compliance into different axis:
Clearly, among these 4) is by far the most important and we try to always fix these urgently. The rest of the list has to compete with other priorities. We are not a self-governing organization, we are employees of a corporation... We have recently made great strides with 1, 6 and somewhat 5. We added native support for block scoping, TDZ, classes, and more is coming. We have improved sloppy mode identifier resolution in corner cases and, again, more is coming (including #1547). For 6) we have added a flag to move some compiler time errors to runtime. |
I think endojs/endo#2655 and tc39/test262#4340 provide good summaries:
In short, |
For The ES5.1 spec on function creation (step 19 b,c) says that EDIT: As noted above, this is fixed for strict mode in Static Hermes ( |
@gibson042 As @avp mentioned, this has already been fixed in the Static Hermes branch. That is the branch being developed and supported. But I am curious - why do |
The biggest problem is their non-configurability... Endo tries to ensure uniformity, and not being able to delete these properties interferes with that. |
Fixed in bb90b33. I am applying the label |
@tmikov Thanks! |
thanks ^^ tested the change our side here |
Bug Description
When repairing Hermes intrinsics via Secure EcmaScript to reach spec compliancy
removeUnpermittedIntrinsics
on Hermes endojs/endo#2655we detect non-standard/deprecated
.caller
and.arguments
properties on several intrinsicsso have an expedient temp fix (proposed) to account for these
but would love to understand what Hermes is trying to do and the path towards spec-compliancy cc @tmikov @erights
some more details
Function.caller
support Hermes workaround, WIPremoveUnpermittedIntrinsics
on Hermes endojs/endo#2655 (comment)https://github.com/facebook/hermes/blob/main/doc/Features.md#miscellaneous-incompatibilities
ref: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Strict_mode#no_syncing_between_parameters_and_arguments_indices
hermes
hermes/lib/VM/JSLib/GlobalObject.cpp
Lines 246 to 258 in 95b2b52
hermes/test/hermes/function-non-strict.js
Lines 18 to 33 in 95b2b52
static_h
hermes/lib/VM/JSLib/GlobalObject.cpp
Lines 247 to 259 in 696b483
hermes/test/hermes/function-non-strict.js
Lines 19 to 41 in 696b483
The text was updated successfully, but these errors were encountered: