- 12 Oct, 2015 1 commit
-
-
littledan authored
Previously, name conflicts between var and let declarations were only made into exceptions if they were visible at parse-time. This patch adds runtime checks so that sloppy-mode direct eval can't introduce conflicting var declarations. The change is implemented by traversing the scope chain when a direct eval introduces a var declaration to look for conflicting let declarations, up to the function boundary. BUG=v8:4454 R=adamk LOG=Y Review URL: https://codereview.chromium.org/1382513003 Cr-Commit-Position: refs/heads/master@{#31211}
-
- 10 Sep, 2015 1 commit
-
-
ishell authored
This fixes the Runtime_DeclareGlobals performance regression caused by a huge number of global var declarations mentioned in chromium:517778. BUG=chromium:517778 LOG=N Review URL: https://codereview.chromium.org/1335633002 Cr-Commit-Position: refs/heads/master@{#30679}
-
- 01 Sep, 2015 2 commits
-
-
mstarzinger authored
This CL us a pure refactoring that makes an empty compilation unit including just "isolate.h" or "contexts.h" but not "objects-inl.h" compile without warnings or errors. This is needed to further reduce the header dependency tangle. R=bmeurer@chromium.org Review URL: https://codereview.chromium.org/1322883002 Cr-Commit-Position: refs/heads/master@{#30500}
-
ishell authored
This CL introduces HPrologue instruction which does the context allocation work and supports deoptimization. Review URL: https://codereview.chromium.org/1317383002 Cr-Commit-Position: refs/heads/master@{#30496}
-
- 27 Aug, 2015 1 commit
-
-
yangguo authored
R=bmeurer@chromium.org, mstarzinger@chromium.org, rmcilroy@chromium.org Review URL: https://codereview.chromium.org/1316943002 Cr-Commit-Position: refs/heads/master@{#30402}
-
- 26 Aug, 2015 1 commit
-
-
yangguo authored
We look up %-functions in the context if not found in the runtime. R=bmeurer@chromium.org, mstarzinger@chromium.org Review URL: https://codereview.chromium.org/1306993003 Cr-Commit-Position: refs/heads/master@{#30379}
-
- 21 Aug, 2015 1 commit
-
-
rossberg authored
This CL is a nightmare! For the utterly irrelevant edge case of a sloppy function with non-simple parameters and a call to direct eval, like here, let x = 1; function f(g = () => x) { var y eval("var x = 2") return g() + x // f() = 3 } we have to do all of the following, on top of the declaration block ("varblock") contexts we already introduce around the body: - Introduce the ability for varblock contexts to have both a ScopeInfo and an extension object (e.g., the body varblock in the example will contain both a static var y and a dynamic var x). No other scope needs that. Since there are no context slots left, a special new struct is introduced that pairs up scope info and extension object. - When declaring lookup slots in the runtime, this new struct is allocated in the case where an extension object has to be added to a block scope (at which point the block's extension slot still contains a plain ScopeInfo). - While at it, introduce some abstraction to access context extension slots in a more controlled manner, in order to keep special-casing to a minimum. - Make sure that even empty varblock contexts do not get optimised away when they contain a sloppy eval, so that they can host the potential extension object. - Extend dynamic search for declaration contexts (used by sloppy direct eval) to recognize varblock contexts. - In the parser, if a function has a sloppy direct eval, introduce an additional varblock scope around each non-simple (desugared) parameter, as required by the spec to contain possible dynamic var bindings. - In the pattern rewriter, add the ability to hoist the named variables the pattern declares to an outer scope. That is required because the actual destructuring has to be evaluated inside the protecting varblock scope, but the bindings that the desugaring introduces are in the outer scope. - ScopeInfos need to save the information whether a block is a varblock, to make sloppy eval calls work correctly that deserialise them as part of the scope chain. - Add the ability to materialize block scopes with extension objects in the debugger. Likewise, enable setting extension variables in block scopes via the debugger interface. - While at it, refactor and unify some respective code in the debugger. Sorry, this CL is large. I could try to split it up, but everything is rather entangled. @mstarzinger: Please review the changes to contexts. @yangguo: Please have a look at the debugger stuff. R=littledan@chromium.org, mstarzinger@chromium.org, yangguo@chromium.org BUG=v8:811,v8:2160 LOG=N Review URL: https://codereview.chromium.org/1292753007 Cr-Commit-Position: refs/heads/master@{#30295}
-
- 14 Aug, 2015 1 commit
-
-
mstarzinger authored
R=yangguo@chromium.org Review URL: https://codereview.chromium.org/1297583002 Cr-Commit-Position: refs/heads/master@{#30172}
-
- 13 Aug, 2015 1 commit
-
-
yangguo authored
Revert of Group lexical context variables for faster look up. (patchset #2 id:20001 of https://codereview.chromium.org/1281883002/ ) Reason for revert: This performance hack is no longer necessary. Original issue's description: > Group lexical context variables for faster look up. > > Currently, looking up a lexical context variable requires looking up > the variable name and then checking its mode. This can be a bottleneck > in Runtime_DeclareGlobals, even when no lexical context variables are > declared. > > R=rossberg@chromium.org > BUG=crbug:517778 > LOG=N > > Committed: https://crrev.com/a45ed17bb6aca02e940f13bbf456d660cccc86ae > Cr-Commit-Position: refs/heads/master@{#30075} TBR=rossberg@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=crbug:517778 Review URL: https://codereview.chromium.org/1290053002 Cr-Commit-Position: refs/heads/master@{#30145}
-
- 07 Aug, 2015 1 commit
-
-
yangguo authored
Currently, looking up a lexical context variable requires looking up the variable name and then checking its mode. This can be a bottleneck in Runtime_DeclareGlobals, even when no lexical context variables are declared. R=rossberg@chromium.org BUG=crbug:517778 LOG=N Review URL: https://codereview.chromium.org/1281883002 Cr-Commit-Position: refs/heads/master@{#30075}
-
- 05 Aug, 2015 1 commit
-
-
mstarzinger authored
R=hpayer@chromium.org Review URL: https://codereview.chromium.org/1256283003 Cr-Commit-Position: refs/heads/master@{#30020}
-
- 31 Jul, 2015 1 commit
-
-
yangguo authored
R=cbruni@chromium.org Review URL: https://codereview.chromium.org/1265923002 Cr-Commit-Position: refs/heads/master@{#29951}
-
- 28 Jul, 2015 1 commit
-
-
bmeurer authored
Don't use different read/write slots for context globals, but let them share the same slot, which reduces the number of initial misses, and also saves some memory for large scripts. R=yangguo@chromium.org Review URL: https://codereview.chromium.org/1258213002 Cr-Commit-Position: refs/heads/master@{#29889}
-
- 23 Jul, 2015 1 commit
-
-
rossberg authored
While at it, remove the notion of INTERNAL variables. @caitp: Took some parts from your CL, since I was blocked on the temp scope bug. R=mstarzinger@chromium.org BUG=512574 LOG=N Review URL: https://codereview.chromium.org/1250513004 Cr-Commit-Position: refs/heads/master@{#29812}
-
- 06 Jul, 2015 1 commit
-
-
ishell authored
Review URL: https://codereview.chromium.org/1218783005 Cr-Commit-Position: refs/heads/master@{#29498}
-
- 01 Jul, 2015 1 commit
-
-
verwaest authored
Checking for native context is faster than checking for global object. Additionally it speeds up the case were it actually is the native context, while not slowing down the alternative case. The bootstrapper only needs to access the native context from the native context, so this avoids the expensive fallback. BUG= Review URL: https://codereview.chromium.org/1214903017 Cr-Commit-Position: refs/heads/master@{#29423}
-
- 01 Jun, 2015 1 commit
-
-
erikcorry authored
When compiling on a laptop I like to concatenate the small test files. This makes a big difference to compile times. These changes make that easier. R=ulan@chromium.org BUG= Review URL: https://codereview.chromium.org/1163803002 Cr-Commit-Position: refs/heads/master@{#28742}
-
- 29 May, 2015 1 commit
-
-
hpayer authored
BUG= Review URL: https://codereview.chromium.org/1158423002 Cr-Commit-Position: refs/heads/master@{#28693}
-
- 27 May, 2015 1 commit
-
-
hpayer authored
BUG= Review URL: https://codereview.chromium.org/1152153004 Cr-Commit-Position: refs/heads/master@{#28658}
-
- 19 May, 2015 2 commits
-
-
wingo authored
This reapplies https://codereview.chromium.org/1136073002, along with the followups: Remove Scope::scope_uses_this_ flag https://codereview.chromium.org/1128963005 and PPC: Resolve references to "this" the same way as normal variables https://codereview.chromium.org/1134073003 R=rossberg@chromium.org LOG=N BUG= Review URL: https://codereview.chromium.org/1136883006 Cr-Commit-Position: refs/heads/master@{#28458} Review URL: https://codereview.chromium.org/1140633003 Cr-Commit-Position: refs/heads/master@{#28484}
-
wingo authored
Revert of Reapply "Resolve references to "this" the same way as normal variables"" (patchset #2 id:20001 of https://codereview.chromium.org/1136883006/) Reason for revert: Something is deserializing "this" declarations as Variable::NORMAL and not Variable::THIS https://codereview.chromium.org/1136123010/ Original issue's description: > Reapply "Resolve references to "this" the same way as normal variables"" > > This reapplies https://codereview.chromium.org/1136073002, along with > the followups: > > Remove Scope::scope_uses_this_ flag > https://codereview.chromium.org/1128963005 > > and > > PPC: Resolve references to "this" the same way as normal variables > https://codereview.chromium.org/1134073003 > > R=yangguo@chromium.org, rossberg@chromium.org > LOG=N > BUG= > > Committed: https://crrev.com/1efc1e4f7a3d30d5225e9d5cb2585cad7cb17099 > Cr-Commit-Position: refs/heads/master@{#28458} TBR=rossberg@chromium.org,yangguo@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG= Review URL: https://codereview.chromium.org/1146733002 Cr-Commit-Position: refs/heads/master@{#28473}
-
- 18 May, 2015 1 commit
-
-
wingo authored
This reapplies https://codereview.chromium.org/1136073002, along with the followups: Remove Scope::scope_uses_this_ flag https://codereview.chromium.org/1128963005 and PPC: Resolve references to "this" the same way as normal variables https://codereview.chromium.org/1134073003 R=yangguo@chromium.org, rossberg@chromium.org LOG=N BUG= Review URL: https://codereview.chromium.org/1136883006 Cr-Commit-Position: refs/heads/master@{#28458}
-
- 13 May, 2015 1 commit
-
-
yangguo authored
... and the following two "PPC: Resolve references to "this" the same way as normal variables" "Remove Scope::scope_uses_this_ flag" R=hablich@chromium.org BUG=chromium:487289 LOG=N Review URL: https://codereview.chromium.org/1134003003 Cr-Commit-Position: refs/heads/master@{#28395}
-
- 11 May, 2015 1 commit
-
-
wingo authored
Make the parser handle references to "this" as unresolved variables, so the same logic as for the rest of function parameters is used for the receiver. Minor additions to the code generation handle copying the receiver to the context, along with the rest of the function parameters. Based on work by Adrian Perez de Castro <aperez@igalia.com>. This is a reapplication of https://codereview.chromium.org/1130733003. R=rossberg@chromium.org BUG=v8:2700 LOG=N Review URL: https://codereview.chromium.org/1136073002 Cr-Commit-Position: refs/heads/master@{#28340}
-
- 07 May, 2015 1 commit
-
-
machenbach authored
Revert of Resolve references to "this" the same way as normal variables (patchset #2 id:20001 of https://codereview.chromium.org/1130733003/) Reason for revert: [Sheriff] Breaks jetstream benchmark with errors like this: >>> Running suite: JetStream/bigfib.cpp >>> Stdout (#1): undefined:93: ReferenceError: this is not defined this['Module'] = Module; ^ ReferenceError: this is not defined at eval (eval at __run (runner.js:13:3), <anonymous>:93:3) at eval (native) at __run (runner.js:13:3) at Object.runSimpleBenchmark (runner.js:44:31) at runner.js:97:13 Original issue's description: > Resolve references to "this" the same way as normal variables > > Make the parser handle references to "this" as unresolved variables, so the > same logic as for the rest of function parameters is used for the receiver. > Minor additions to the code generation handle copying the receiver to the > context, along with the rest of the function parameters. > > Based on work by Adrian Perez de Castro <aperez@igalia.com>. > > BUG=v8:2700 > LOG=N > > Committed: https://crrev.com/06a792b7cc2db33ffce7244c044a9c05afbb6116 > Cr-Commit-Position: refs/heads/master@{#28263} TBR=rossberg@chromium.org,arv@chromium.org,wingo@igalia.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:2700 Review URL: https://codereview.chromium.org/1129723003 Cr-Commit-Position: refs/heads/master@{#28283}
-
- 06 May, 2015 1 commit
-
-
wingo authored
Make the parser handle references to "this" as unresolved variables, so the same logic as for the rest of function parameters is used for the receiver. Minor additions to the code generation handle copying the receiver to the context, along with the rest of the function parameters. Based on work by Adrian Perez de Castro <aperez@igalia.com>. BUG=v8:2700 LOG=N Review URL: https://codereview.chromium.org/1130733003 Cr-Commit-Position: refs/heads/master@{#28263}
-
- 05 May, 2015 2 commits
-
-
wingo authored
Revert of Resolve references to "this" the same way as normal variables (patchset #11 id:240001 of https://codereview.chromium.org/1097283003/) Reason for revert: nosnap failures Original issue's description: > Resolve references to "this" the same way as normal variables > > Make the parser handle references to "this" as unresolved variables, so the > same logic as for the rest of function parameters is used for the receiver. > Minor additions to the code generation handle copying the receiver to the > context, along with the rest of the function parameters. > > Based on work by Adrian Perez de Castro <aperez@igalia.com>. > > BUG= > LOG=N > > Committed: https://crrev.com/18619d355192e2699203d12d9ebb9caea107b693 > Cr-Commit-Position: refs/heads/master@{#28236} TBR=rossberg@chromium.org,mstarzinger@chromium.org,dslomov@chromium.org,adamk@chromium.org,arv@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG= Review URL: https://codereview.chromium.org/1113133006 Cr-Commit-Position: refs/heads/master@{#28238}
-
wingo authored
Make the parser handle references to "this" as unresolved variables, so the same logic as for the rest of function parameters is used for the receiver. Minor additions to the code generation handle copying the receiver to the context, along with the rest of the function parameters. Based on work by Adrian Perez de Castro <aperez@igalia.com>. BUG= LOG=N Review URL: https://codereview.chromium.org/1097283003 Cr-Commit-Position: refs/heads/master@{#28236}
-
- 31 Mar, 2015 1 commit
-
-
arv authored
The spec settled on ToBoolean instead of only using not undefined. BUG=v8:3827 LOG=N R=adamk Review URL: https://codereview.chromium.org/1045113002 Cr-Commit-Position: refs/heads/master@{#27548}
-
- 13 Mar, 2015 1 commit
-
-
dslomov authored
We have been shipping harmony scoping for 2 Chrome releases now (M41 and M42). Time to remove the flag. R=rossberg@chromium.org LOG=Y Review URL: https://codereview.chromium.org/1007783002 Cr-Commit-Position: refs/heads/master@{#27187}
-
- 02 Mar, 2015 2 commits
-
-
Sven Panne authored
BUG=v8:3929 LOG=y R=dcarney@chromium.org Review URL: https://codereview.chromium.org/958053003 Cr-Commit-Position: refs/heads/master@{#26937}
-
Sven Panne authored
BUG=v8:3929 LOG=y R=dcarney@chromium.org Review URL: https://codereview.chromium.org/967243002 Cr-Commit-Position: refs/heads/master@{#26936}
-
- 26 Feb, 2015 1 commit
-
-
adamk authored
This also adds a new VariableMode, IMPORT, which will be used to do appropriate binding for Import-declared Variables. Only named imports are handled for now. "import *" and default import syntaxes have had their TODOs adjusted to match the new code structure. BUG=v8:1569 LOG=n Review URL: https://codereview.chromium.org/948303004 Cr-Commit-Position: refs/heads/master@{#26895}
-
- 17 Feb, 2015 1 commit
-
-
adamk authored
This gets Variable and VariableProxy out of the business of worrying about Interfaces. At the same time, get rid of the notion of "module variables". In ES6, variables that refer to modules will be simply be CONST bindings to module namespace objects. The only change in logic here is one more early error: duplicate export names are now rejected. BUG=v8:1569 LOG=n Review URL: https://codereview.chromium.org/918373002 Cr-Commit-Position: refs/heads/master@{#26708}
-
- 16 Dec, 2014 1 commit
-
-
arv authored
The spec ended up using Get(unscopables, propertyName) and comparing the result to undefined instead of using Has. BUG=v8:3632 LOG=Y R=adamk, dslomov@chromium.org Review URL: https://codereview.chromium.org/807893002 Cr-Commit-Position: refs/heads/master@{#25854}
-
- 13 Nov, 2014 1 commit
-
-
Yang Guo authored
This allows serializing public symbols that are embedded in code. BUG=v8:3689 LOG=N R=rossberg@chromium.org Review URL: https://codereview.chromium.org/722723002 Cr-Commit-Position: refs/heads/master@{#25315}
-
- 12 Nov, 2014 2 commits
-
-
dslomov@chromium.org authored
R=rossberg@chromium.org BUG=v8:3690 LOG=N Review URL: https://codereview.chromium.org/715263003 Cr-Commit-Position: refs/heads/master@{#25303} git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25303 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
dslomov@chromium.org authored
1. Global{Context,Scope}=>Script{Context,Scope} 2. Enable fixed tests 3. Update comments R=rossberg@chromium.org BUG=v8:2198 LOG=N Review URL: https://codereview.chromium.org/716833002 Cr-Commit-Position: refs/heads/master@{#25291} git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25291 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 07 Nov, 2014 1 commit
-
-
dslomov@chromium.org authored
This implements correct semantics for "extensible" top level lexical scope. The entire lexical scope is represented at runtime by GlobalContextTable, reachable from native context and accumulating global contexts from every script loaded into the context. When the new script starts executing, it does the following validation: - checks the GlobalContextTable and global object (non-configurable own) properties against the set of declarations it introduces and reports potential conflicts. - invalidates the conflicting PropertyCells on global object, so that any code depending on them will miss/deopt causing any contextual lookups to be reexecuted under the new bindings - adds the lexical bindings it introduces to the GlobalContextTable Loads and stores for contextual lookups are modified so that they check the GlobalContextTable before looking up properties on global object, thus implementing the shadowing of global object properties by lexical declarations. R=adamk@chromium.org, rossberg@chromium.org Review URL: https://codereview.chromium.org/705663004 Cr-Commit-Position: refs/heads/master@{#25220} git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25220 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 29 Oct, 2014 1 commit
-
-
dslomov@chromium.org authored
R=rossberg@chromium.org Review URL: https://codereview.chromium.org/650663003 Cr-Commit-Position: refs/heads/master@{#24975} git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24975 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-