[Webkit-unassigned] [Bug 163208] [ES6]. Implement Annex B.3.3 function hoisting rules for eval

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Thu Jan 26 10:40:38 PST 2017


--- Comment #28 from Geoffrey Garen <ggaren at apple.com> ---
Comment on attachment 299744
  --> https://bugs.webkit.org/attachment.cgi?id=299744

View in context: https://bugs.webkit.org/attachment.cgi?id=299744&action=review

> Source/JavaScriptCore/ChangeLog:19
> +        op_is_scope_var_type - check if scope with variable is function scope           

Let's call this op_is_var_scope. 

I don't understand your explanation "check if scope with variable is function scope", but since op_resolve_closest_or_var_scope names something a "var scope", I'm inferring that this check applies to the same thing.

> Source/JavaScriptCore/bytecompiler/BytecodeGenerator.h:697
> +        RegisterID* emitResolveOuterVarScope(RegisterID* dst, const Identifier&);

It is bad that this function name does not match the name of the bytecode it emits.

> Source/JavaScriptCore/bytecompiler/BytecodeGenerator.h:698
> +        RegisterID* emitCheckIfScopeIsVarType(RegisterID* dst, RegisterID* scope);

Same comment here.

> Source/JavaScriptCore/bytecompiler/BytecodeGenerator.h:699
> +        RegisterID* emitPutToOuterScope(RegisterID* scope, const Identifier&, RegisterID* value, ResolveMode, InitializationMode);

How is emitPutToOuterScope different from emitPutToScope?

> Source/JavaScriptCore/runtime/CommonSlowPaths.cpp:814
> +SLOW_PATH_DECL(slow_path_resolve_closest_var_scope)

You forgot the word "or" in this name, which changes its meaning significantly.

> Source/JavaScriptCore/runtime/JSScope.cpp:220
> +ALWAYS_INLINE JSObject* JSScope::baseResolve(ExecState* exec, JSScope* scope, const Identifier& ident, FinishResolveEarlierFunctor finishResolveEarlier)

There's no need to use a different function name here. You can call this resolve.

> Source/JavaScriptCore/runtime/JSScope.cpp:256
> +        if (finishResolveEarlier(scope))

I would call this 'accept' or 'predicate'.

You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.webkit.org/pipermail/webkit-unassigned/attachments/20170126/e922e6e0/attachment.html>

More information about the webkit-unassigned mailing list