- 01 Sep, 2015 2 commits
-
-
yurys authored
BUG=chromium:520702 LOG=N Review URL: https://codereview.chromium.org/1316213005 Cr-Commit-Position: refs/heads/master@{#30517}
-
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}
-
- 31 Aug, 2015 3 commits
-
-
yurys authored
The interrupts are already postponed in message handlers [1]. This CL aligns debug event listener (the mechanism that is actually used in Chrome DevTools) implementation with that. Handling interrupts on events like v8::AfterCompile leads to crashes like the one in the lined bug. This happens because in the interrupt handler we may change debugger state. [1] https://codereview.chromium.org/309533009/diff/40001/src/debug.cc BUG=chromium:520702 LOG=Y Review URL: https://codereview.chromium.org/1321263002 Cr-Commit-Position: refs/heads/master@{#30488}
-
hablich authored
Revert of [heap] More flag cleanup. (patchset #8 id:140001 of https://codereview.chromium.org/1314863003/ ) Reason for revert: Breaks http://build.chromium.org/p/client.v8/builders/V8%20Arm%20-%20debug%20-%202/builds/2372 Original issue's description: > [heap] GC flag cleanup/restructuring. > > * GC's flags are now proper flags and not int. > * Callback flags are not threaded through but only set once like gc flags > * Callers of methods that trigger GCs need to pass a reason when not using > the default parameters. > > Furthermore, each GC invocation can be passed the GC and GCCallback flags. We > usually override the currently set flags upon finishing a GC cylce, but are able > to restore the previously set if desired. This is useful for explicitely > triggered scavenges or external requests that interrupt the current behaviour. > > BUG= > > Committed: https://crrev.com/f4f3b431b9ce0778d926acf03c0d36dae5c0cba4 > Cr-Commit-Position: refs/heads/master@{#30457} TBR=hpayer@chromium.org,yangguo@chromium.org,mlippautz@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG= Review URL: https://codereview.chromium.org/1303393004 Cr-Commit-Position: refs/heads/master@{#30463}
-
mlippautz authored
* GC's flags are now proper flags and not int. * Callback flags are not threaded through but only set once like gc flags * Callers of methods that trigger GCs need to pass a reason when not using the default parameters. Furthermore, each GC invocation can be passed the GC and GCCallback flags. We usually override the currently set flags upon finishing a GC cylce, but are able to restore the previously set if desired. This is useful for explicitely triggered scavenges or external requests that interrupt the current behaviour. BUG= Review URL: https://codereview.chromium.org/1314863003 Cr-Commit-Position: refs/heads/master@{#30457}
-
- 28 Aug, 2015 3 commits
-
-
yangguo authored
R=cbruni@chromium.org,mlippautz@chromium.org Review URL: https://codereview.chromium.org/1318043002 Cr-Commit-Position: refs/heads/master@{#30438}
-
bmeurer authored
This adds a %ToName runtime entry that uses the previously introduced Object::ToName, which is based on the new Object::ToPrimitive method. Also removes the need to expose ToName in various way via the builtins and/or context. Drive-by-fix: Let %HasProperty do the ToName conversion implicitly as required. BUG=v8:4307 LOG=n Review URL: https://codereview.chromium.org/1319133002 Cr-Commit-Position: refs/heads/master@{#30435}
-
bmeurer authored
This is the first step towards a spec compliant ToPrimitive implementation (and therefore spec compliant ToNumber, ToString, ToName, and friends). It adds support for the @@toPrimitive symbol that was introduced with ES2015, and also adds the new Symbol.prototype[@@toPrimitive] and Date.prototype[@@toPrimitive] initial properties. There are now runtime functions for %ToPrimitive, %ToNumber and %ToString, which do the right thing and should be used as fallbacks instead of the hairy runtime.js implementations. I will do the same for the other conversion operations mentioned by the spec in follow up CLs. Once everything is in place we can look into optimizing things further, so that we don't always call into the runtime. Also fixed Date.prototype.toJSON to be spec compliant. R=mstarzinger@chromium.org, yangguo@chromium.org BUG=v8:4307 LOG=y Review URL: https://codereview.chromium.org/1306303003 Cr-Commit-Position: refs/heads/master@{#30434}
-
- 24 Aug, 2015 1 commit
-
-
mstarzinger authored
R=titzer@chromium.org Review URL: https://codereview.chromium.org/1309883002 Cr-Commit-Position: refs/heads/master@{#30317}
-
- 21 Aug, 2015 4 commits
-
-
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}
-
yangguo authored
We can use the script type to determine that instead. Script of type TYPE_NATIVE are considered builtins, TYPE_NORMAL are not. The only exception to this rule is the empty function, for which the script is TYPE_NATIVE (observable by the debugger), but should be stringified to "function () {}" instead of "function () { [native code] }". For this, I introduce a hide_source flag on the script object. We also use IsBuiltin and IsSubjectToDebugging interchangeably. For debugger, we now use the latter, hiding the detail that only non-builtins are debuggable. R=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/1292283004 Cr-Commit-Position: refs/heads/master@{#30285}
-
yangguo authored
R=mvstanton@chromium.org Review URL: https://codereview.chromium.org/1300333003 Cr-Commit-Position: refs/heads/master@{#30283}
-
yangguo authored
We currently have several ways to share symbols that are used in both native scripts and the runtime. This change unifies this. We do not use the symbols registry since we don't need the registry any longer after bootstrapping, but the registry stays alive afterwards. R=mlippautz@chromium.org, rossberg@chromium.org Review URL: https://codereview.chromium.org/1293493004 Cr-Commit-Position: refs/heads/master@{#30280}
-
- 20 Aug, 2015 1 commit
-
-
yangguo authored
We need this for the debugger and for future changes that need to find all shared function infos (through scripts). R=mvstanton@chromium.org Review URL: https://codereview.chromium.org/1297273005 Cr-Commit-Position: refs/heads/master@{#30264}
-
- 19 Aug, 2015 2 commits
-
-
titzer authored
R=rossberg@chromium.org BUG= Review URL: https://codereview.chromium.org/1301583005 Cr-Commit-Position: refs/heads/master@{#30254}
-
yangguo authored
This mainly changes how we share ToBoolean, ToNumber and ToString between native scripts. Instead of putting them on the js builtins object, we now explicitly export and import those functions. I also had to change the import/export mechanism slightly. Previously, exports and imports are hooked up after all native scripts have been executed. This means that imported functions cannot be called at the time the native script is executed. However, since ToBoolean (and also e.g. ObjectDefineProperties) is called in v8natives.js, I changed the mechanism so that exports from previous native scripts (runtime.js for ToBoolean) is imported immediately and can be called. R=cbruni@chromium.org Review URL: https://codereview.chromium.org/1302533002 Cr-Commit-Position: refs/heads/master@{#30244}
-
- 14 Aug, 2015 2 commits
-
-
yangguo authored
Newly added native context slots are used to avoid accessing the js builtins object to get native functions. R=jkummerow@chromium.org Review URL: https://codereview.chromium.org/1294583006 Cr-Commit-Position: refs/heads/master@{#30181}
-
yangguo authored
R=jkummerow@chromium.org Review URL: https://codereview.chromium.org/1292533003 Cr-Commit-Position: refs/heads/master@{#30170}
-
- 13 Aug, 2015 5 commits
-
-
yangguo authored
R=mlippautz@chromium.org Review URL: https://codereview.chromium.org/1291043002 Cr-Commit-Position: refs/heads/master@{#30162}
-
yangguo authored
Revert of Debugger: use a Map to cache mirrors. (patchset #1 id:1 of https://codereview.chromium.org/1287243002/ ) Reason for revert: Several nosnap and custom snapshot failures. Original issue's description: > Debugger: use a Map to cache mirrors. > > This makes mirror cache lookup O(1) instead of O(n). > The downside is that the lookup via handle is O(n). This > is fine because handles are only used in the JSON api, > which is not used by Chrome and on death row. > > Committed: https://crrev.com/890b1dfca84d9dfecdcfc56517ef541076c6eb1d > Cr-Commit-Position: refs/heads/master@{#30150} TBR=bmeurer@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1292023002 Cr-Commit-Position: refs/heads/master@{#30153}
-
yangguo authored
This makes mirror cache lookup O(1) instead of O(n). The downside is that the lookup via handle is O(n). This is fine because handles are only used in the JSON api, which is not used by Chrome and on death row. Review URL: https://codereview.chromium.org/1287243002 Cr-Commit-Position: refs/heads/master@{#30150}
-
yangguo authored
Review URL: https://codereview.chromium.org/1290063002 Cr-Commit-Position: refs/heads/master@{#30149}
-
Benedikt Meurer authored
R=yangguo@chromium.org Review URL: https://codereview.chromium.org/1293453002 . Cr-Commit-Position: refs/heads/master@{#30147}
-
- 12 Aug, 2015 5 commits
-
-
yangguo authored
R=jkummerow@chromium.org Review URL: https://codereview.chromium.org/1282793002 Cr-Commit-Position: refs/heads/master@{#30136}
-
mstarzinger authored
R=yangguo@chromium.org Review URL: https://codereview.chromium.org/1283023002 Cr-Commit-Position: refs/heads/master@{#30131}
-
yangguo authored
R=danno@chromium.org Review URL: https://codereview.chromium.org/1285543002 Cr-Commit-Position: refs/heads/master@{#30128}
-
mstarzinger authored
R=bmeurer@chromium.org Review URL: https://codereview.chromium.org/1283183002 Cr-Commit-Position: refs/heads/master@{#30127}
-
yangguo authored
R=bmeurer@chromium.org BUG=chromium:517594 LOG=N Review URL: https://codereview.chromium.org/1286143002 Cr-Commit-Position: refs/heads/master@{#30124}
-
- 11 Aug, 2015 2 commits
-
-
yangguo authored
R=bmeurer@chromium.org Review URL: https://codereview.chromium.org/1286653004 Cr-Commit-Position: refs/heads/master@{#30106}
-
yangguo authored
R=mstarzinger@chromium.org BUG=chromium:517592 LOG=N Review URL: https://codereview.chromium.org/1285793002 Cr-Commit-Position: refs/heads/master@{#30104}
-
- 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}
-
- 04 Aug, 2015 1 commit
-
-
yangguo authored
This is a pure refactor and does not change functionality. R=ulan@chromium.org Review URL: https://codereview.chromium.org/1264993002 Cr-Commit-Position: refs/heads/master@{#29995}
-
- 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}
-