- 03 Sep, 2013 1 commit
-
-
dcarney@chromium.org authored
R=svenpanne@chromium.org BUG= Review URL: https://codereview.chromium.org/23729006 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16489 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 30 Aug, 2013 1 commit
-
-
yangguo@chromium.org authored
R=jkummerow@chromium.org BUG= Review URL: https://codereview.chromium.org/23480013 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16444 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 27 Aug, 2013 1 commit
-
-
mvstanton@chromium.org authored
BUG= R=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/22562002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16356 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 23 Aug, 2013 1 commit
-
-
jochen@chromium.org authored
V8 stores this information directly in the map of the wrapper, however, it is not invalidated when the prototype of the wrapper is changed, so once the bit is set, it is no longer possible to override valueOf. This bug is currently hidden in Chrome since the i18n extension always modifies the String.prototype, and so the optimization never kicks in. Disabling the optimization temporarily allows for snapshotting i18n now. BUG=v8:2855 R=yangguo@chromium.org TEST=mjsunit/regress/regress-2855.js Review URL: https://codereview.chromium.org/23060030 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16292 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 20 Aug, 2013 1 commit
-
-
bmeurer@chromium.org authored
This reverts commit r16222 for not using V8_ prefix. TBR=svenpanne@chromium.org Review URL: https://codereview.chromium.org/23301006 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16230 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 19 Aug, 2013 1 commit
-
-
bmeurer@chromium.org authored
We also use new the constant naming scheme for Yield::Kind values to avoid clash with the FINAL macro. R=svenpanne@chromium.org Review URL: https://codereview.chromium.org/23098004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16222 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 06 Aug, 2013 1 commit
-
-
svenpanne@chromium.org authored
R=mstarzinger@chromium.org, verwaest@chromium.org Review URL: https://codereview.chromium.org/22184004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16073 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 02 Aug, 2013 2 commits
-
-
svenpanne@chromium.org authored
This fixes a deopt loop in the Epic Citadel demo and removes some code. Apart from that, this change is performance-neutral. When we do something similar for BIT_NOT, the whole UnaryOp stuff can go away. R=jkummerow@chromium.org Review URL: https://codereview.chromium.org/21782002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16029 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
loislo@chromium.org authored
I'd like to propagate bailout reason to cpu profiler. So I need to save it into heap object SharedFunctionInfo. But: 1) all bailout reason strings spread across all the sources. 2) they are native strings and if I convert them into String then I may have a performance issue. 3) one byte is enough for 184 bailout reasons. Otherwise we need 8 bytes for the pointer. Also I think it would be nice to have error strings collected in one place. In that case we will get additional benefits: It allows us to keep this set of messages under control. It gives us a chance to internationalize them. It slightly reduces the binary footprint. From the other hand the developers have to add new strings into that enum. BUG= R=jkummerow@chromium.org Review URL: https://codereview.chromium.org/20843012 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16024 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 22 Jul, 2013 1 commit
-
-
mvstanton@chromium.org authored
helps us decide if we have two ascii strings. We don't care if they are internalized or not. A few days ago we flipped the meaning of the internalized bit in INSTANCE_TYPE, and that broke this custom mask. This CL effects a repair. BUG= R=yangguo@chromium.org Review URL: https://codereview.chromium.org/19514004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15797 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 19 Jul, 2013 1 commit
-
-
bmeurer@chromium.org authored
Avoid duplication of StringAddFlags in the platform specific code stubs header files. Fix the inverted flag logic, replacing it with a scheme that is easier to understand. Depends on: https://codereview.chromium.org/19541003 R=mvstanton@chromium.org Review URL: https://codereview.chromium.org/19492006 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15775 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 17 Jul, 2013 2 commits
-
-
jkummerow@chromium.org authored
This reverts r15725 and replaces it with the following one-liner in hydrogen.cc's HandleLiteralCompareTypeof: - CHECK_ALIVE(VisitForValue(sub_expr)); + CHECK_ALIVE(VisitForTypeOf(sub_expr)); R=danno@chromium.org Review URL: https://codereview.chromium.org/19523005 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15728 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
jkummerow@chromium.org authored
R=danno@chromium.org Review URL: https://codereview.chromium.org/19556003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15725 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 05 Jul, 2013 2 commits
-
-
olivf@chromium.org authored
BUG= R=danno@chromium.org Review URL: https://codereview.chromium.org/18712002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15506 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
rossberg@chromium.org authored
R=yangguo@chromium.org BUG=v8:2758 Review URL: https://codereview.chromium.org/18759002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15503 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 03 Jul, 2013 2 commits
-
-
olivf@chromium.org authored
The problem is the HCallConstantFunction which is not context sensitive, so we leak the builtin. We first need a Hydrogen version of __ IvokeBuiltin. BUG= R=danno@chromium.org, machenbach@chromium.org Review URL: https://codereview.chromium.org/18650003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15486 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
olivf@chromium.org authored
BUG= R=danno@chromium.org Review URL: https://codereview.chromium.org/17229005 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15473 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 28 Jun, 2013 1 commit
-
-
jkummerow@chromium.org authored
R=jkummerow@chromium.org Review URL: https://codereview.chromium.org/18037002 Patch from Haitao Feng <haitao.feng@intel.com>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15391 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 24 Jun, 2013 2 commits
-
-
svenpanne@chromium.org authored
R=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/17580018 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15300 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
rossberg@chromium.org authored
Just a completely mechanical change... R=svenpanne@chromium.org BUG= Review URL: https://codereview.chromium.org/17576005 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15280 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 20 Jun, 2013 2 commits
-
-
wingo@igalia.com authored
This patch makes yield sites save the resume continuation and context inline. If the operand stack is empty, we can avoid a call into the runtime. This also makes the SuspendJSGeneratorObject runtime function less magical: it just has to save the operand stack and stack handlers. This speeds up the following case by a factor of 3 or so: function* until(n) { for (var i = 0; i < n; i++) yield i; } function sum(iter) { var sum = 0; for (var x of iter) sum += x; return sum; } for (var i = 0; i < 10000; i++) sum(until(1000)) Also, there is no more sentinel value as the generators will resume in the right place already, allowing me to remove the hack added to the --debug-code check in r14437. R=mstarzinger@chromium.org BUG= Review URL: https://codereview.chromium.org/15990004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15240 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
wingo@igalia.com authored
The formal parameter count was always being treated as an untagged integer, but it is actually a Smi on ia32 and arm. R=mstarzinger@chromium.org BUG=v8:2355 TEST=mjsunit/harmony/generators-iteration Review URL: https://codereview.chromium.org/17485002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15230 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 14 Jun, 2013 2 commits
-
-
yangguo@chromium.org authored
R=jkummerow@chromium.org BUG= Review URL: https://chromiumcodereview.appspot.com/17030008 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15147 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
svenpanne@chromium.org authored
This is achieved by tuning the calling convention of StoreArrayLiteralStub: * The map of the array literal can be loaded in the stub from the array literal itself, there is no need to pass it at all. * The array literal is already on the stack, so there is no need to pass it again via a register. * The literal index is unchanged while filling the literal, so we can push it on the stack once and avoid passing it every time. Note that we need to mirror this change in the stack layout in crankshaft, too. R=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/16950004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15138 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 13 Jun, 2013 2 commits
-
-
wingo@igalia.com authored
Delegating yield (yield*) should just pass on the iterator results it receives instead of re-boxing them. R=rossberg@chromium.org TEST=mjsunit/harmony/generators-iteration BUG= Review URL: https://codereview.chromium.org/16695006 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15113 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
wingo@igalia.com authored
Since we can't assume anything about the shape of the iterator in a yield* (delegating yield), use an IC to do the next() and throw() iterator method calls. BUG=v8:2691 R=rossberg@chromium.org TEST=mjsunit/regress/regress-2691 Review URL: https://codereview.chromium.org/15455002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15111 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 12 Jun, 2013 2 commits
-
-
danno@chromium.org authored
This makes it possible to store additional information on property cells, for example Type and optimized Code dependencies. R=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/16631002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15089 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
wingo@igalia.com authored
When a generator suspends, it saves its state out to the heap and unwinds try handlers but doesn't pop anything off the stack. Instead it relies on no GC happening between the suspend and the return from the generator. However this was not the case: boxing the result object could cause GC, which would try to traverse the stack but would misinterpret words from unwound try handlers as heap objects. This CL changes to allocate the result objects before the suspend. It also removes the generators-iteration skip introduced in r15065. R=mstarzinger@chromium.org TEST=mjsunit/harmony/generators-iteration BUG= Review URL: https://codereview.chromium.org/16801006 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15079 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 10 Jun, 2013 5 commits
-
-
olivf@chromium.org authored
use compare nil ic only for non-strict equality. strict-equality only has one check and cannot deopt. should therefore not be part of the stub. BUG= R=rossberg@chromium.org Review URL: https://codereview.chromium.org/16732002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15045 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
olivf@chromium.org authored
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15044 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
olivf@chromium.org authored
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15043 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
olivf@chromium.org authored
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15042 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
wingo@igalia.com authored
Update the generators implementation to make "next" also do the job of what was previously called "send" by taking an optional argument. Remove send, and do a bunch of renamings. R=rossberg@chromium.org BUG=v8:2355, v8:2715 Review URL: https://codereview.chromium.org/16136011 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15028 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 07 Jun, 2013 1 commit
-
-
wingo@igalia.com authored
Add full-codegen support for the ES6 for-of iteration statement. R=mstarzinger@chromium.org, rossberg@chromium.org TEST=mjsunit/harmony/iteration-semantics BUG=v8:2214 Review URL: https://codereview.chromium.org/15288011 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15002 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 04 Jun, 2013 1 commit
-
-
mstarzinger@chromium.org authored
This removes the FACTORY helper macro to avoid accidental TLS access when using the factory. Most internal code has access to the Isolate by now whereas tests which are not performance critical still heavily use TLS access through explicit Isolate::Current() calls. R=svenpanne@chromium.org Review URL: https://codereview.chromium.org/16337005 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14931 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 29 May, 2013 1 commit
-
-
olivf@chromium.org authored
Convert ToBooleanStub to a HydrogenStub. Currently just using the existing HBranch instruction, which is still fully implemented in Lithium. Will refactor HBranch in a next CL. [ CL breaks mips, since the deoptimizer in Deoptimizer::DoTranslateCommand(...) does not convert smis passed to the stub via a0. ] BUG= R=verwaest@chromium.org Review URL: https://codereview.chromium.org/15302004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14886 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 23 May, 2013 1 commit
-
-
yangguo@chromium.org authored
R=jkummerow@chromium.org BUG= Review URL: https://chromiumcodereview.appspot.com/15743006 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14769 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 14 May, 2013 3 commits
-
-
yurys@chromium.org authored
Stack iterator takes return address based on the frame pointer (ebp) and detects JS frames based on value at fp + StandardFrameConstants::kMarkerOffset. So in order the iterator to work correctly this values should be already setup for the current function. Stack frame is constructed at the very beginning of JS function code and destroyed before return. If sample is taken before before the frame construction is completed or after it was destroyed the stack iterator will wrongly think that FP points at the current functions frame base and will skip callers frame. To avoid this we mark code ranges where stack frame doesn't exist and completely ignore such samples. This fixes cctest/test-cpu-profiler/CollectCpuProfile flakiness. BUG=v8:2628 R=jkummerow@chromium.org Review URL: https://codereview.chromium.org/14253015 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14670 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
wingo@igalia.com authored
Ideally this would have been implemented via desugaring at parse-time, but yield* is an expression, and its desugaring includes statements like while and try/catch. We'd have to have BlockExpression in the AST to support that, and it's not worth it for this feature. So instead we implement all of the logic in FullCodeGenerator::VisitYield. Delegating yield AST nodes now have a try handler index, for the try/catch. Otherwise the implementation is straightforward. R=rossberg@chromium.org BUG=v8:2355 TEST=mjsunit/harmony/generators-iteration Review URL: https://codereview.chromium.org/14582007 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14669 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
wingo@igalia.com authored
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14668 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-