- 01 Feb, 2016 1 commit
-
-
yangguo authored
In the debugger we are interested in getting the context for the current frame, which is usually a function context. To do that, we used to call Context::declaration_context, which may also return a block context. This is wrong and can lead to crashes. Instead, we now use a newly introduced Context::closure_context, which skips block contexts. This works fine for the debugger, since we have other means to find and materialize block contexts. R=rossberg@chromium.org BUG=chromium:582051 LOG=N Review URL: https://codereview.chromium.org/1648263002 Cr-Commit-Position: refs/heads/master@{#33627}
-
- 19 Jan, 2016 1 commit
-
-
nikolaos authored
After 1564083002, spread expressions are desugared and should not survive in the AST after parsing. This patch removes dead code related to this. It also eliminates the kSpread bailout reason and the concat_iterable_to_array_builtin. R=bmeurer@chromium.org BUG= Review URL: https://codereview.chromium.org/1592713002 Cr-Commit-Position: refs/heads/master@{#33385}
-
- 10 Dec, 2015 1 commit
-
-
jkummerow authored
BUG=v8:1543 LOG=n Review URL: https://codereview.chromium.org/1510913005 Cr-Commit-Position: refs/heads/master@{#32756}
-
- 30 Nov, 2015 2 commits
-
-
bmeurer authored
This way we avoid the %_IsSmi magic that is required in TurboFan to (efficiently) check abitrary context slots for smi 0. Checking against "the hole" is common in the AstGraphBuilder and "the hole" is also used to mark other context slots as not initialized. R=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/1484723003 Cr-Commit-Position: refs/heads/master@{#32407}
-
neis authored
R=bmeurer@chromium.org BUG= Review URL: https://codereview.chromium.org/1476403004 Cr-Commit-Position: refs/heads/master@{#32398}
-
- 27 Nov, 2015 3 commits
-
-
bmeurer authored
Previously all contexts had a link to the global object, but what is required in most cases (except for the global load, store and delete case) is the native context. This also removes the second dummy global object that was still linked to every native context. We will add a different mechanism to ensure that builtins do not pollute the actual global object during bootstrapping. Drive-by-fix: Unify some MacroAssembler magic and drop obsolete stuff. CQ_INCLUDE_TRYBOTS=tryserver.v8:v8_linux_nosnap_rel R=yangguo@chromium.org,mstarzinger@chromium.org Committed: https://crrev.com/d290f204938295bfecc5c8e645ccfcff6e80ddb8 Cr-Commit-Position: refs/heads/master@{#32375} Review URL: https://codereview.chromium.org/1480003002 Cr-Commit-Position: refs/heads/master@{#32381}
-
machenbach authored
Revert of [runtime] Replace global object link with native context link in all contexts. (patchset #3 id:40001 of https://codereview.chromium.org/1480003002/ ) Reason for revert: [Sheriff] Breaks: https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20nosnap/builds/5472 Original issue's description: > [runtime] Replace global object link with native context link in all contexts. > > Previously all contexts had a link to the global object, but what is > required in most cases (except for the global load, store and delete > case) is the native context. > > This also removes the second dummy global object that was still linked > to every native context. We will add a different mechanism to ensure > that builtins do not pollute the actual global object during > bootstrapping. > > Drive-by-fix: Unify some MacroAssembler magic and drop obsolete stuff. > > R=yangguo@chromium.org > > Committed: https://crrev.com/d290f204938295bfecc5c8e645ccfcff6e80ddb8 > Cr-Commit-Position: refs/heads/master@{#32375} TBR=yangguo@chromium.org,mstarzinger@chromium.org,bmeurer@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1478303002 Cr-Commit-Position: refs/heads/master@{#32377}
-
bmeurer authored
Previously all contexts had a link to the global object, but what is required in most cases (except for the global load, store and delete case) is the native context. This also removes the second dummy global object that was still linked to every native context. We will add a different mechanism to ensure that builtins do not pollute the actual global object during bootstrapping. Drive-by-fix: Unify some MacroAssembler magic and drop obsolete stuff. R=yangguo@chromium.org Review URL: https://codereview.chromium.org/1480003002 Cr-Commit-Position: refs/heads/master@{#32375}
-
- 26 Nov, 2015 1 commit
-
-
rossberg authored
Moves all files related to AST and scopes into ast/, and all files related to scanner & parser to parsing/. Also eliminates a couple of spurious dependencies. R=mstarzinger@chromium.org BUG= Review URL: https://codereview.chromium.org/1481613002 Cr-Commit-Position: refs/heads/master@{#32351}
-
- 06 Nov, 2015 1 commit
-
-
hablich authored
This will be used as a data source for an UMA histogram. LOG=N BUG=chromium:546603 R=jochen@chromium.org,yangguo@chromium.org Review URL: https://codereview.chromium.org/1413503007 Cr-Commit-Position: refs/heads/master@{#31851}
-
- 02 Nov, 2015 2 commits
-
-
yangguo authored
R=jkummerow@chromium.org, mstarzinger@chromium.org Review URL: https://codereview.chromium.org/1406113007 Cr-Commit-Position: refs/heads/master@{#31714}
-
yangguo authored
R=verwaest@chromium.org Review URL: https://codereview.chromium.org/1424703005 Cr-Commit-Position: refs/heads/master@{#31711}
-
- 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}
-