Bug 154516

Summary: [JSC shell] Don't put empty arguments array to VM.
Product: WebKit Reporter: Konstantin Tokarev <annulen>
Component: JavaScriptCoreAssignee: Nobody <webkit-unassigned>
Status: RESOLVED FIXED    
Severity: Normal CC: commit-queue, gskachkov, keith_miller, mark.lam, msaboff, saam, ysuzuki
Priority: P2    
Version: WebKit Local Build   
Hardware: Unspecified   
OS: Unspecified   
Bug Depends on: 154517    
Bug Blocks:    
Attachments:
Description Flags
Patch none

Description Konstantin Tokarev 2016-02-21 11:35:56 PST
This allows arrowfunction-lexical-bind-arguments-top-level test to pass in jsc as well as in browser.
Comment 1 Konstantin Tokarev 2016-02-21 11:40:24 PST
Created attachment 271884 [details]
Patch
Comment 2 Yusuke Suzuki 2016-02-22 03:15:21 PST
Comment on attachment 271884 [details]
Patch

I don't think the current approach is good because we would like to assume that there is an empty `arguments` if the CLI does not pass any arguments.

How about the following idea?
1. adding an Option (see runtime/Options.h), that controls exposing the `arguments`. Now, we can control this behavior with the environment variable JSC_XXX (If you add an option XXX, we can switch it with the environment variable JSC_XXX)
3. adding a ruby function notExposeArguments() in run-jsc-stress-tests, which defines JSC_XXX environment variable before executing the command. (Let's define addEnvVar(X, Y). And calling it as def notExposeArguments addEnvVar("JSC_XXX", "true"))
4. defining the annotation "//@ notExposeArguments" instead of "//@ skip"
Comment 3 Konstantin Tokarev 2016-02-22 04:47:11 PST
(In reply to comment #2)
> Comment on attachment 271884 [details]
> Patch
> 
> I don't think the current approach is good because we would like to assume
> that there is an empty `arguments` if the CLI does not pass any arguments.
> 
> How about the following idea?
> 1. adding an Option (see runtime/Options.h), that controls exposing the
> `arguments`. Now, we can control this behavior with the environment variable
> JSC_XXX (If you add an option XXX, we can switch it with the environment
> variable JSC_XXX)
> 3. adding a ruby function notExposeArguments() in run-jsc-stress-tests,
> which defines JSC_XXX environment variable before executing the command.
> (Let's define addEnvVar(X, Y). And calling it as def notExposeArguments
> addEnvVar("JSC_XXX", "true"))
> 4. defining the annotation "//@ notExposeArguments" instead of "//@ skip"

Problem is that I use run-layout-jsc, which does not support annotations, and my initial motivation for this change was to allow this test to pass without @ skip annotation.

Though run-layout-jsc may unconditionally use this mode.
Comment 4 Geoffrey Garen 2016-02-22 11:37:02 PST
Comment on attachment 271884 [details]
Patch

r=me
Comment 5 WebKit Commit Bot 2016-02-22 11:40:57 PST
Comment on attachment 271884 [details]
Patch

Clearing flags on attachment: 271884

Committed r196948: <http://trac.webkit.org/changeset/196948>
Comment 6 WebKit Commit Bot 2016-02-22 11:41:02 PST
All reviewed patches have been landed.  Closing bug.