- 14 Jan, 2021 1 commit
-
-
Jakob Gruber authored
This is a reland of 164cf80b The reland fixes UB (left-shift of negative integer type) with a static_cast<uint32_t>. Original change's description: > [regexp] Hard-crash on invalid offsets in AdvanceCurrentPosition > > Drive-by: Range checks in `Emit(byte, twenty_four_bits)` to ensure the > given packed bits actually fit into 24 bits. > > Bug: chromium:1166138 > Change-Id: I2e711e6466bb48d7b9897f68dfe621d12bd92508 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2625877 > Commit-Queue: Jakob Gruber <jgruber@chromium.org> > Commit-Queue: Leszek Swirski <leszeks@chromium.org> > Auto-Submit: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Leszek Swirski <leszeks@chromium.org> > Cr-Commit-Position: refs/heads/master@{#72064} Tbr: leszeks@chromium.org Bug: chromium:1166138 Change-Id: I514495e14bb99dfc9588fdb4a9f35d67d8d64acb Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2626663Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#72088}
-
- 13 Jan, 2021 2 commits
-
-
Nico Hartmann authored
This reverts commit 164cf80b. Reason for revert: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux64%20UBSan/14532/overview Original change's description: > [regexp] Hard-crash on invalid offsets in AdvanceCurrentPosition > > Drive-by: Range checks in `Emit(byte, twenty_four_bits)` to ensure the > given packed bits actually fit into 24 bits. > > Bug: chromium:1166138 > Change-Id: I2e711e6466bb48d7b9897f68dfe621d12bd92508 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2625877 > Commit-Queue: Jakob Gruber <jgruber@chromium.org> > Commit-Queue: Leszek Swirski <leszeks@chromium.org> > Auto-Submit: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Leszek Swirski <leszeks@chromium.org> > Cr-Commit-Position: refs/heads/master@{#72064} TBR=jgruber@chromium.org,leszeks@chromium.org,pthier@chromium.org Change-Id: Ibe72ecda03518e444442a0440ecdae7669bfc4c1 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:1166138 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2625883Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> Commit-Queue: Nico Hartmann <nicohartmann@chromium.org> Cr-Commit-Position: refs/heads/master@{#72065}
-
Jakob Gruber authored
Drive-by: Range checks in `Emit(byte, twenty_four_bits)` to ensure the given packed bits actually fit into 24 bits. Bug: chromium:1166138 Change-Id: I2e711e6466bb48d7b9897f68dfe621d12bd92508 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2625877 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Auto-Submit: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#72064}
-
- 03 Jun, 2020 1 commit
-
-
Iain Ireland authored
https://crrev.com/c/2072858 rewrote the implementation of non-unicode ignore-case matches to comply with the JS spec in some corner cases. It fixed character matches and character class matches. We missed a similar bug in the implementation of back references. This CL fixes that bug. The main change is in regexp-macro-assembler.cc, where CaseInsensitiveCompareUC16 is split into CaseInsensitiveCompareUnicode (which has the same semantics as before) and CaseInsensitiveCompareNonUnicode (which has the semantics described here: https://tc39.es/ecma262/#sec-runtime-semantics-canonicalize-ch). Most of the rest of the patch undoes https://crrev.com/c/2081816 to once again make the unicode flag available to the macroassembler, so that we can decide which helper function to call. The testcase is a version of test/intl/regress-10248.js, modified to test backreferences. Bug: v8:10573 Change-Id: I70ef7d134d37f99b1f75a5eba17020e82d59f1b9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2219284Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#68129}
-
- 11 May, 2020 1 commit
-
-
Ng Zhi An authored
See https://clang.llvm.org/extra/clang-tidy/checks/modernize-use-override.html for more on this warning. Bug: v8:10488 Change-Id: Ifa9443609fa30fa2d8f9fb9ed00ce9353fa9aa49 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2189910Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#67718}
-
- 02 Mar, 2020 1 commit
-
-
Jakob Gruber authored
In the past we've used the isolate argument to signal whether we were in unicode mode (nullptr) or not (the real isolate). This is no longer needed, and in fact breaks no-i18n mode which always expects to have a real isolate. Bug: v8:10120 Change-Id: I2f848c4ff8c2ff0e9b84278cbcdf3c3670e44e58 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2081816Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#66520}
-
- 01 Oct, 2019 1 commit
-
-
Jakob Gruber authored
This is a reland of 66129430 Fixed: Unaligned reads, unspecified evaluation order. Original change's description: > [regexp] Bytecode peephole optimization > > Bytecodes used by the regular expression interpreter often occur in > specific sequences. The number of dispatches in the interpreter can be > reduced if those sequences are combined into a single bytecode. > > This CL adds a peephole optimization pass for regexp bytecodes. > This pass checks the generated bytecode for pre-defined sequences that > can be merged into a single bytecode. > > With the currently implemented bytecode sequences a speedup of 1.12x on > regex-dna and octane-regexp is achieved. > > Bug: v8:9330 > Change-Id: I827f93273a5848e5963c7e3329daeb898995d151 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1813743 > Commit-Queue: Patrick Thier <pthier@google.com> > Reviewed-by: Peter Marshall <petermarshall@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Cr-Commit-Position: refs/heads/master@{#63992} Cq-Include-Trybots: luci.v8.try:v8_linux64_ubsan_rel_ng Cq-Include-Trybots: luci.v8.try:v8_linux_gcc_rel Bug: v8:9330,chromium:1008502,chromium:1008631 Change-Id: Ib9fc395b6809aa1debdb54d9fba5b7f09a235e5b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1828917Reviewed-by: Peter Marshall <petermarshall@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#64064}
-
- 26 Sep, 2019 2 commits
-
-
Clemens Backes [né Hammacher] authored
This reverts commit 66129430. Reason for revert: Fails on gcc: https://ci.chromium.org/p/v8/builders/ci/V8%20Linux%20gcc/3394 Original change's description: > [regexp] Bytecode peephole optimization > > Bytecodes used by the regular expression interpreter often occur in > specific sequences. The number of dispatches in the interpreter can be > reduced if those sequences are combined into a single bytecode. > > This CL adds a peephole optimization pass for regexp bytecodes. > This pass checks the generated bytecode for pre-defined sequences that > can be merged into a single bytecode. > > With the currently implemented bytecode sequences a speedup of 1.12x on > regex-dna and octane-regexp is achieved. > > Bug: v8:9330 > Change-Id: I827f93273a5848e5963c7e3329daeb898995d151 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1813743 > Commit-Queue: Patrick Thier <pthier@google.com> > Reviewed-by: Peter Marshall <petermarshall@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Cr-Commit-Position: refs/heads/master@{#63992} TBR=jgruber@chromium.org,petermarshall@chromium.org,pthier@google.com Change-Id: Ie526fe3691f6abdd16b51979000fdafb7afce8ef No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:9330 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1826727Reviewed-by: Clemens Backes [né Hammacher] <clemensb@chromium.org> Commit-Queue: Clemens Backes [né Hammacher] <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#63998}
-
Patrick Thier authored
Bytecodes used by the regular expression interpreter often occur in specific sequences. The number of dispatches in the interpreter can be reduced if those sequences are combined into a single bytecode. This CL adds a peephole optimization pass for regexp bytecodes. This pass checks the generated bytecode for pre-defined sequences that can be merged into a single bytecode. With the currently implemented bytecode sequences a speedup of 1.12x on regex-dna and octane-regexp is achieved. Bug: v8:9330 Change-Id: I827f93273a5848e5963c7e3329daeb898995d151 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1813743 Commit-Queue: Patrick Thier <pthier@google.com> Reviewed-by: Peter Marshall <petermarshall@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#63992}
-
- 29 Aug, 2019 1 commit
-
-
Jakob Gruber authored
Similar to CheckNotAtStart, one can now apply an offset to the CheckAtStart operation. Due to a recent change, all callsites of CheckNotAtStart now need to pass an offset, whereas previously the offset was just assumed to be zero. Bug: chromium:996391 Change-Id: Ia59a584e93e5384479f05abddef7859b420b023a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1773272 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Auto-Submit: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#63444}
-
- 25 Jul, 2019 1 commit
-
-
Seth Brenith authored
The motivating example is JetStream 2's UniPoker test, which tests whether a sorted string of Unicode playing cards contains a five-card straight using a regular expression. In the top-level generated loop for this RegExp, we see this loop exit condition: 00000350000C2067 27 83fffe cmpl rdi,0xfe 00000350000C206A 2a 0f8da8e40000 jge 00000350000D0518 <+0xe4d8> Meaning if the current position is pointing at the very last (16-bit) character, then we exit the loop. Otherwise we go on and try to find various matches starting at the current position. However, we can see in the original expression that any possible match is at least 10 characters (5 astral-plane Unicode values), so we're wasting a lot of time attempting to find matches in cases where we're too close to the end of the string for any match to succeed. This example might be a bit contrived, but I expect that an improvement in this bounds check would help a larger family of regular expressions, where the minimum match length is large relative to the string being matched and we don't meet the other necessary criteria for fast Boyer- Moore lookahead. To get the desired bounds check in this case, this patch does the following: 1. Compute accurate EatsAtLeast values for every node during the analysis phase. This could end up doing more work than the current implementation, but analysis already has to touch every node, so it seems like a cache-friendly time to compute these values. In some cases, this might be less total work than the current implementation, because the current implementation might recompute the same node multiple times. 2. When emitting a quick check, use the EatsAtLeast value from the predecessor ChoiceNode for the bounds check. This improves the UniPoker score on my machine by about 4%, because it cuts the time spent checking for straights roughly in half, and checking for straights originally accounted for about 8% of the total time. Bug: v8:9305 Change-Id: I110b190c2578f73b2263259d5aa5750e921b01be Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1702125 Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#62919}
-
- 11 Jul, 2019 1 commit
-
-
Peter Marshall authored
We don't use this anywhere, it's always true. Change-Id: Iae16a108f036de5eddd1b9741e554ddd4eac8c83 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1692928 Commit-Queue: Peter Marshall <petermarshall@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#62628}
-
- 10 Jul, 2019 1 commit
-
-
Peter Marshall authored
This makes it clearer what this class does, and is more consistent with the terminology used by ignition (BytecodeGenerator). Change-Id: I9085f29f437cf15605a5ae971b1fc72d6c79feaa Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1692923Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#62612}
-
- 02 Apr, 2019 1 commit
-
-
Sigurd Schneider authored
Bug: v8:9020 Change-Id: I405d27541f76d1347ae91e5ab426ede72edb1f32 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1541045 Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#60573}
-
- 23 Jan, 2019 1 commit
-
-
Jakob Gruber authored
For jitless mode, we must be able to switch between the native regexp engine and interpreted regexps at runtime since --jitless is itself a runtime flag. This CL unconditionally compiles in the regexp interpreter in all builds. It can be toggled through the --regexp-interpret-all flag. Bug: v8:7777, v8:8678 Change-Id: Iadd21a152de7c07586d5af32bee5fdf9931f1a01 Reviewed-on: https://chromium-review.googlesource.com/c/1408929 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Peter Marshall <petermarshall@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#59041}
-
- 17 Apr, 2018 1 commit
-
-
Jakob Kummerow authored
One more place behind a non-default build flag that needs updating after the recent Address typedef change. Change-Id: Ica5022966e7773c621624d1cd5c20296c52c0b39 Reviewed-on: https://chromium-review.googlesource.com/1014320Reviewed-by: Yang Guo <yangguo@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#52650}
-
- 13 Oct, 2017 1 commit
-
-
Mathias Bynens authored
New code should use nullptr instead of NULL. This patch updates existing use of NULL to nullptr where applicable, making the code base more consistent. BUG=v8:6928,v8:6921 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng;master.tryserver.v8:v8_linux_noi18n_rel_ng Change-Id: I4687f5b96fcfd88b41fa970a2b937b4f6538777c Reviewed-on: https://chromium-review.googlesource.com/718338 Commit-Queue: Mathias Bynens <mathias@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#48557}
-
- 27 Jan, 2016 1 commit
-
-
yangguo authored
BUG=v8:2952 LOG=N Review URL: https://codereview.chromium.org/1599303002 Cr-Commit-Position: refs/heads/master@{#33538}
-
- 18 Jan, 2016 2 commits
-
-
yangguo authored
R=jkummerow@chromium.org Review URL: https://codereview.chromium.org/1601743002 Cr-Commit-Position: refs/heads/master@{#33368}
-
yangguo authored
R=jkummerow@chromium.org Review URL: https://codereview.chromium.org/1595403003 Cr-Commit-Position: refs/heads/master@{#33354}
-
- 17 Nov, 2015 3 commits
-
-
yangguo authored
R=erikcorry@chromium.org, littledan@chromium.org BUG=v8:4545 LOG=N Committed: https://crrev.com/37632606bbce1418238b13fd90cb6ef6705871cd Cr-Commit-Position: refs/heads/master@{#32029} Review URL: https://codereview.chromium.org/1418963009 Cr-Commit-Position: refs/heads/master@{#32043}
-
yangguo authored
Revert of Experimental support for RegExp lookbehind. (patchset #18 id:340001 of https://codereview.chromium.org/1418963009/ ) Reason for revert: gc stress breaks due to string_start_minus_one not being set correctly. Original issue's description: > Experimental support for RegExp lookbehind. > > R=erikcorry@chromium.org, littledan@chromium.org > BUG=v8:4545 > LOG=N > > Committed: https://crrev.com/37632606bbce1418238b13fd90cb6ef6705871cd > Cr-Commit-Position: refs/heads/master@{#32029} TBR=littledan@chromium.org,erikcorry@chromium.org,erikcorry@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:4545 Review URL: https://codereview.chromium.org/1451373003 Cr-Commit-Position: refs/heads/master@{#32032}
-
yangguo authored
R=erikcorry@chromium.org, littledan@chromium.org BUG=v8:4545 LOG=N Review URL: https://codereview.chromium.org/1418963009 Cr-Commit-Position: refs/heads/master@{#32029}
-
- 30 Sep, 2015 1 commit
-
-
mstarzinger authored
This enables linter checking for "readability/namespace" violations during presubmit and instead marks the few known exceptions that we allow explicitly. R=bmeurer@chromium.org Review URL: https://codereview.chromium.org/1371083003 Cr-Commit-Position: refs/heads/master@{#31019}
-
- 13 Aug, 2015 1 commit
-
-
yangguo authored
Review URL: https://codereview.chromium.org/1285163003 Cr-Commit-Position: refs/heads/master@{#30144}
-
- 11 Aug, 2015 1 commit
-
-
mstarzinger authored
This is the first step of turning the v8.h file into a normal header instead of an include-the-world header. The new rule is that no other header files are allowed to include v8.h, which is enforced by DEPS. Also the number of includes inside the v8.h file has been drastically reduced. Basically the last missing piece is the inclusion of the big objects-inl.h file. This in turn makes many headers follow the IWYU principle. R=bmeurer@chromium.org,hpayer@chromium.org,titzer@chromium.org Review URL: https://codereview.chromium.org/1282503003 Cr-Commit-Position: refs/heads/master@{#30102}
-
- 26 Jan, 2015 1 commit
-
-
yangguo authored
Broke after c7b09aac TBR=danno@chromium.org Review URL: https://codereview.chromium.org/875833002 Cr-Commit-Position: refs/heads/master@{#26262}
-
- 15 Sep, 2014 1 commit
-
-
yangguo@chromium.org authored
BUG=chromium:412967 LOG=N R=jkummerow@chromium.org Review URL: https://codereview.chromium.org/571903002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23938 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 12 Sep, 2014 2 commits
-
-
yangguo@chromium.org authored
This reverts r23915. TBR=machenbach@chromium.org Review URL: https://codereview.chromium.org/569783003 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23925 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
yangguo@chromium.org authored
R=jkummerow@chromium.org BUG=chromium:412967 LOG=Y Review URL: https://codereview.chromium.org/568753002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23915 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 04 Jun, 2014 1 commit
-
-
yangguo@chromium.org authored
R=mvstanton@chromium.org Review URL: https://codereview.chromium.org/318603002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21673 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 29 Apr, 2014 1 commit
-
-
bmeurer@chromium.org authored
R=svenpanne@chromium.org Review URL: https://codereview.chromium.org/259183002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21035 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 07 Jun, 2013 1 commit
-
-
yangguo@chromium.org authored
BUG= R=hpayer@chromium.org Review URL: https://chromiumcodereview.appspot.com/16026020 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14994 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 06 Jun, 2013 1 commit
-
-
rodolph.perfetta@gmail.com authored
Removes never called methods and fix a bug on ARM. BUG=none TEST=none Review URL: https://chromiumcodereview.appspot.com/16280005 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14967 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 14 Jun, 2012 1 commit
-
-
yangguo@chromium.org authored
BUG= TEST= Review URL: https://chromiumcodereview.appspot.com/10535164 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11825 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 06 Jun, 2012 1 commit
-
-
erik.corry@gmail.com authored
Remove CheckNotRegistersEqual regexp-masm function from all architectures. This is a commit of http://codereview.chromium.org/10066009/ for Daniel Kalmar git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11721 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 22 May, 2012 1 commit
-
-
yangguo@chromium.org authored
BUG= TEST= Review URL: https://chromiumcodereview.appspot.com/10386090 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11623 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 30 Mar, 2012 1 commit
-
-
erik.corry@gmail.com authored
code generation. This is performance neutral for all our tests, but a factor 6 faster for the Unicode based regexp in the new test (and much more compact code). Review URL: https://chromiumcodereview.appspot.com/9854020 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11189 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 08 Sep, 2011 1 commit
-
-
ricow@chromium.org authored
This is all blank line before/after linting errors. Review URL: http://codereview.chromium.org/7754022 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9204 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 11 May, 2011 1 commit
-
-
erik.corry@gmail.com authored
Review URL: http://codereview.chromium.org/6997015 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7845 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-