- 15 May, 2019 2 commits
-
-
Toon Verwaest authored
Additionally pass WriteBarrierMode while building the object Change-Id: Ibc8ad592f822ee3b046406013cc36ae64f6b099b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1613251Reviewed-by: Igor Sheludko <ishell@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#61547}
-
Toon Verwaest authored
This avoids the need to throw range errors when we run out of stack, limiting us only by available memory. The main parser loop is implemented by two subloops. The first subloop finishes whenever it generates primitive values, empty arrays, or empty objects. If a non-empty object or array is started, the loop continues to parse its first member. The second subloop consumes produced values and either adds them to the parent array or object, or returns it. The second loop finishes whenever a next value needs to be produced. When the loop itself produces a finished array or object, the loop continues. Exceptions are handled by moving the cursor to end-of-input. Upon end-of-input, the first loop sets the continuation to "kFail". That causes the second loop to tear down continuation stack and related handle scopes, resulting in an empty handle. The CL additionally buffers all named properties and elements so we can immediately allocate a correctly shaped object. For object elements we'll take flat array or dictionary encoding depending on what is more efficient. This means that element handles are now allocated in their parent HandleScope, rather than having local handlescopes per-property (of big objects); which is why I've adjusted the handle-count test to not allocate as many properties. In the future it would be nice to not have to allocate (as many) handles since almost everything in the JSON graph will survive JSON parsing... Bug: chromium:710383 Change-Id: Ia3a7fd0ac260fb1c0e5f929276792b2f8e5fc0ca Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1609802Reviewed-by: Hannes Payer <hpayer@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#61533}
-
- 01 Apr, 2015 2 commits
-
-
erikcorry authored
R=mstarzinger@chromium.org BUG=v8:3976 BUG=472504 LOG=y Review URL: https://codereview.chromium.org/1051833002 Cr-Commit-Position: refs/heads/master@{#27571}
-
erikcorry authored
Revert of Fix JSON parser Handle leak (patchset #3 id:40001 of https://codereview.chromium.org/1041483004/) Reason for revert: Reverting due to JSOn parser failures Original issue's description: > Fix JSON parser Handle leak > > R=verwaest@chromium.org > BUG=v8:3976 > LOG=y > > Committed: https://crrev.com/1ec850383bb82f6d8bebc7416e5f50b649d1eeaa > Cr-Commit-Position: refs/heads/master@{#27512} TBR=verwaest@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:3976 Review URL: https://codereview.chromium.org/1052593002 Cr-Commit-Position: refs/heads/master@{#27562}
-
- 30 Mar, 2015 1 commit
-
-
erikcorry authored
R=verwaest@chromium.org BUG=v8:3976 LOG=y Review URL: https://codereview.chromium.org/1041483004 Cr-Commit-Position: refs/heads/master@{#27512}
-
- 24 Mar, 2015 1 commit
-
-
erikcorry authored
Also introduce --trace-fragmentation-verbose, and fix --always-compact. R=ulan@chromium.org BUG=v8:3976 LOG=y Review URL: https://codereview.chromium.org/1024823002 Cr-Commit-Position: refs/heads/master@{#27414}
-
- 04 Nov, 2009 1 commit
-
-
sgjesse@chromium.org authored
The generation of the return sequence is now protected from having the constant pool emitted inside of it in both compilers. BUG=http://code.google.com/p/v8/issues/detail?id=491 TEST=test/mjsunit/regress/regress-491.js Review URL: http://codereview.chromium.org/362003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3215 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 19 Feb, 2009 1 commit
-
-
ager@chromium.org authored
I find this clearer and it also enables the DYNAMIC_LOCAL optimization for code executed by eval that itself uses eval: eval("(function() { var x = 2; eval('1'); do stuff with x...; })()") Review URL: http://codereview.chromium.org/24023 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1322 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 18 Feb, 2009 1 commit
-
-
ager@chromium.org authored
Not sure what happened, but my revert did not get everything out. Fixing the problem instead. The issue was using tmp instead of context in two places. TBR=kasperl Review URL: http://codereview.chromium.org/20459 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1303 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 02 Feb, 2009 2 commits
-
-
ager@chromium.org authored
http://code.google.com/p/v8/issues/detail?id=221 The attempt to resolve 'eval' went into an infinite loop. Also, we need to throw a reference error in case 'eval' cannot be resolved. Review URL: http://codereview.chromium.org/19536 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1206 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kmillikin@chromium.org authored
declaration that was not a slot. Review URL: http://codereview.chromium.org/19745 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1203 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 14 Jan, 2009 1 commit
-
-
christian.plesner.hansen@gmail.com authored
also revealed a bug or two that had to be fixed. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1070 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 26 Sep, 2008 1 commit
-
-
christian.plesner.hansen@gmail.com authored
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@386 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 09 Sep, 2008 1 commit
-
-
christian.plesner.hansen@gmail.com authored
Added presubmit step to check copyright. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@242 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 22 Aug, 2008 1 commit
-
-
christian.plesner.hansen authored
In the shell sample don't print the result of executing a script, only evaluating expressions. Fixed issue when building samples on Windows using a shared V8 library. Added visibility option on Linux build which makes the generated library 18% smaller. Changed build system to accept multiple build modes in one build and generate seperate objects, libraries and executables for each mode. Removed deferred negation optimization (a * -b => -(a * b)) since this visibly changes operand conversion order. Improved parsing performance by introducing stack guard in preparsing. Without a stack guard preparsing always bails out with stack overflow. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 03 Jul, 2008 1 commit
-
-
christian.plesner.hansen authored
git-svn-id: http://v8.googlecode.com/svn/trunk@2 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-