erik.corry@gmail.com
7846721d96
Fixes needed to compile on gcc-4.4.1 on ARM. It is still necessary
...
to add -fno-strict-aliasing.
Review URL: http://codereview.chromium.org/6123007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6281 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-12 11:56:41 +00:00
sgjesse@chromium.org
6a4df3791e
IA32: Remove an invalid assert
...
Review URL: http://codereview.chromium.org/6129005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6280 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-12 11:53:30 +00:00
ager@chromium.org
0b9336ac8b
Landing for Martin Maly.
...
Fix CalculateEmitStore HashMap use.
The hash maps are setup to store strings or smis but instead Literal is being in them. It seems to only work by accident.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6279 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-12 09:29:20 +00:00
sgjesse@chromium.org
8f54606109
ARM: Always use the overflow flag to check for NaNs participating in a floating point compare.
...
Looks as if we don't need to use the vcmpe instruction instead of the vcmp, as the overflow FPSCR bit suits our purpose. If we at some point need vcmpe lte's implement it as a separate instruction.
Review URL: http://codereview.chromium.org/6197003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6277 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-12 07:47:13 +00:00
whesse@chromium.org
b6ebcd58c6
Crankshaft: Move LEnvironment and LPointerMap classes to platform-independent lithium.h. Move WriteTranslation method from LEnvironment class to LCodeGen class.
...
Review URL: http://codereview.chromium.org/6142011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6276 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-11 15:51:08 +00:00
fschneider@chromium.org
b85538bc16
Introduce two more template parameter for Lithium instructions for input and temp operands.
...
Each LInstruction is now a subclass of LTemplateInstruction<R, I, T>
where R is number of outputs, I number of inputs and T number of temps.
This change only actually uses the parameter I for input operands.
Since the parameter T for temps is 0, it incurs no extra cost.
A separate change will introduce using the temps parameter.
Review URL: http://codereview.chromium.org/6215002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6275 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-11 15:47:34 +00:00
peter.rybin@gmail.com
7c468e53c4
Add fine-grained diff implementation to LiveEdit engine.
...
BUG=1013
TEST=
Review URL: http://codereview.chromium.org/6017008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6274 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-11 14:55:47 +00:00
fschneider@chromium.org
c1d4d89a31
Remove unused Temp() function form LChunkBuilder.
...
Review URL: http://codereview.chromium.org/6217003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6273 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-11 14:38:13 +00:00
karlklose@chromium.org
43b0399505
Implement DoApplyArguments.
...
ARM: Implement DoApplyArguments in the lithium code generator.
This patch also introduces an optional SafepointGenerator argument to InvokeFunction, InvokeCode and InvokeProloque.
BUG=
TEST=
Review URL: http://codereview.chromium.org/6164003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6272 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-11 14:11:03 +00:00
ager@chromium.org
59c158e43f
ARM: Implement ClassOf in the lithium arm backend.
...
Review URL: http://codereview.chromium.org/6201004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6271 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-11 14:01:53 +00:00
kmillikin@chromium.org
a7c743d3ac
Reuse the gap move resolver.
...
Rather than allocating a fresh gap move resolver for every parallel
move, use a single one per Lithium code generator. This avoids always
reallocating the temporary zone-allocated lists used by the gap move
resolver.
Review URL: http://codereview.chromium.org/6128007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6270 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-11 13:50:12 +00:00
vitalyr@chromium.org
404fbb5b0b
SSE2 truncating double-to-i.
...
Review URL: http://codereview.chromium.org/6049008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6269 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-11 13:48:49 +00:00
sgjesse@chromium.org
c4550bc6d5
ARM: Add instructions VFPCompareAndSetFlags and VFPCompareAndLoadFlags to macro assembler
...
Also removed the SBit from the vcmp instruction as it is not part of the instruction.
Review URL: http://codereview.chromium.org/6117003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6268 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-11 12:45:25 +00:00
mikhail.naganov@gmail.com
ecc00e7800
Visit all roots in the UnreachableObjectsFilter.
...
If an object is only referenced from DOM wrappers, it can only
be seen if all roots are visited.
Review URL: http://codereview.chromium.org/6226004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6267 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-11 12:38:19 +00:00
mikhail.naganov@gmail.com
6f72caf92d
Add reporting of JS heap size limit to GetHeapStatistics.
...
I found it useful to know inside the heap profiler to avoid
crashes due to heap overflow.
Review URL: http://codereview.chromium.org/6111007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6266 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-11 12:36:09 +00:00
ager@chromium.org
a314fa4581
ARM: Add deferred stack overflow checks to goto code generation in ARM
...
lithium when needed.
Review URL: http://codereview.chromium.org/6192005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6265 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-11 12:32:00 +00:00
whesse@chromium.org
5d3432b530
Add source file lithium-codegen-x64.cc. Add class declarations to lithium-codegen-x64.h.
...
Review URL: http://codereview.chromium.org/6135008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6264 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-11 12:24:18 +00:00
fschneider@chromium.org
6b00bdf2f2
Fix ARM debug build by moving an assert.
...
Review URL: http://codereview.chromium.org/6127005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6263 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-11 12:20:22 +00:00
fschneider@chromium.org
9cace6b5f0
Use HIR accessor for CheckPrototypeMaps to remove the duplicate members in lithium.
...
Review URL: http://codereview.chromium.org/6221003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6262 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-11 12:10:11 +00:00
ager@chromium.org
b3d4ea357c
ARM: use existing transcendental cache stub for tagged inputs.
...
Review URL: http://codereview.chromium.org/6167004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6261 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-11 11:54:37 +00:00
erik.corry@gmail.com
544d941b09
Fix lint
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6260 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-11 11:47:30 +00:00
erik.corry@gmail.com
ff8ed6b7b6
Fix Solaris build. Patch from Ryan Dahl. See http://codereview.chromium.org/5968004/
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6259 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-11 11:44:16 +00:00
fschneider@chromium.org
b9f5ab9ef1
Remove duplicate members from some LIR instruction by using the HIR accessors.
...
Remove unused LOperands from keyed-loads. We do not have multiple representations
for load instructions anymore.
Correct number of output operands as for a couple of instructions form 1 to 0
because they do not produce a result (e.g. PushArgument)
Review URL: http://codereview.chromium.org/6158004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6258 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-11 11:41:01 +00:00
whesse@chromium.org
14cb39e543
X64 Crankshaft: Add LTemplatedInstruction and some derived classes to lithium-x64.cc.
...
Review URL: http://codereview.chromium.org/6128008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6257 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-11 11:33:52 +00:00
antonm@chromium.org
a0bc9eb040
Add more bailouts for Array.slice over arguments.
...
Unfortunately, arguments is pretty much the normal JS object. For now
I am adding more sanity checks (in hope that typically arguments
list is rather short.) However it probably requires more systematic
treatment, for example, we could optimistically copy elements until
we meet first hole and in this case resort to JS builtin.
Review URL: http://codereview.chromium.org/6062006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6256 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-11 11:23:40 +00:00
sgjesse@chromium.org
bb0e35929f
Fix presubmit error - really
...
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/6205003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6254 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-10 21:10:51 +00:00
sgjesse@chromium.org
d04c75c685
Fix presubmit error
...
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/6206003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6253 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-10 21:03:48 +00:00
sgjesse@chromium.org
bd208976d7
Update the bits reserved for the gap size in the depotimization table
...
On ARM the a constant pool can be emitted during the gap code generation which leads to larger gap code size
BUG=v8:1018
Review URL: http://codereview.chromium.org/6125004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6252 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-10 19:43:38 +00:00
kmillikin@chromium.org
32254e5324
Change the hydrogen timing data to include zone allocation.
...
Review URL: http://codereview.chromium.org/6190002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6249 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-10 14:16:47 +00:00
ager@chromium.org
cd4ae721e2
ARM: Implement delete operation in lithium codegen.
...
I'm using the post call generator for the macro assembler
InvokeBuiltin call to be consistent with the ia32 version. It only
generates one call, but using the post call generator it should be
easier to catch if we change that at some point.
Review URL: http://codereview.chromium.org/6119004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6247 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-10 12:24:19 +00:00
fschneider@chromium.org
f89ce8159a
Split LInstruction into multiple variant to make our LIR more compact.
...
This change introduces LTemplateInstruction which is a specialized version
of LInstruction and takes one template parameter to indicate whether the
instruction produces a result operand.
All instruction that do not have a result inherit from LTemplateInstruction<0>.
Instructions that have a result operand from LTemplateInstruction<1>
All the Define* function only operate on instructions with a result.
For this to work I also refactored the places where we do
LInstruction* result = new Lxyy
into
Lxyz* result = new Lxyz
Review URL: http://codereview.chromium.org/6219001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6245 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-10 12:19:15 +00:00
sandholm@chromium.org
c260e4f731
Simplify Join and speedup joining arrays of numbers.
...
Review URL: http://codereview.chromium.org/6173004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6243 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-10 11:44:54 +00:00
whesse@chromium.org
a139094016
Crankshaft: Move LParallelMove to lithium.h, add LGap to lithium-x64.h.
...
Review URL: http://codereview.chromium.org/6132002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6242 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-10 11:31:21 +00:00
kmillikin@chromium.org
3d4395bab4
Prepare push to trunk. Now working on version 3.0.8.
...
Review URL: http://codereview.chromium.org/6152002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6237 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-10 08:05:34 +00:00
ager@chromium.org
5e3381c9c7
Landing for Martyn Capewell.
...
ARM: Fix comparison of NaN values.
Enables the cumulative exception flag when comparing values, and uses it to
detect NaN results.
BUG=1023
TEST=none
Code review URL: http://codereview.chromium.org/6142004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6236 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-10 08:04:30 +00:00
sandholm@chromium.org
6dd671d6c2
Make better use of the %_FastAsciiArrayJoin function.
...
Review URL: http://codereview.chromium.org/6100005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6235 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-10 08:00:48 +00:00
ager@chromium.org
d9e5078bbc
Landing for Martin Maly.
...
Implement DoCallKeyed for arm lithium compiler.
Code review URL: http://codereview.chromium.org/6139002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6234 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-10 07:59:13 +00:00
ricow@chromium.org
cd6bd8c4fa
Revert 6220 (generic descriptor support in Object.defineOwnProperty)
...
This change caused a webkit failure in http/tests/security/xss-DENIED-defineProperty.html.
I will look into this and reapply when I find a solution.
Review URL: http://codereview.chromium.org/6134005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6232 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-10 07:20:54 +00:00
sgjesse@chromium.org
dae44fd3ee
ARM: Fix lithium codegeneration of TypeofIs
...
The previous implementation was incomplete and wrong.
TBR=karlklose@chromium.org
Review URL: http://codereview.chromium.org/6113003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6231 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-07 14:27:32 +00:00
sgjesse@chromium.org
97621e7e32
ARM: Implement lithium codegen for DoTypeof, DoTypeofIs and DoSmiUntag
...
Review URL: http://codereview.chromium.org/6174001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6227 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-07 13:44:05 +00:00
sandholm@chromium.org
ba4f9faec5
Aviod double checking IS_STRING when joining arrays.
...
Review URL: http://codereview.chromium.org/5977013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6226 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-07 13:21:34 +00:00
lrn@chromium.org
90fd0ee897
Change interpretation of malformed \c? escapes in RegExp to match JSC.
...
Review URL: http://codereview.chromium.org/6171001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6225 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-07 12:35:42 +00:00
karlklose@chromium.org
e74b0ae7db
ARM: Support DoCallGlobal in lithium code generator.
...
BUG=
TEST=
Review URL: http://codereview.chromium.org/6094011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6224 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-07 12:34:39 +00:00
whesse@chromium.org
7c94bf13b9
Create platform-independent lithium files, move LGapResolver and LGapNode there
...
Review URL: http://codereview.chromium.org/6121001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6221 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-07 11:49:22 +00:00
ricow@chromium.org
08cd803827
Landing for Peter Hallam
...
First cut at bug 992
Fixes JS portion of DefineOwnProperty when there is
an existing property and the new descriptor is generic.
Makes code follow spec steps more closely.
Fixes typo for check for unchanged enumerable in step 6.
Adds regression test.
Codereview url: http://codereview.chromium.org/6035014/
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6220 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-07 11:49:09 +00:00
ricow@chromium.org
b02ff71824
Fix win64 build (int conversion)
...
Review URL: http://codereview.chromium.org/6083014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6219 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-07 10:51:44 +00:00
sgjesse@chromium.org
426f13e084
Fix GC issue in instanceof stub
...
The the call of the builtin in InstanceofStub was not correctly protected with an internal frame leading to the return address being handled as a pointer during GC.
Marked the Instanceof stub as allowing stub calls (the RecordWriteStub was removed some days ago).
This issue was not caught by the assertion designed for this when debug mode is run with --debug-code (which out tests always does) as generating code for Abort set the allow stub calls flag to true. This has been fixed by restoring the allow stub calls flag correctly.
Review URL: http://codereview.chromium.org/6097010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6218 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-07 10:37:26 +00:00
fschneider@chromium.org
bfecc95694
Revert r6194: Clean up code for type feedback a bit.
...
This causes a big performance regression. I'll investigate.
Review URL: http://codereview.chromium.org/6172001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6217 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-07 10:36:27 +00:00
kmillikin@chromium.org
12b34fa927
Move IsArgumentsMarker from class MaybeObject to Object.
...
Since we never need to ask it of a MaybeObject, put it with the other
oddball testers in class Object for consistency.
Review URL: http://codereview.chromium.org/6138004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6216 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-07 10:06:28 +00:00
whesse@chromium.org
f39ff5c679
X64 Crankshaft: Implement some methods in LInstruction, update mjsunit test expectations.
...
Review URL: http://codereview.chromium.org/6118002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6215 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-07 09:47:16 +00:00
sgjesse@chromium.org
a6c5fa6993
ARM implementations of LoadElements, LoadKeyedFastElement, StoreNamedField, StoreKeyedFastElement.
...
BUG=none
TEST=none
Patch by Martyn Capewell from ARM Ltd.
Review URL: http://codereview.chromium.org/5967008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6214 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-07 07:33:46 +00:00
karlklose@chromium.org
1eb68a859f
Fix presubmit (r6209).
...
BUG=
TEST=
Review URL: http://codereview.chromium.org/6029012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6213 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-06 16:20:45 +00:00
fschneider@chromium.org
5fbaece14c
Use a separate marker value to allocate the arguments object on deoptimzation.
...
Before we used the hole value for this purpose, but this does not work once we
start using the hole value for other purposes in the optimizing compiler.
Review URL: http://codereview.chromium.org/6116001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6210 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-06 15:53:56 +00:00
karlklose@chromium.org
d4bbad8e4e
ARM: Support DoCheckInstanceType in lithium codegenerator.
...
BUG=
TEST=
Review URL: http://codereview.chromium.org/6040008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6209 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-06 15:25:03 +00:00
kmillikin@chromium.org
8945e02d86
Fix disassembly comment for CallFunctionStub.
...
The comment was printing the entire minor key but labeling it with 'argc'.
Review URL: http://codereview.chromium.org/6120001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6208 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-06 14:13:40 +00:00
karlklose@chromium.org
1152cab095
Use hydrogen accessor instead of copying members.
...
BUG=
TEST=
Review URL: http://codereview.chromium.org/6119001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6206 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-06 14:02:46 +00:00
lrn@chromium.org
a50e69bda5
Avoid calling inherited setters when creating object literals and their boilerplates.
...
Fix issue 1015.
Review URL: http://codereview.chromium.org/6118001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6205 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-06 14:00:50 +00:00
kmillikin@chromium.org
dde853a4ad
Small change to stack checks in unoptimized code.
...
The stack checks include a loop nesting depth encoded in the code stream
after the call to the stack check stub. Change the code to jump around this
instruction as well as the call when the stack check is OK.
Review URL: http://codereview.chromium.org/6005014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6204 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-06 13:48:12 +00:00
whesse@chromium.org
2655060546
Fix errors in x64 crankshaft port, add failing tests to test expectations.
...
Review URL: http://codereview.chromium.org/6104004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6203 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-06 13:29:22 +00:00
sgjesse@chromium.org
7cc0667457
Fixed some tabs left in d8.js
...
TBR=mark.lam@palm.com
Review URL: http://codereview.chromium.org/6029011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6202 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-06 13:27:10 +00:00
sgjesse@chromium.org
2957881a26
Misc debugger enhancements and bug fixes.
...
1. Added gdb style debugger commands (and their shortcuts) for d8.
These include:
- s[tep] : step into the current statement.
- s[tep]i[n]: step into the current statement with the minimum step.
- n[ext] : step to the next statement.
- fin[ish] : step out of the current function.
- cond : setting conditions on breakpoints.
- d[elete] : deletes breakpoints.
- en[able]|dis[able]: enables/disables breakpoints including
exception breakpoints.
- ignore : ignores a breakpoint for a specified period.
- inf[o] ar[gs] : info on arguments of the current function.
- inf[o] lo[cals] : info on local vars of the current function.
- inf[o] br[eakpoints] : info on breakpoints.
- l[ist] : similar to source, but allows the user to continually
dump subsequent lines of source code either in the
forward or backward direction.
- quit / exit / disconnect : terminates the remote debugger
session.
NOTE: Active breakpoints will automatically be disabled when
the remote debugger detaches. This allows v8 to continue to
run without worrying about a loss of a debugger session.
2. Added support for breaking the debugger by simply typing ENTER.
The break command is now optional.
3. Once the debugger is broken, the user can now just type ENTER
to repeat the last command. This is useful to functionality that
needs to be invoked repeatedly e.g. step, list.
4. Added more verbose descriptions in d8's help.
5. Fixed a line and column number offset bug in the listing of breakpoint
line and column numbers.
6. Added a gc command to allow GCs to be requested from the debugger
interface. The plumbing for requesting different types of GCs is
there, but the underlying implementation currently only triggers a
full mark-compact GC. The command also returns the before and after
sizes of the heap.
7. Added trace json, and flags commands that are not published in help.
trace json is used for tracing the debugger packets send from and
received by d8. flags is for setting v8 flags. These are useful for
people debugging v8 itself, but not necessarily users of v8.
8. Added the ability to enable and disable break on all / uncaught
exceptions in to d8.
9. Added a fix to prevent the Debugger Agent from being re-instantiated
if one already exists.
10. Added the ability to filter results of the script command by matching
text or numbers on the results.
11. Added v8 flags to enable/disable the sending of debugger BeforeCompile,
AfterCompile, and ScriptCollected events.
12. Fixed some undefined value bugs that resulted in v8 or the debugger
failing.
13. Added a few minor WEBOS__ customizations (analogous to ANDROID
customizations).
Patch by Mark Lam from Hewlett-Packard Development Company, LP
Review URL: http://codereview.chromium.org/5980006
Review URL: http://codereview.chromium.org/6086010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6200 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-06 13:14:32 +00:00
danno@chromium.org
90445b33a4
Implement DoFunctionLiteral on ARM.
...
Review URL: http://codereview.chromium.org/6112001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6199 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-06 12:53:59 +00:00
sgjesse@chromium.org
2b7596a516
Instanceof slow case bind is incorrect.
...
Currently, the bind for the slow label is after the pushing of the
args registers which renders the args pushing dead code because there
is a Ret preceeding it. The comments also imply that the arg pushing
should be part of the InvokeBuiltins tail call.
Patch by Mark Lam from Hewlett-Packard Development Company, LP
Review URL: http://codereview.chromium.org/6107001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6198 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-06 12:41:41 +00:00
sgjesse@chromium.org
68ddff5f90
ARM: Change a number of lithium instruction operands to be in registers
...
Using operands which could possible be in stack slots would require a load instruction anyway, so having the register allocator putting them into registers seems most logical.
Review URL: http://codereview.chromium.org/6046014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6196 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-06 12:21:06 +00:00
sgjesse@chromium.org
7c0c72eb2c
ARM: Fix a bug in the lithium arguments support
...
Got the comparison wrong and fortot to actually set the flags.
Review URL: http://codereview.chromium.org/6085010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6195 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-06 10:56:23 +00:00
fschneider@chromium.org
35533bee36
Clean up code for type feedback a bit.
...
Remove unused functions and parameters and remove the parts of the
code that mention the old GenericBinaryOpStub. It is not used together
with Crankshaft and replaced with TypeRecordingBinaryOpStub.
Review URL: http://codereview.chromium.org/6075012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6194 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-06 10:10:26 +00:00
ager@chromium.org
af09d94ecd
ARM: support regexp literals in lithium-codegen-arm. Also, update
...
comment on the AllocateInNewSpace macroassembler method.
Review URL: http://codereview.chromium.org/5965014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6192 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-06 08:56:29 +00:00
kmillikin@chromium.org
9a096e643a
Fix an bug in deoptimization after polymorphic calls in effect contexts.
...
For polymorphic calls (also loads and stores) we construct a type switch
graph that has a basic block merging all the variants. There is an
environment simulation before the goto at the end of all the predecessor
blocks. This simulation is used to define the environment on entry to the
successor block, and captures the return value of the call. In effect
contexts, this value should not be present in the environment.
The fix is to use the AST context to decide whether to have this value in
the join node's environment at all.
BUG=1014
Review URL: http://codereview.chromium.org/6065014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6189 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-06 07:38:19 +00:00
sgjesse@chromium.org
c26bd162f8
ARM: support arguments access in lithium-codegen-arm.
...
Review URL: http://codereview.chromium.org/5989013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6188 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-06 07:28:51 +00:00
whesse@chromium.org
0ba1623995
Add deoptimization support to full-codegen-x64.cc (insert PrepareForBailout in many places.)
...
Review URL: http://codereview.chromium.org/6031014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6187 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-05 17:09:24 +00:00
sgjesse@chromium.org
9bc3a16af0
Fix bug in instanceof stub
...
If the instanceof stub was requested to deliver true/false objects as the result instead of 0/1 then 0/1 was actually returned if the builtin INSTANCE_OF ended up being called. This is now fixed.
BUG=v8:1020
TEST=test/mjsunit/regress/regress-1020.js
Review URL: http://codereview.chromium.org/6014013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6185 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-05 14:19:12 +00:00
sgjesse@chromium.org
3c2c1d2113
Revert r6180 as it caused test failures
...
TBR=ricow@chromium.org
Review URL: http://codereview.chromium.org/6080009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6183 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-05 14:03:38 +00:00
sandholm@chromium.org
e90249bde1
Avoid double checking for IS_NUMBER by calling NonNumToNum instead of ToNumber
...
when the argument is known not to be a number.
Review URL: http://codereview.chromium.org/6061008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6181 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-05 13:52:00 +00:00
sgjesse@chromium.org
8669f630c0
Misc debugger enhancements and bug fixes.
...
1. Added gdb style debugger commands (and their shortcuts) for d8.
These include:
- s[tep] : step into the current statement.
- s[tep]i[n]: step into the current statement with the minimum step.
- n[ext] : step to the next statement.
- fin[ish] : step out of the current function.
- cond : setting conditions on breakpoints.
- d[elete] : deletes breakpoints.
- en[able]|dis[able]: enables/disables breakpoints including
exception breakpoints.
- ignore : ignores a breakpoint for a specified period.
- inf[o] ar[gs] : info on arguments of the current function.
- inf[o] lo[cals] : info on local vars of the current function.
- inf[o] br[eakpoints] : info on breakpoints.
- l[ist] : similar to source, but allows the user to continually
dump subsequent lines of source code either in the
forward or backward direction.
- quit / exit / disconnect : terminates the remote debugger
session.
NOTE: Active breakpoints will automatically be disabled when
the remote debugger detaches. This allows v8 to continue to
run without worrying about a loss of a debugger session.
2. Added support for breaking the debugger by simply typing ENTER.
The break command is now optional.
3. Once the debugger is broken, the user can now just type ENTER
to repeat the last command. This is useful to functionality that
needs to be invoked repeatedly e.g. step, list.
4. Added more verbose descriptions in d8's help.
5. Fixed a line and column number offset bug in the listing of breakpoint
line and column numbers.
6. Added a gc command to allow GCs to be requested from the debugger
interface. The plumbing for requesting different types of GCs is
there, but the underlying implementation currently only triggers a
full mark-compact GC. The command also returns the before and after
sizes of the heap.
7. Added trace json, and flags commands that are not published in help.
trace json is used for tracing the debugger packets send from and
received by d8. flags is for setting v8 flags. These are useful for
people debugging v8 itself, but not necessarily users of v8.
8. Added the ability to enable and disable break on all / uncaught
exceptions in to d8.
9. Added a fix to prevent the Debugger Agent from being re-instantiated
if one already exists.
10. Added the ability to filter results of the script command by matching
text or numbers on the results.
11. Added v8 flags to enable/disable the sending of debugger BeforeCompile,
AfterCompile, and ScriptCollected events.
12. Fixed some undefined value bugs that resulted in v8 or the debugger
failing.
13. Added a few minor WEBOS__ customizations (analogous to ANDROID
customizations).
Patch by Mark Lam from Hewlett-Packard Development Company, LP
Review URL: http://codereview.chromium.org/5980006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6180 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-05 13:47:53 +00:00
sgjesse@chromium.org
344e534bde
Change a static_cast to BitCast
...
Hopefuly this will make the Win32 builder happy
TBR=ricow@chromium.org
Review URL: http://codereview.chromium.org/6038007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6179 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-05 13:03:21 +00:00
whesse@chromium.org
3055ca216d
Add private members to lithium classes on X64. Add implementation file lithium-x64.cc.
...
Review URL: http://codereview.chromium.org/6015014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6178 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-05 12:31:31 +00:00
whesse@chromium.org
7cdd2f6494
Add partially-implemented TypeRecordingBinaryOpStub to x64 platform.
...
Review URL: http://codereview.chromium.org/6084010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6177 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-05 12:28:47 +00:00
sgjesse@chromium.org
f5fb75ce09
Fix comparison bug on ARM.
...
Retrieves the result of VFP comparison from the VFP status register.
BUG=none
TEST=none
Patch by Martyn Capewell from ARM Ltd.
Review URL: http://codereview.chromium.org/6020014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6176 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-05 12:06:32 +00:00
sgjesse@chromium.org
0cd558a355
Fix the build breakge on x64 and ARM after r6173
...
The instanceof changes was not fully ported to x64 and ARM.
Review URL: http://codereview.chromium.org/6031013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6175 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-05 12:01:53 +00:00
fschneider@chromium.org
83c7c699eb
Do not transform a/b into a * (1/b) in the parser for integer constants.
...
Strength reduction should be performed at a later stage. This
change avoid going to a double representation the case of
integer division.
Review URL: http://codereview.chromium.org/6044010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6174 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-05 11:25:42 +00:00
sgjesse@chromium.org
7311e10fdb
Optimize instanceof further
...
If the instance of is performed against what is beliwed to be a constant global function inline the instance of check and have the call to the instanceof stub in deferred code. The inlined check will be patched by the instanceof stub when called from deferred code. This is indicated by the lithium instruction LInstanceOfKnownGlobal.
To help the patching the delta from the return address to the patch site is placed just below the return address in the edi slot of the pushad/popad ares. This is safe because the edi register (which is pushed last) is a temporary for the lithium instruction.
As the instanceof stub can call other JavaScript an additional marking for saving all double registers have been added.
Also tweaked the instanceof stub to produce true/false objects instead of 0/1 for the case with deferred code.
Review URL: http://codereview.chromium.org/5990005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6173 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-05 11:17:37 +00:00
lrn@chromium.org
034f37efb5
Prepare push to trunk. Now working on version 3.0.7.
...
Review URL: http://codereview.chromium.org/6006011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6167 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-05 09:11:20 +00:00
danno@chromium.org
498841c743
Implement ARM lithium support for ObjectLiteral.
...
Review URL: http://codereview.chromium.org/6099006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6166 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-05 09:04:06 +00:00
danno@chromium.org
d44f3a0223
Implement Lithium ARM support for ArrayLiteral.
...
TBR=kasperl@chromium.org
Review URL: http://codereview.chromium.org/5988008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6165 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-04 14:48:25 +00:00
sgjesse@chromium.org
806368bc92
Fix presumbit error
...
TBR=karlklose@chromium.org
Review URL: http://codereview.chromium.org/6046012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6164 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-04 14:35:34 +00:00
fschneider@chromium.org
5bd44d212a
Remove unused policy from register allocator.
...
DefineSameAsAny is never used and currently does exactly the
same as DefineSameAsFirst.
Review URL: http://codereview.chromium.org/6025014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6163 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-04 14:35:01 +00:00
sgjesse@chromium.org
71d863e5de
Set a fixed scratch register for ARM code generation
...
r9 is now set as a fixed scratch register for ARM code generation. removed some unneeded allocation of temporary registers and use the scratch register instead.
Review URL: http://codereview.chromium.org/5976014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6162 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-04 14:32:54 +00:00
ricow@chromium.org
aa396c5779
Allow getters and setters on JSArray elements.
...
This fixes bug 900
Review URL: http://codereview.chromium.org/5959009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6158 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-04 13:59:34 +00:00
sgjesse@chromium.org
394f240e99
Fix the Mac OS debug build
...
Review URL: http://codereview.chromium.org/6046010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6157 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-04 13:23:33 +00:00
karlklose@chromium.org
20c858d514
First part of lithium ARM port.
...
Implement LoadNamedField, CallConstantFunction, CmpMapAndBranch, JSArrayLength, BoundsCheck, IsNull, CallFunction, and CallStub in the ARM lithium codegenerator.
BUG=
TEST=
Review URL: http://codereview.chromium.org/6069010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6155 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-04 13:02:51 +00:00
lrn@chromium.org
e7ecb74b8a
Don't let JSON parsed objects hit inherited setters.
...
Review URL: http://codereview.chromium.org/6101001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6154 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-04 12:19:55 +00:00
sgjesse@chromium.org
9af48317d5
Fix Windows compilation
...
Use strncpy_s instaad of strncpy to avoid warning.
Review URL: http://codereview.chromium.org/6056006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6151 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-04 12:11:01 +00:00
lrn@chromium.org
351f80adee
Fix compile-problem in (currently) unused stand-alone preparser function.
...
Allow object initializers to define getters using string and number literals.
Review URL: http://codereview.chromium.org/5985010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6150 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-04 12:07:16 +00:00
vegorov@chromium.org
4dc3282556
Add constraints verification to LAllocator::MarkAsCall().
...
Review URL: http://codereview.chromium.org/6069012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6149 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-04 11:36:20 +00:00
sgjesse@chromium.org
4c258dc0dd
Fix presubmit error
...
TBR=ricow@chromium.org
Review URL: http://codereview.chromium.org/6093006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6148 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-04 11:28:17 +00:00
lrn@chromium.org
59aea66dfa
Fix bug that happens when the first non-ASCII character of a literal is at a power-of-two position.
...
Review URL: http://codereview.chromium.org/6044009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6147 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-04 11:25:59 +00:00
sgjesse@chromium.org
d5b94e9704
Addresses some performance regression in the GenericBinaryOpStub on ARM following Crankshaft introduction.
...
BUG=none
TEST=none
Patch by Rodolph Perfetta from ARM Ltd.
Review URL: http://codereview.chromium.org/5781010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6146 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-04 11:02:58 +00:00
sgjesse@chromium.org
1dc835a53a
Avoid using std::string in Max OS platform file.
...
Review URL: http://codereview.chromium.org/6001012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6145 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-04 11:02:39 +00:00
sgjesse@chromium.org
b85ac2465f
Fix presubmit error
...
TBR=whesse@chromium.org
Review URL: http://codereview.chromium.org/6008010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6144 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-04 10:25:06 +00:00
whesse@chromium.org
7fa57552fa
Cleanup of x64 code. Rearrange functions in ic-x64.cc to match order in ic-ia32.cc. Remove unused declarations, and move a constant to assembler-x64.h.
...
Review URL: http://codereview.chromium.org/6020012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6143 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-04 09:50:35 +00:00
sgjesse@chromium.org
c89021d162
Added labelled thread names to help with some debugging activity. Right now,
...
the only platform that it works on is linux (using the prctl API to set the
names of the threads). Other platforms are setup to build properly if the
flag is set, but their thread names are not currently set.
Patch by Mark Lam from Hewlett-Packard Development Company, LP
Review URL: http://codereview.chromium.org/6070009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6141 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-04 09:09:50 +00:00
whesse@chromium.org
c28bde775c
Reorder the functions in stub-cache-x64.cc, so they are in the same order as in stub-cache-ia32.cc.
...
Review URL: http://codereview.chromium.org/6085006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6140 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-04 09:02:53 +00:00
vegorov@chromium.org
1cf6f3a26c
Move first_artificial_register_ initialization to the right place.
...
Review URL: http://codereview.chromium.org/6009010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6139 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-03 19:16:29 +00:00
vegorov@chromium.org
11d1188e83
Remember required register kind when creating artificial virtual register.
...
Review URL: http://codereview.chromium.org/6065010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6138 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-03 17:02:15 +00:00
kmillikin@chromium.org
c1fd8bcf60
Fix a bug in deoptimization environments.
...
The function HEnvironment::SetExpressionStackAt did not update the
environment's history. This function is used to patch the bailout
environment for count operations and global function calls.
Reorganize class HEnvironment to make it fit V8's style a bit better
and to try to add some sanity to which C++ functions are intended to
be inlined.
Remove the flag --trace-environment which merely duplicated data in
the hydrogen.cfg file except without enough context to be useful.
BUG=1004
Review URL: http://codereview.chromium.org/5992011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6137 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-03 16:57:46 +00:00
whesse@chromium.org
3d7d258339
Remove RecordWriteStub from X64 and ARM platforms.
...
Review URL: http://codereview.chromium.org/5986014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6136 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-03 14:59:12 +00:00
sgjesse@chromium.org
04bf6c5c61
Use the macro assembler Set instead of explicit xor for clearing registers.
...
Review URL: http://codereview.chromium.org/6015011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6135 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-03 11:39:22 +00:00
sandholm@chromium.org
cdf948c33d
Simplify ScanJsonString.
...
Review URL: http://codereview.chromium.org/6009009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6134 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-03 10:51:34 +00:00
lrn@chromium.org
b9bd4952a7
Changed uncast -1 in unsigned context to use constant kSentinel.
...
Review URL: http://codereview.chromium.org/5993006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6133 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-03 10:28:39 +00:00
fschneider@chromium.org
c8c04008df
Prepare push to trunk. Now working on 3.0.6.
...
Review URL: http://codereview.chromium.org/6005011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6129 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-03 10:02:17 +00:00
sgjesse@chromium.org
cbfcef150a
Added context sensitive prompt for remote debugger. It now shows "> "
...
when the debuggee is running, and "dbg> " when the debuggee is stopped.
Patch by Mark Lam from Hewlett-Packard Development Company, LP
Review URL: http://codereview.chromium.org/5966004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6126 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-03 07:56:30 +00:00
fschneider@chromium.org
0a128e5ae7
Optimize array-length and fast element loads.
...
1. Separating out the instance-type check from the array-length operation.
2. I also changed the bounds-check on keyed loads to use the length property
for JS arrays (like we do for array stores).
The new pattern should use less registers and allow more checks to be eliminated.
Review URL: http://codereview.chromium.org/5961016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6125 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-30 19:30:42 +00:00
vitalyr@chromium.org
24e560fe11
Don't emit a write barrier when storing a known old space value.
...
Review URL: http://codereview.chromium.org/6072009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6120 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-25 14:14:16 +00:00
vitalyr@chromium.org
da8c3550bf
Force inlining of BodyVisitorBase::IteratePointers.
...
Review URL: http://codereview.chromium.org/6042007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6119 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-24 14:44:15 +00:00
peter.rybin@gmail.com
fba2ef6c0f
Fix variable conflict in nested for statement
...
Review URL: http://codereview.chromium.org/5961011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6118 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-24 02:44:35 +00:00
karlklose@chromium.org
16800adf57
Fix inlining of instanceof stub for ARM (r6093).
...
Review URL: http://codereview.chromium.org/6055006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6117 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-23 16:33:30 +00:00
lrn@chromium.org
c9928c0595
Change scanner buffers to not use utf-8.
...
Make preparser keep its symbol text itself instead of relying on the scanner.
Review URL: http://codereview.chromium.org/6075005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6115 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-22 20:14:19 +00:00
vitalyr@chromium.org
4e32d5ad1a
Fix win64 build.
...
Review URL: http://codereview.chromium.org/6050005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6114 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-22 16:07:59 +00:00
antonm@chromium.org
0071bf92f6
Do not turn source array elements into writable if doing Array.slice.
...
Array.slice doesn't mutate original array, so it's fine with read only data.
Plus nuke unnecessary cast.
Review URL: http://codereview.chromium.org/5972004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6113 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-22 15:45:48 +00:00
vitalyr@chromium.org
c5916f552f
Support load function prototype in hydrogen/lithium.
...
Review URL: http://codereview.chromium.org/6009005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6112 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-22 15:43:32 +00:00
sandholm@chromium.org
37567c42da
Introduce NUMBER_IS_FINITE macro to avoid ToNumber() conversion.
...
Review URL: http://codereview.chromium.org/5977006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6111 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-22 13:19:25 +00:00
sgjesse@chromium.org
716e6282e9
Refactoring out object printing functions into objects-printer.cc.
...
Patch by Mark Lam from Hewlett-Packard Development Company, LP
Review URL: http://codereview.chromium.org/6083001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6110 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-22 13:04:47 +00:00
vitalyr@chromium.org
52d2ce3b5a
Clean up is-ASCII checks.
...
Review URL: http://codereview.chromium.org/5963003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6109 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-22 11:31:18 +00:00
whesse@chromium.org
4330070e32
Use Assembler::Set() to assign constants to registers in more places. Commit of http://codereview.chromium.org/6016007/ .
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6104 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-22 09:55:19 +00:00
erik.corry@gmail.com
92d163e156
Fix a couple of cast errors for gcc-3.4.3. Patch by Ryan Dahl. http://codereview.chromium.org/5976006/
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6103 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-22 09:49:26 +00:00
whesse@chromium.org
1c63e53675
Fix assert error in r6083 by allowing stub calls from TranscendentalCacheStub.
...
Review URL: http://codereview.chromium.org/6021004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6100 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-21 15:10:45 +00:00
ager@chromium.org
a609cf61c5
Avoid decoding overhead when allocating ascii strings.
...
The assumption is that most utf8 strings allocated are actually ascii
and that if they are not we will encounter a non-ascii char pretty
quickly.
Review URL: http://codereview.chromium.org/6072004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6099 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-21 13:24:23 +00:00
whesse@chromium.org
bc5fb1a148
Prepare push to trunk. Now working on version 3.0.5.
...
Review URL: http://codereview.chromium.org/6056003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6095 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-21 12:05:32 +00:00
kmillikin@chromium.org
7171df741a
Fix for issue 1007.
...
The Hydrogen environment only tracks values for stack-allocated variables.
It is a precondition of HEnvironment::Lookup(variable) that variable is
stack-allocated. The check was missing at one call site.
Review URL: http://codereview.chromium.org/6034004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6094 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-21 11:21:04 +00:00
karlklose@chromium.org
16837c1f33
Implement inlining of instanceof tests on ARM.
...
TBR=sgjesse
BUG=
TEST=
Review URL: http://codereview.chromium.org/6004005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6093 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-21 10:52:50 +00:00
vegorov@chromium.org
640243a975
Fix leak of a global handle in Debug::Load().
...
Bootstrapper::CreateEnvironment() returns a global handle to the created context so there is no need to create another one explicitly.
BUG=v8:1006
Review URL: http://codereview.chromium.org/6048003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6092 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-21 10:51:50 +00:00
mikhail.naganov@gmail.com
a968ed0470
Implement HeapIterator that skips over unreachable objects.
...
I'm using it when creating heap snapshots. I decided that it will
be more convenient to have it as a separate piece of code, instead
of embedding into the snapshot generator.
Review URL: http://codereview.chromium.org/6014004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6091 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-21 10:49:40 +00:00
whesse@chromium.org
8df57d740d
Ensure that the SSE2 TranscendentalCache stub calls GC if it runs out of memory in new space. Previously, it would just use an alternate algorithm, that did not cache the result.
...
Review URL: http://codereview.chromium.org/5996001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6090 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-21 10:25:51 +00:00
lrn@chromium.org
5741575327
Tweak quicksort loop to reduce number of compares slightly.
...
Review URL: http://codereview.chromium.org/6039002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6087 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-20 14:57:51 +00:00
whesse@chromium.org
da934d1f26
Fix error in r6083
...
Review URL: http://codereview.chromium.org/6026004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6086 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-20 14:42:05 +00:00
antonm@chromium.org
ae476ecd6c
Teach C++ ArraySlice builtin to deal with arguments object.
...
Array.prototype.slice.call(arguments, ...) idiom is pretty common (up to 97% of invocations
in GMail), so we'd better handle it efficiently too.
Review URL: http://codereview.chromium.org/6034003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6085 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-20 14:41:41 +00:00
vitalyr@chromium.org
c35cd839ae
Allow 4 more fast properties for objects.
...
Review URL: http://codereview.chromium.org/6016003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6084 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-20 14:20:43 +00:00
whesse@chromium.org
5656d64ece
Add untagged double versions of Math.sin and Math.cos. Merge classes TranscendentalCacheStub and TranscendentalCacheSSE2Stub.
...
Review URL: http://codereview.chromium.org/5996002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6083 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-20 13:52:14 +00:00
fschneider@chromium.org
7cc61e6973
Fix GVN for polymorphic loads.
...
They must not be hoisted above the compare-map-and-branch.
Review URL: http://codereview.chromium.org/5971003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6082 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-20 13:18:47 +00:00
sandholm@chromium.org
a496150a9e
Minor optimization in regexp parse.
...
Review URL: http://codereview.chromium.org/6014002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6081 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-20 10:44:41 +00:00
sgjesse@chromium.org
e21d76a0e3
1. Added support for object printing for release mode using the
...
objectprint=on (defaults to off) option (which defines OBJECT_PRINT).
2. Added the ability to print objects to a specified file instead of
just stdout.
3. Added a use_verbose_printer flag (true by default) to allow some
object printouts to be less verbose when the flag is false.
4. Fixed a bug in VSNPrintF() where it can potentially write into an
empty char vector.
Patch by Mark Lam from Hewlett-Packard Development Company, LP
Review URL: http://codereview.chromium.org/5998001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6080 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-20 10:38:19 +00:00
lrn@chromium.org
c91f5606d0
Fix smi-comparison to use correct macros in X64-SwapElements.
...
Review URL: http://codereview.chromium.org/5967002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6079 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-20 09:38:56 +00:00
erik.corry@gmail.com
e24362b50f
Remove the atomic/thread safe stuff from the chunk table, since we don't
...
use cross thread synchronization in Crankshaft.
Review URL: http://codereview.chromium.org/5979001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6075 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-17 14:50:24 +00:00
vitalyr@chromium.org
b2dbea6c60
Extend code printing:
...
o Add --print-unopt-code to print unoptimized code before printing
optimized code based on it. This is useful to see the states of ICs
and the effects of code patching.
o Use debug function names in disassembly output.
Review URL: http://codereview.chromium.org/5959003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6074 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-17 14:16:00 +00:00
fschneider@chromium.org
6cc0310a72
Mark map-transition stores as map-changing instructions.
...
This prevents code motion from hoisting map-checks across such stores
which may result in unnecessary deoptimizations.
In the following example program we would move a map-check from the inner loop out before the outer loop which is not desirable:
function f() {
var o = {};
var j = 0;
o.a = 1;
do {
o.b = 6; // Map transition
for (var i=0; i<10; i++) {
o.a = o.b + i;
}
} while(++j < 1) {}
}
for (var i = 0; i < 1000000; i++) f();
Review URL: http://codereview.chromium.org/5991001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6071 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-17 13:44:19 +00:00
ager@chromium.org
06ac3b18a0
When setting property on a context extension object do not inherit the
...
attributes from an existing property on a prototype object.
Review URL: http://codereview.chromium.org/5995002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6068 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-17 13:04:53 +00:00
sgjesse@chromium.org
648fcd906e
Adding Date::ResetCache() API so that the cache values in the Date object
...
can be reset to allow DST / timezone changes to be re-cached and reflected
in the Date object.
Patch by Mark Lam from Hewlett-Packard Development Company, LP
Review URL: http://codereview.chromium.org/5978001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6067 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-17 12:45:27 +00:00
vitalyr@chromium.org
8ff6c23c84
Allow rapid socket reuse on POSIX platforms.
...
Review URL: http://codereview.chromium.org/5990001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6066 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-17 12:31:42 +00:00
sandholm@chromium.org
578e70a552
Improve regexp split, replace and test.
...
Review URL: http://codereview.chromium.org/5959002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6065 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-17 11:57:10 +00:00
whesse@chromium.org
83b28cd1fc
Avoid comparing a pointer-to-member to NULL, even though C++ is supposed to support it.
...
Review URL: http://codereview.chromium.org/5988001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6064 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-17 11:52:10 +00:00
lrn@chromium.org
9f1bcdf8ac
Change quicksort pivot from random to median-of-three.
...
Tweak quicksort bailout parameter to minimize time.
Review URL: http://codereview.chromium.org/5962003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6063 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-17 10:06:11 +00:00
erik.corry@gmail.com
7b6d7f5ba4
Add a couple of missing includes.
...
Review URL: http://codereview.chromium.org/5899001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6062 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-17 08:58:04 +00:00
ager@chromium.org
0cb7623801
Prepare push to trunk. Now working on version 3.0.4.
...
Also fix files because of missing prepare for push of version 3.0.2
which was pushed directly.
Review URL: http://codereview.chromium.org/5962002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6060 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-17 08:24:54 +00:00
vitalyr@chromium.org
2ba48c0a45
Support loading constant functions in hydrogen.
...
Review URL: http://codereview.chromium.org/5878004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6057 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-16 22:30:53 +00:00
fschneider@chromium.org
73737fcdb6
Fix bugs in the range analysis for integers.
...
The overflow conditions were not correctly detected for
certain add, sub and mul instructions.
I replaced the previous code by using 64-bit arithmetic
to correctly identify overflows for *, + and -.
Review URL: http://codereview.chromium.org/5860009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6055 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-16 18:01:36 +00:00
vitalyr@chromium.org
5e86c6c752
Use near labels in write barrier code.
...
Review URL: http://codereview.chromium.org/5939003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6054 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-16 17:45:26 +00:00
vitalyr@chromium.org
3dd300df48
Emit better code when pushing a constant.
...
Review URL: http://codereview.chromium.org/5884003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6053 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-16 16:56:45 +00:00
ager@chromium.org
6e30a77ab5
A number of instructions use GVN but do not provide a comparison
...
function for the data. This leads to wrong results where operations
are wrongly assumed to have the same value as a previous (different)
operation.
Provide the data comparison functions.
BUG=995
Review URL: http://codereview.chromium.org/5898003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6052 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-16 15:40:02 +00:00
kmillikin@chromium.org
4f231f59b4
Fix an issue discovered in regress-969.
...
When running with 10 stress runs we get polymorphic stores. This revealed
an incorrect bailout ID for the state following a polymorphic store. The ID
should be the internal ID of the assignment side-effect, not the ID of the
end of the expression.
Review URL: http://codereview.chromium.org/5885003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6051 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-16 14:18:41 +00:00
ricow@chromium.org
a362f1d0f7
Add flag for running with a non standard number of stress-runs.
...
This allows easy testing with more than 5/2 stress runs in
release/debug and will allow us to have a nightly run with e.g., 10
stress runs in debug mode.
Review URL: http://codereview.chromium.org/5903003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6050 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-16 13:24:23 +00:00
kmillikin@chromium.org
4a6ef3ee28
Fix issue 977, occasional failure of the DeltaBlue benchmark.
...
Before, when we deoptimized after a branch we jumped to before the branch
was taken in the unoptimized code with a token value that indicated when
edge to take. There was a lot of machinery to track this value through the
short-circuit logical operations and logical negation, and to handle it
properly at inline function return sites. There was also machinery to
prevent incorrectly seeing this environment with the extra value never
actually materialized in the unoptimized code.
Instead, now we deoptimize directly to one of the targets of the branch.
Much but not yet all of the extra machinery has been removed or simplified.
The cost is that branching control structures (the looping statements, if
statements, conditional expressions, and the short-circuit binary logical
operations) need extra AST IDs to identify the branch targets.
Review URL: http://codereview.chromium.org/5908001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6049 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-16 13:13:36 +00:00
ager@chromium.org
1b67320800
Perform more aggressive time to NaN conversions. Our internal date
...
methods rely on the time values passed in being within a certain range
- not significantly larger than the the ECMA 262 specified time
range. When creating a time, always make it NaN if there is no way
that it can be within range even after UTC conversion.
Review URL: http://codereview.chromium.org/5905003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6048 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-16 13:02:09 +00:00
lrn@chromium.org
b20f0968fa
Change DefaultString and DefaultNumber to match the spec required behavior.
...
Previously it did two reads of the .toString and .valueOf properties where
only one was allowed.
Review URL: http://codereview.chromium.org/5950001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6047 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-16 12:49:55 +00:00
mikhail.naganov@gmail.com
75d5ad65c4
Fix presubmit errors
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6046 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-16 12:26:04 +00:00
ricow@chromium.org
357afa385b
Change Object.defineProperty to accept undefined as getters and setters and to correctly accept overriding an accessor with a data property.
...
In the past we only accepted functions as argument for setting an
accessor. Since one should be able to set an accessor to undefined
this had to be changed to take either.
In addition, we did not lookup properties in the prototype chain,
causing us to call the setter of an existing accessor up the prototype
chain when trying to replace an existing accessor (that was not local)
with a data property.
Review URL: http://codereview.chromium.org/5861006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6045 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-16 12:21:08 +00:00
mikhail.naganov@gmail.com
e521db4afa
Make V8 compilable with profiling support turned off.
...
BUG=990
Review URL: http://codereview.chromium.org/5890003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6044 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-16 12:14:56 +00:00
fschneider@chromium.org
cdc7d3908e
Fix a SEGV in the register allocator.
...
This occasionally caused the regress-806 unit test to crash.
Review URL: http://codereview.chromium.org/5913002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6043 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-16 12:01:22 +00:00
sgjesse@chromium.org
d559d8c6c0
IA32: Optimize instanceof
...
The instanceoff stub now supports arguments in registers and checks for null,
smi and string values without going to runtime.
Needs porting to X64 and ARM.
Review URL: http://codereview.chromium.org/5828004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6042 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-16 08:58:42 +00:00
peter.rybin@gmail.com
e9c989b8fa
Fix evaluate with context debug protocol
...
Review URL: http://codereview.chromium.org/5866002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6039 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-15 19:55:51 +00:00
vegorov@chromium.org
ed59e77256
Fix several register allocation issues revealed by fuzzer:
...
- LIsObject had incorrect contraint for value input;
- Temporaries had incorrect lifetime intervals;
- Live ranges for live_out values was not covering the whole block.
Review URL: http://codereview.chromium.org/5899002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6038 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-15 18:13:02 +00:00
vitalyr@chromium.org
7a3fd2aa52
Deoptimize non-smi switch cases if they are reached.
...
This way if the type oracle says an unreachable clause has a non-smi
type, we can still emit optimized code instead of doing an early
bailout.
This change depends of Florian's r5970.
Review URL: http://codereview.chromium.org/5812005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6037 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-15 17:11:11 +00:00
kmillikin@chromium.org
bccab25564
Fix compilation on x64.
...
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/5873003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6036 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-15 16:37:17 +00:00
kmillikin@chromium.org
ace6290452
Fix issue 974.
...
When entering a finally block in unoptimized code, we unconditionally
save the accumulator register in the stack in case it holds a return
value or an exception. In the case of a break, continue, or falling
off the end of the try or catch block, this value is unpredictable and
not necessarily safe for GC.
Review URL: http://codereview.chromium.org/5883003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6035 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-15 16:14:29 +00:00
fschneider@chromium.org
c03c71a937
Emit a load of the elements array only before the first store.
...
This avoid emitting the load for empty and constant array literals.
Review URL: http://codereview.chromium.org/5697006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6034 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-15 16:12:55 +00:00
whesse@chromium.org
564d65958f
Mark TranscendentalCacheSSE2Stub as allowing internal stub calls. Mark pextrd instruction as requiring SSE 4.1.
...
Review URL: http://codereview.chromium.org/5901001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6033 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-15 16:10:13 +00:00
ager@chromium.org
06a684d353
Fix deoptimization from %_MathPow. Do not prepare the stack for a C
...
call and then bailout without performing the call.
In order to not duplicate code, convert both heap number and smi to a
double in an xmm register if possible. Then setup the stack and call
the C function.
BUG=http://code.google.com/p/v8/issues/detail?id=986
Review URL: http://codereview.chromium.org/5900001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6032 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-15 15:25:53 +00:00
vegorov@chromium.org
655b30858d
Fix issue 982.
...
When splitting at the beginning of a use interval assign coinciding position to the split child instead of leaving it to parent.
BUG=v8:982
Review URL: http://codereview.chromium.org/5898001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6031 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-15 14:35:46 +00:00
fschneider@chromium.org
b93a0f5d9a
Second attempt: Improve our type feedback by recogizining never-executed IC calls for binary operations.
...
This is an improved version of my earlier change r5970. It avoids degrading the
non-optimized code.
Initially we emit a conditional branch that is either always- or never-taken
after a smi-check (depending on whether we test for smi for for non-smi)
Since test-eax always sets the carry-flag to 0 we use jump-if-carry and
jump-if-not-carry.
The first invocation of the stub patches a jc with a jz and
jnc with a jnz-instruction so that the code looks exactly as it was
without patching. The only difference is the test- or nop-instruction
after the IC-call.
Review URL: http://codereview.chromium.org/5763004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6030 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-15 13:56:41 +00:00
erik.corry@gmail.com
2996dca6aa
Support %_IsObject in Crankshaft.
...
Review URL: http://codereview.chromium.org/5806001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6027 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-15 12:32:19 +00:00
kmillikin@chromium.org
eb7b4e347e
Fix issue 979.
...
The issue is caused when deoptimizing to an internal AST ID in a
postfix increment or decrement operation on variable. This could
happen for a global variable. In that case, the optimized code was
not properly simulating an extra stack slot in the unoptimized code to
hold the original value.
Review URL: http://codereview.chromium.org/5871002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6025 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-15 11:47:05 +00:00
karlklose@chromium.org
5f962f2eb2
Add array bound checks to code generated for SwapElements. This fixes a bug that lead to a segfault when an array was modified while it was sorted.
...
Review URL: http://codereview.chromium.org/5686006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6020 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-15 09:52:58 +00:00
lrn@chromium.org
f118f44130
Fix regression in JSON serialization of RegExps.
...
Tweaks to the serialization.
Review URL: http://codereview.chromium.org/5676005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6018 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-15 09:31:05 +00:00
erik.corry@gmail.com
d25755eeea
Add some missing includes and other minor changes intended to keep
...
the distance between bleeding edge and the gc branch minimal.
Review URL: http://codereview.chromium.org/5788002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6016 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-15 08:07:27 +00:00
vitalyr@chromium.org
57e072298f
Merge math function ids and custom call generator ids.
...
Two old id types are replaced by builtin function ids. We can use
these in the code generators to emit custom code for the selected
functions.
Review URL: http://codereview.chromium.org/5767002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6013 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-14 18:53:48 +00:00
erik.corry@gmail.com
5b55e1ad9a
API: Correct documentation of String::WriteUtf8, String::Write
...
and String::WriteAscii and add test. Correct implementation of
String::Write, fixing bug 975 (the patch in that bug was not
used, however).
Review URL: http://codereview.chromium.org/5718005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6011 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-14 13:21:46 +00:00
whesse@chromium.org
c23c244add
Reapply change 5989, adding untagged double calls to Math.pow, with problem in generated code for TranscendentalCacheSSE2Stub (unguarded SSE 4.1 code) fixed.
...
Review URL: http://codereview.chromium.org/5726008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6010 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-14 13:21:29 +00:00
whesse@chromium.org
ce1473b257
Postpone interrupts during marking garbage collection. This allows the check for C stack overflow to function correctly.
...
Review URL: http://codereview.chromium.org/5685010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6006 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-14 11:48:42 +00:00
kmillikin@chromium.org
4c02d3cd4c
Fix assignment compilation bug on ARM and x64.
...
SVN revision 5993 ported changes to the unoptimizing compiler from
ia32 to ARM and x64. A call to AstContext::Plug was moved out of
FullCodeGenerator::EmitVariableAssignment and into the callers. One
call site was missed in both ports.
Review URL: http://codereview.chromium.org/5781008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6003 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-14 09:47:28 +00:00
sgjesse@chromium.org
d9c202752e
Initial attempt to add support for using gyp to build V8 itself
...
This is based on the structore used in chromium with a script wrapping the call to gyp itself and the default processing of common.gypi.
It is possible to build all our targets on Intel Linux for all architectures (ia32, x64 and ARM simulator). When this is committed I wil take a look at Windows.
See the README.txt file in the changelist for the current way of using it.
Review URL: http://codereview.chromium.org/5701001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6000 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-14 08:16:39 +00:00
peter.rybin@gmail.com
8c3e13cad8
Introduce additional context to evaluate operations
...
Review URL: http://codereview.chromium.org/5733001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5997 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-14 00:07:44 +00:00
kmillikin@chromium.org
3fe2325d6b
Prepare push to trunk. Now working on version 3.0.2.
...
Review URL: http://codereview.chromium.org/5763002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5994 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-13 17:50:29 +00:00
kmillikin@chromium.org
645ba163d3
Fix ARM and x64 compilation.
...
Fix compilation on ARM and x64 due to a change in the architecture-shared
API of the nonoptimizing code generator. Also added new PrepareForBailout
to ARM (they are not yet fully implemented on x64).
Review URL: http://codereview.chromium.org/5794002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5993 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-13 17:49:55 +00:00
whesse@chromium.org
fdf44a4bc7
Revert change 5989, which causes failures in some benchmarks.
...
Review URL: http://codereview.chromium.org/5804003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5991 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-13 16:34:59 +00:00
kmillikin@chromium.org
49f4c39d6d
Deoptimize to the proper target after assignment side effects.
...
This fixes V8 issue 989.
Before, assignments used the AST ID of the assignment expression to
mark the side effect of the store, which became a target for
deoptimization bailout for code after the assignment. In effect
contexts this environment included the value of the assignment, which
was unexpected by the unoptimized code.
Now we introduce a new assignment ID for AST node types that include
an assignment (Assignment, CountOperation, and ForInStatement) and use
it for the side effect of the store.
Review URL: http://codereview.chromium.org/5682010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5990 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-13 16:29:47 +00:00
whesse@chromium.org
1a008f28d5
Allow optimizing compiler to compute Math.log using untagged doubles.
...
Review URL: http://codereview.chromium.org/5741003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5989 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-13 14:37:19 +00:00
whesse@chromium.org
8f89006381
Align builtins-{arch}.cc on ia32 and x64 platforms by moving functions and editing.
...
Review URL: http://codereview.chromium.org/5781004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5984 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-13 12:24:29 +00:00
ager@chromium.org
f1b702b8ae
Landing for cira.
...
Adding experimental JavaScript internationalization API to V8 as an
extension. This CL implements Locale object only.
Each embeder has to decide whether to include this extension or not by
editing their build rules.
See ecmascript strawman document for details on i18n
API. http://wiki.ecmascript.org/doku.php?id=strawman:i18n_api
TEST=WebKit CL (in progress) will have layout tests for extension.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5983 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-13 12:23:32 +00:00
sandholm@chromium.org
425a221b02
Optimizing BuildResultFromMatchInfo, StringReplace and StringSplit.
...
Review URL: http://codereview.chromium.org/5708006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5982 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-13 12:19:10 +00:00
ager@chromium.org
1e494335bb
Make idle notification cleanup less aggressive. Do not clean up on
...
idle notifications after the one that causes the mark-compact
collection unless four or more garbage collections (scavenges) have
occurred.
The embedder should stop sending idle notifications once V8 returns
true from the IdleNotification call. This change is being defensive so
it will not hurt as badly if embedders continue to send idle
notifications.
Review URL: http://codereview.chromium.org/5726005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5981 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-13 12:14:30 +00:00
fschneider@chromium.org
edba069919
Revert 5973 as well (related to previous commit)
...
TBR=lrn@chromium.org ,
Review URL: http://codereview.chromium.org/5754004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5979 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-13 10:49:00 +00:00
mikhail.naganov@gmail.com
5cf643aa42
New heap profiler: add support for progress reporting and control.
...
As taking a snapshot of a large heap takes noticeable time, it's
good to be able to monitor and control it.
The change itself is small, big code deletes and additions are in
fact moves. The only significant change is simplification of
approximated retained sizes calculation algorithm.
Review URL: http://codereview.chromium.org/5687003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5978 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-13 10:42:06 +00:00
fschneider@chromium.org
b1a2cc1e48
Revert r5970 and r5975.
...
Review URL: http://codereview.chromium.org/5717005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5977 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-13 10:41:50 +00:00
erik.corry@gmail.com
9977abb42a
Fix incorrect assumption about young/old space allocation in
...
JSON stringify (introduced in r5951).
Review URL: http://codereview.chromium.org/5746005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5976 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-13 10:09:09 +00:00
fschneider@chromium.org
b50b98421c
Land Vitaly's change to fix compare IC performance.
...
Original change: http://codereview.chromium.org/5733004/
When we have inlined smi code can transition to heap number state before going to the generic state. Without inlined smi code the behaviour is unchanged.
Review URL: http://codereview.chromium.org/5689005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5975 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-13 10:05:19 +00:00
lrn@chromium.org
94bb378ee5
Make RegExp character class match JSC.
...
See http://trac.webkit.org/changeset/73594
Review URL: http://codereview.chromium.org/5723002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5974 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-13 08:33:32 +00:00
mikhail.naganov@gmail.com
72f5bcb3aa
Fix x64 build after r5970, the same way as for ARM.
...
TBR=fschneider@chromium.org
Review URL: http://codereview.chromium.org/5709005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5973 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-10 16:33:36 +00:00
karlklose@chromium.org
efe2514eb3
Fix bug that disabled optimization when profiling.
...
Review URL: http://codereview.chromium.org/5720003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5972 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-10 14:49:24 +00:00
fschneider@chromium.org
ac54854fda
Fix long line.
...
Review URL: http://codereview.chromium.org/5680005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5971 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-10 14:35:40 +00:00
fschneider@chromium.org
b16df72475
Improve our type feedback by recogizining never-executed IC calls for binary operations.
...
In the case of inlined smi code in non-optimzied code we could not
distinguish between the smi-only case and the case that the operation was
never executed.
With this change the first execution of a binary operation always jumps
to the stub which in turn patches the smi-check into the correct
conditional branch, so that we benefit from inlined smi code after the
first invocation.
A nop instruction after the call to the BinaryOpIC indicates that no
smi code was inlined. A "test eax" instruction says that there was smi
code inlined and encodes the delta to the patch site and the condition
code of the branch at the patch site to restore the original jump.
Review URL: http://codereview.chromium.org/5714001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5970 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-10 14:33:20 +00:00
vegorov@chromium.org
65f98b1e7a
Fix issue 962.
...
SplitBetween (formely known as Split with 3 arguments) should select split position from [start, end] instead of [start, end[. This should also improve allocation quality (remove certain redundant move patterns).
Also some minor renaming and refactoring to make register allocator code more readable.
BUG=v8:962
TEST=test/mjsunit/regress/regress-962.js
Review URL: http://codereview.chromium.org/5720001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5969 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-10 14:25:10 +00:00
erik.corry@gmail.com
38343f79fa
Increase the size of the max object that can be new space allocated.
...
This is neutral on in-browser SunSpider, but beneficial on other
things, and is likely to lower memory use by collecting earlier.
Review URL: http://codereview.chromium.org/5753003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5968 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-10 14:11:17 +00:00
ager@chromium.org
48d884de48
ARM: Fix heap number allocation in lithium-codegen-arm that assumed
...
that ip can be used as a scratch register. This is not true because
ip is already used for something else in AllocateInNewSpace in the
macro assembler.
Explicitly allocate a temp register for use in the heap number
allocation instead.
Review URL: http://codereview.chromium.org/5788001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5967 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-10 14:10:54 +00:00
lrn@chromium.org
c0c3deb721
Ensure that default value is explicitly initialized in DefineOwnProperty.
...
TBR: kmillikin
Review URL: http://codereview.chromium.org/5781002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5966 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-10 13:07:52 +00:00
lrn@chromium.org
79a311cd19
Add gyp target to build preparser as stand-alone library.
...
Likely only works on Linux yet.
Review URL: http://codereview.chromium.org/5716001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5965 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-10 12:58:18 +00:00
ager@chromium.org
5e80d5df5d
ARM: Fix missing SetCC in crankshaft code emitted when running with
...
the --debug-code flag.
Review URL: http://codereview.chromium.org/5736003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5963 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-10 12:12:06 +00:00
karlklose@chromium.org
f2ec8be178
Fix a bug that caused the runtime profiler to sample huge amounts of stack frames in programs with recursively called optimized functions.
...
Review URL: http://codereview.chromium.org/5786001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5961 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-10 12:00:26 +00:00
lrn@chromium.org
c0df3f0a23
Fix issue 965.
...
Review URL: http://codereview.chromium.org/5773002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5960 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-10 11:27:15 +00:00
ricow@chromium.org
ec30a6985e
Fix presubmit
...
Review URL: http://codereview.chromium.org/5772003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5959 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-10 11:02:09 +00:00
vegorov@chromium.org
5bcfaa3391
Use correct calling convention for API calls on MinGW
...
BUG=v8:950
Review URL: http://codereview.chromium.org/5699003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5958 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-10 10:02:42 +00:00
kmillikin@chromium.org
c1d0baf3dd
Garbage collection of unused setters in the AST classed.
...
Review URL: http://codereview.chromium.org/5717001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5957 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-09 14:09:50 +00:00
lrn@chromium.org
9505f88f0c
Fix cast that fails on Win64.
...
Review URL: http://codereview.chromium.org/5712001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5956 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-09 13:18:23 +00:00
karlklose@chromium.org
69d6c0bb61
Collect only optimizable function samples.
...
Keep track of the ratio between JS and non-JS ticks and use this ratio to adjust the lookup threshold. (Also add support to trace compilation statistics.)
Review URL: http://codereview.chromium.org/5633009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5955 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-09 13:12:23 +00:00
kmillikin@chromium.org
a695d0731e
Change the HGraphBuilder to dispatch on the context.
...
Before, expressions didn't take advantage of knowing their context in
the AST. Now, we use the context to decide what to do with a value at
the end of visiting an expression.
Review URL: http://codereview.chromium.org/5620007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5954 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-09 12:49:53 +00:00
lrn@chromium.org
6691d531ab
Revert 5911 (RegExp fail on invalid range syntax).
...
Review URL: http://codereview.chromium.org/5703001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5953 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-09 12:07:52 +00:00
ager@chromium.org
649a471089
Landing for Martyn Capewell.
...
Fix detection of VFP support on Nexus One.
BUG=none
TEST=none
Code review URL: http://codereview.chromium.org/5664004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5952 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-08 18:08:23 +00:00
erik.corry@gmail.com
a5c8cab793
Speed up quoting of JSON strings by allocating a string that is big enough
...
and then trimming it when the length is known. This way we only have to
traverse the input once.
Review URL: http://codereview.chromium.org/5556012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5951 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-08 16:23:25 +00:00
whesse@chromium.org
5423649f0a
Fix compilation on ARM when adding Math.pow optimization in 5949.
...
Review URL: http://codereview.chromium.org/5546006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5950 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-08 15:03:08 +00:00
whesse@chromium.org
3ef0c5dd21
Allow the optimizing code generator to call Math.pow with untagged doubles.
...
Review URL: http://codereview.chromium.org/5640004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5949 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-08 14:32:40 +00:00
lrn@chromium.org
095a71e99d
Changed interface to preparser to not require pushback support.
...
Changed implementation of pushback in preparer character stream.
Removed assert that isn't satisfied by in test-cases, but only by the real code.
Make preparser compile again.
Review URL: http://codereview.chromium.org/5593004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5946 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-08 10:06:40 +00:00
sandholm@chromium.org
23c07cd413
Fix sputnik regression introduced in r5943.
...
Review URL: http://codereview.chromium.org/5516013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5944 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-08 09:52:48 +00:00
sandholm@chromium.org
b36e346a08
Use the PushIfAbsent function for the JSON stringify stack.
...
Optimize ConvertToString.
Review URL: http://codereview.chromium.org/5614004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5943 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-08 09:10:36 +00:00
erik.corry@gmail.com
059eece44c
Fix compile error on gcc-4.5 bug 963
...
Review URL: http://codereview.chromium.org/5642004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5942 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-08 08:31:10 +00:00
vegorov@chromium.org
7c87f90c62
Remove NearestNextGapPos. It is not used anymore.
...
Remove uses of NearestGapPos in splitting helpers. We can split at any position.
Review URL: http://codereview.chromium.org/5605004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5937 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-07 14:51:49 +00:00
lrn@chromium.org
b55add7e20
Optimized scanner to avoid virtual calls for every character read.
...
Review URL: http://codereview.chromium.org/5545006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5935 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-07 14:03:59 +00:00
mikhail.naganov@gmail.com
670aea0218
Remove log compression support.
...
This is no longer used in Chromium, and only pollutes code.
BUG=859
Review URL: http://codereview.chromium.org/5575006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5934 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-07 13:24:22 +00:00
vegorov@chromium.org
d693ff9918
Fix ARM sim build.
...
Review URL: http://codereview.chromium.org/5618005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5931 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-07 12:43:23 +00:00
kasperl@chromium.org
0acc3f9117
Prepare push to trunk. Now working on version 3.0.1.
...
Review URL: http://codereview.chromium.org/5586007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5929 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-07 12:26:36 +00:00
vegorov@chromium.org
ff0365c2fa
Fix ARM build.
...
Review URL: http://codereview.chromium.org/5638003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5928 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-07 12:21:26 +00:00
kmillikin@chromium.org
e0d3f6afdf
Be more careful about exiting inlined functions in a test context.
...
When falling off the end of a function inlined in a test context, we cannot
constant fold the test of undefined away. The graph builder assumes that
control flow always reaches both branches of a test.
Instead, explicitly test and branch on "undefined". Introduce a pair of
empty blocks to hold the necessary LeaveInlined instructions.
Review URL: http://codereview.chromium.org/5566005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5927 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-07 12:07:40 +00:00
vegorov@chromium.org
199f1e7977
Fix Win64 compilation.
...
Review URL: http://codereview.chromium.org/5597007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5925 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-07 11:53:19 +00:00
ricow@chromium.org
3b5abbbdef
Fix no sse3 support by correctly allocating temp register
...
Review URL: http://codereview.chromium.org/5534004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5924 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-07 11:53:11 +00:00
vegorov@chromium.org
9ff019b49a
Fix strict aliasing rule violation in runtime-profiler.cc
...
Review URL: http://codereview.chromium.org/5621005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5923 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-07 11:40:36 +00:00
kasperl@chromium.org
90b3370374
Update V8 to version 3.0 (re-land r5920).
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5922 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-07 11:31:57 +00:00
kasperl@chromium.org
51b494d096
Revert r5920. Will re-land shortly.
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5921 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-07 11:01:02 +00:00
kasperl@chromium.org
e5860bd6a8
Update V8 to version 3.0.
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5920 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-07 09:11:56 +00:00
sandholm@chromium.org
209eb1c219
Improved JSON stringify.
...
Review URL: http://codereview.chromium.org/5578004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5919 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-06 15:41:07 +00:00
sandholm@chromium.org
26c05120b6
JSON stringify collects substrings in one builder array rather than using regular
...
string cons.
Review URL: http://codereview.chromium.org/5567005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5918 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-06 11:44:16 +00:00
erik.corry@gmail.com
bca83462d8
Improve code generated for AllocInNewSpace. This is a commit of http://codereview.chromium.org/5512004 for Rodolph Perfetta.
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5917 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-06 09:59:08 +00:00
sandholm@chromium.org
fb93e5bc36
Simplify JSON stringify and add special case for default replacer and space.
...
Review URL: http://codereview.chromium.org/5551002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5916 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-03 11:12:02 +00:00
erik.corry@gmail.com
c5c852f64a
Irregexp: Preload more characters when we are not at the
...
start of the input and some alternations in the disjunction
are anchored.
Review URL: http://codereview.chromium.org/5524006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5915 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-03 09:54:06 +00:00
mikhail.naganov@gmail.com
dd1a7fa2b3
New Heap Profiler: add API method for finding a graph node by id.
...
TEST=cctest/test-heap-profiler/HeapSnapshotGetNodeById
Review URL: http://codereview.chromium.org/5537001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5914 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-02 15:38:51 +00:00
sgjesse@chromium.org
fdca2c3183
nGW build
...
- add missing functions SignalCodeMovingGC() and MemoryBarrier()
- avoid pointer conversion/comparison warnings
- don't attempt to hide symbols with -fvisibility, MinGW doesn't support it
BUG=http://code.google.com/p/v8/issues/detail?id=949
Patch by Bert Belder <bertbelder@gmail.com>
Review URL: http://codereview.chromium.org/5471001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5913 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-02 15:37:45 +00:00
whesse@chromium.org
66836efbba
Add generated code to calculate Math.log and to search Transcendental cache for logs. Implemented on all platforms.
...
Review URL: http://codereview.chromium.org/5437002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5912 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-02 11:20:44 +00:00
lrn@chromium.org
be20c55b3e
Change RegExp syntax to fail on invalid ranges like [\d-x], [x-\d] and [\d-\d].
...
The previous behavior was to treat the "-" as verbatim if the range was invalid.
This change matches the JSC changeset http://trac.webkit.org/changeset/72813/
Review URL: http://codereview.chromium.org/5464001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5911 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-02 08:02:37 +00:00
lrn@chromium.org
5036a1c727
Fix compile problem on ARM. Remove unused argument.
...
Review URL: http://codereview.chromium.org/5455001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5910 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-01 13:11:28 +00:00
lrn@chromium.org
c2febfbfaf
Move quoting of a JSON string to a specialized runtime function.
...
Previously used string replace regexp with function replacement.
Review URL: http://codereview.chromium.org/5443001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5909 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-01 10:04:34 +00:00
vitalyr@chromium.org
b0e4479e70
Save full source position state to avoid forced positions.
...
Review URL: http://codereview.chromium.org/5277008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5908 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-30 13:17:36 +00:00
sandholm@chromium.org
2f74ca3b6d
Maintain the invariant that the pattern string in an atom regexp is always
...
a flat non-cons string.
Review URL: http://codereview.chromium.org/5270006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5907 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-30 13:16:36 +00:00
vitalyr@chromium.org
4bbf601214
RelocInfo: fix source position decoding.
...
We used to rely on reading both POSITION and STATEMENT_POSITION to get
correct decoding of positions. This was error prone and made liveedit
unhappy.
Review URL: http://codereview.chromium.org/5277007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5905 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-30 10:55:24 +00:00
ager@chromium.org
d175df0ad4
Fix windows build.
...
TBR=lrn
Review URL: http://codereview.chromium.org/5367007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5904 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-29 16:38:05 +00:00
ager@chromium.org
64c682b14e
Revert seeding the random number generator with rand_s on Windows. It
...
makes browser_tests fail.
TBR=jschuh@chromium.org
Review URL: http://codereview.chromium.org/5284006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5900 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-29 14:28:06 +00:00
lrn@chromium.org
84f2f5ee90
Preparser extracted into separate files that can be compiled to a library.
...
No scons target yet.
Review URL: http://codereview.chromium.org/5295004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5899 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-29 13:24:37 +00:00
ager@chromium.org
d96f46c855
Prepare push to trunk. Now working on version 2.6.0.
...
Review URL: http://codereview.chromium.org/5381004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5895 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-29 07:47:34 +00:00
lrn@chromium.org
84bf943626
Fix number parsing to not allow space between sign and digits.
...
Affects both parseFloat and ToNumber conversion.
Fix issue 946.
Review URL: http://codereview.chromium.org/5338005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5894 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-26 12:45:41 +00:00
lrn@chromium.org
7be18f702b
make DateParser::TimeComposer handle 1-2 digits millisecond values
...
see http://code.google.com/p/v8/issues/detail?id=944
This patch makes DateParser::TimeComposer process times that have
millisecond values with only 1 or 2 digits.
Without this patch, Date.parse("2010-11-25T22:02:30.5") returns
1290690150005 and
Date.parse("2010-11-25T22:02:30.5") == Date.parse("2010-11-25T22:02:30.005")
evaluates to true.
With this patch, Date.parse("2010-11-25T22:02:30.5") returns
1290690150500 instead, and
Date.parse("2010-11-25T22:02:30.5") == Date.parse("2010-11-25T22:02:30.005")
evaluates to false.
Review URL: http://codereview.chromium.org/5336005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5893 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-26 11:48:35 +00:00
ager@chromium.org
57b045a921
Landing for Martyn Capewell.
...
Implement string constructor stub on ARM.
BUG=none
TEST=none
Codereview URL: http://codereview.chromium.org/5322009/
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5892 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-26 08:43:34 +00:00
mikhail.naganov@gmail.com
646a578b3f
Simplify ProfLazyMode test on Linux.
...
Instead of installing signal handler, count samples taken.
Review URL: http://codereview.chromium.org/5325003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5891 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-25 15:54:52 +00:00
yurys@chromium.org
9137e4a8c9
Expose a method for getting JSObject constructor name
...
Review URL: http://codereview.chromium.org/5256004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5890 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-25 08:04:12 +00:00
ager@chromium.org
be0f740d99
Landing for Justin Schuh.
...
Seed the random number generator in Windows with rand_s
This is a quick fix for m9. It works on Windows Chrome because the random device is already initialized before permissions are dropped for the Chrome sandbox. The same trick isn't possible on Linux or Mac.
I think the long-term solution is to provide an interface for supplying v8 with a true random number generator. Then Chrome can just hook up the generator from base/rand_util.h
BUG=http://code.google.com/p/v8/issues/detail?id=936
TEST=None.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5889 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-25 07:39:17 +00:00
mikhail.naganov@gmail.com
0634c50950
New Heap profiler: fix JSON serialization of aggregated profiles.
...
Serialization was failing due to unset dominator pointers.
TEST=test-heap-snapshot/AggregatedHeapSnapshotJSONSerialization
Review URL: http://codereview.chromium.org/5314003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5888 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-24 10:47:18 +00:00
lrn@chromium.org
5bfbeddf63
Fix break of build.
...
Mental note: When you make a fix, remember to save it before committing.
Review URL: http://codereview.chromium.org/5330005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5887 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-24 10:28:22 +00:00
lrn@chromium.org
0c60c88c2c
Working stand-alone preparser.
...
BUG=
TEST=
Review URL: http://codereview.chromium.org/5302003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5885 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-24 09:57:06 +00:00
erik.corry@gmail.com
72de9278d5
ARM: Defer the prefix/postfix code generation. This is a fixed
...
version of http://codereview.chromium.org/3666001/ by ZhangK with
an added call to ForgetTypeInfo to fix a debug mode assert.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5884 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-24 09:55:58 +00:00
sgjesse@chromium.org
0c064efdb0
Make randomized allocations along 64k granularity boundaries to avoid comitting unused memory.
...
BUG=56036
TEST=None.
Patch by Justin Schuh <jschuh@chromium.org>
Review URL: http://codereview.chromium.org/3849004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5883 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-24 09:40:58 +00:00
ager@chromium.org
4c6f79ecec
Fix crashes during GC caused by partially initialized objects. The
...
inline allocation code used the expected number of properties to
calculate the number of inobject properties for an object instead of
getting the actual number from the initial map.
It is safer to use the inobject property count from the initial map in
any case because that is the amount the instances will get. I think
this disconnect got introduced when adding shrinking of objects.
Unfortuntely I haven't been able to create a simple reproduction for a
test case but this fixes the webpage that exhibits the crash. I'll see
if I can create a reproduction tomorrow.
Review URL: http://codereview.chromium.org/5278003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5879 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-24 06:26:36 +00:00
lrn@chromium.org
dc390d0e1f
Untemplated preparser.h and made it depend on virtual types.
...
Extracted preparse-data specification and logging classes.
Review URL: http://codereview.chromium.org/5166006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5877 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-23 11:46:36 +00:00
vegorov@chromium.org
052f595184
Prepare push to trunk. Now working on version 2.5.9.
...
Review URL: http://codereview.chromium.org/5302002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5873 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-23 10:07:02 +00:00
mikhail.naganov@gmail.com
372087a5bc
Fix again HeapEntry size problem, now platform-independent way.
...
Rico noticed that V8 ARM builder also fails on HeapEntry size
assertion. As MSVC-specific way of fixing the problem causes
aliasing problems on G++, I re-implemented conversion using
unions. And #ifdefs are gone!
TBR=sgjesse@chromium.org
Review URL: http://codereview.chromium.org/5328001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5872 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-23 09:52:52 +00:00
mikhail.naganov@gmail.com
ec6b6c94f5
Fix windows compilation after r5867. Now linux-friendly.
...
TBR=sgjesse@chromium.org
Review URL: http://codereview.chromium.org/5216008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5871 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-22 16:09:14 +00:00
mikhail.naganov@gmail.com
9cf23fc145
Revert "Fix compilation on Win after r5867.". This breaks Linux.
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5870 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-22 15:38:12 +00:00
mikhail.naganov@gmail.com
a5f7ae72af
Fix compilation on Win after r5867.
...
TBR=sgjesse@chromium.org
Review URL: http://codereview.chromium.org/5242003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5869 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-22 15:31:43 +00:00
floitschV8@gmail.com
1fafbe760d
Remove Gay's dtoa from sources.
...
Farewell.
Review URL: http://codereview.chromium.org/5195003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5868 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-22 14:42:07 +00:00
mikhail.naganov@gmail.com
1cfc63cf8a
New heap profiler: implement fast retaining sizes approximation.
...
Approximation is done by building a dominators tree for the heap graph.
Dominator nodes and retained sizes are serialized into JSON.
Removed:
- reachable size (it is useless, after all);
- HeapEntryCalculatedData (size is now stored in the node, retaining
paths in a hash map);
Review URL: http://codereview.chromium.org/5154007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5867 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-22 14:00:40 +00:00
ager@chromium.org
1e8413e188
Force pretenuring of closures that are immediately assigned to
...
properties. For these closures we would like to be able to use
constant functions and for that we need the closures allocated in old
space.
Review URL: http://codereview.chromium.org/5220007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5866 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-22 09:57:21 +00:00
lrn@chromium.org
75ae84f9ca
Made some functions virtual that were previously hit by templating.
...
Currently means that preparsing doesn't record/export symbol data.
Review URL: http://codereview.chromium.org/5122007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5865 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-19 12:36:39 +00:00
sgjesse@chromium.org
af466d80a6
Add more tests of breaks in infinite loops
...
Move stack check in do while loops to before the continue target to enable breaks even if continue was always used in the loop.
Review URL: http://codereview.chromium.org/5184007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5862 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-19 12:08:52 +00:00
ager@chromium.org
2c533c1af0
Remove unused variable to please Clang.
...
Review URL: http://codereview.chromium.org/5151010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5861 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-19 11:24:51 +00:00
whesse@chromium.org
1d11e32a01
Add a fast case to Array.join when all the elements and the separator are flat ascii strings.
...
Review URL: http://codereview.chromium.org/5122005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5860 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-19 09:25:46 +00:00
serya@chromium.org
bc42d95cc3
Avoiding repacking payload for v8::Arguments and v8::AccessorInfo (arm)
...
Review URL: http://codereview.chromium.org/5107002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5859 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-19 09:06:00 +00:00
lrn@chromium.org
afbbf485fb
Merge preparser Scanner with main JavaScript scanner.
...
Optimize scanning of keywords.
Review URL: http://codereview.chromium.org/5188009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5858 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-19 09:02:59 +00:00
ager@chromium.org
5205fd4417
Landing for Rodolph Perfetta.
...
Add missing Stub implementations on ARM.
BUG=none
TEST=none
Codereview URL: http://codereview.chromium.org/5128004/
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5857 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-19 08:41:24 +00:00
lrn@chromium.org
ed40f93696
Fix usage of NULL in integer contexts.
...
Review URL: http://codereview.chromium.org/5195002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5856 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-18 14:00:23 +00:00
lrn@chromium.org
ecf0d85a8e
Fix off-by-one in hex-parsing.
...
Review URL: http://codereview.chromium.org/5129002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5855 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-18 13:50:21 +00:00
lrn@chromium.org
2d4aa6295b
Extract scanner base/JS/JSON and move base and JS to scanner-base.
...
Remove templates from prescanner.
Review URL: http://codereview.chromium.org/5136002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5854 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-18 13:07:02 +00:00
ager@chromium.org
7c5cca2927
Don't return false from CompileCallInterceptor which returns a
...
MaybeObject*. Instead return the failure which will be handled
correctly by the caller. This code would lead to a crash if ever
executed.
Review URL: http://codereview.chromium.org/5182006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5852 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-18 11:21:20 +00:00
lrn@chromium.org
80ace73cb8
Make count-line-ends use StringSearch and only iterate over the source once.
...
Review URL: http://codereview.chromium.org/5121007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5850 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-18 10:42:22 +00:00
mikhail.naganov@gmail.com
051f314a99
New heap profiler: include all heap objects and refs into snapshot.
...
Otherwise, retaned memory sizes are not precise. This increases size
of heap snapshot, I will deal with this later. Heap objects and
references previously missing in snapshot are now marked as 'hidden'.
That means, they not shown to user, but participate in sizes
calculation.
Other small changes:
- added 'shortcut' graph edges: e.g. to pin global objects on top
level;
- meta-information in JSON snapshot is no more double encoded.
Review URL: http://codereview.chromium.org/5139002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5849 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-18 10:38:25 +00:00
erik.corry@gmail.com
7d72d30383
Prepare push to trunk. Now working on version 2.5.8.
...
Review URL: http://codereview.chromium.org/5203002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5848 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-18 10:28:47 +00:00
ager@chromium.org
79fd9c50f5
Revert r5846 because of debug mode test failures.
...
TBR=sandholm@chromium.org
Review URL: http://codereview.chromium.org/5167002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5847 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-18 09:40:00 +00:00
sandholm@chromium.org
63f333999c
Leverage Lasse's StringSearch object to speed up calculations of script
...
line ends.
Review URL: http://codereview.chromium.org/5100002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5846 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-18 08:45:17 +00:00
ager@chromium.org
48066af7e0
Landing for Justing Schuh.
...
Split out the random number state between JavaScript and private API
I've added v8::RandomPrivate() for internaly used random numbers, and pass the state in as a parameter to a random_base function.
I still need to implement strong seeding. I already know how and will be landing that in another patch.
BUG=http://code.google.com/p/v8/issues/detail?id=936
TEST=None.
Codereview URL: http://codereview.chromium.org/5143004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5845 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-18 08:23:49 +00:00
ager@chromium.org
60659dd1c6
Landing for Martyn Capewell.
...
Replace some hard-coded return address calculations with Call.
BUG=none
TEST=none
Codereview URL: http://codereview.chromium.org/5158002/
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5843 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-17 14:48:43 +00:00
sgjesse@chromium.org
010f35f478
Change the order of evaluation of sub-expressions for keyed call
...
The expression of the key is now evaluated before the arguments, so all expressions in a keyed call are evaluared from left to right.
BUG=http://code.google.com/p/v8/issues/detail?id=931
TEST=test/mjsunit/regress/regress-931.js
Review URL: http://codereview.chromium.org/5161002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5842 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-17 13:59:07 +00:00
floitschV8@gmail.com
cfddf4f54c
Name argument in forward declaration.
...
Unbreaks the build.
TBR: whesse@chromium.org
Review URL: http://codereview.chromium.org/5126002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5841 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-17 13:29:45 +00:00
floitschV8@gmail.com
7ac932c088
Add bignum fall-back when the fast dtoa doesn't succeed. This removes Gay's dtoa for the double->string direction. We still need it for the string->double direction.
...
Review URL: http://codereview.chromium.org/3468003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5840 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-17 13:20:44 +00:00
vegorov@chromium.org
a298666fae
Store script's line ends in copy-on-write fixed array.
...
This allows to remove explicit copy from line ends JS accessor which is used for formatting of stack traces.
Eager copying of line ends array might cause multiple full GC collections for huge scripts (e.g. scripts generated by GWT compiler with PRETY preset).
Review URL: http://codereview.chromium.org/5148002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5839 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-17 12:49:27 +00:00
ager@chromium.org
a24d627598
Extract extensions to a separate directory.
...
Remove extensions from the external reference table. They should never
be part of the serialized code.
Create extensions/experimental subdirectory for experimental
extensions not officially supported by V8.
Review URL: http://codereview.chromium.org/5094003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5838 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-17 12:28:30 +00:00
lrn@chromium.org
9902e43293
Add separate scanner only intended for preparsing.
...
Review URL: http://codereview.chromium.org/5063003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5837 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-17 12:00:22 +00:00
serya@chromium.org
af7825c05f
API call code refactoring (x64).
...
Review URL: http://codereview.chromium.org/5108003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5836 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-17 10:44:16 +00:00
erik.corry@gmail.com
f42de7dcae
Implement Math.floor stub on ARM. Uses VFP when available. This is a commit of http://codereview.chromium.org/5075002/ for Martyn Capewell
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5835 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-17 09:24:44 +00:00
serya@chromium.org
ee78d11818
Port direct API function call to x64 (ia32 CL is http://codereview.chromium.org/4456002/ ).
...
Review URL: http://codereview.chromium.org/5004004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5833 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-16 16:08:57 +00:00
serya@chromium.org
8454123682
Fixing lint errors.
...
Review URL: http://codereview.chromium.org/5065002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5832 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-16 15:23:47 +00:00
serya@chromium.org
16164471f3
API call code refactoring (ia32).
...
Review URL: http://codereview.chromium.org/5055004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5831 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-16 15:04:41 +00:00
lrn@chromium.org
0464b33625
Fix bug in parser that allows "(foo):42" as a labeled statement.
...
Fixes issue 918.
Review URL: http://codereview.chromium.org/5044003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5830 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-16 12:10:48 +00:00
lrn@chromium.org
1341dde85f
Revert premature addition to parser.
...
TBR:ricow
Review URL: http://codereview.chromium.org/5055003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5829 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-16 08:16:13 +00:00
lrn@chromium.org
47c1870996
Move static scanner fields to scanner-base.h
...
Review URL: http://codereview.chromium.org/5026005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5828 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-16 08:01:45 +00:00
serya@chromium.org
3b248841da
Removing redundant stubs for API functions.
...
Review URL: http://codereview.chromium.org/4695003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5827 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-15 17:12:34 +00:00
lrn@chromium.org
af7b6fecfe
Split globals.h into two parts, where only one depends on V8.
...
Made allocation.{h,cc} independent of V8, allowing utils.h to allocate
vectors and collectors.
Review URL: http://codereview.chromium.org/5005001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5826 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-15 13:23:30 +00:00
mikhail.naganov@gmail.com
2a8eb35548
Provide more accurate results about used heap size via GetHeapStatistics.
...
I observed that used heap size provided by Heap::SizeOfObjects() is
usually about ~10% bigger than the number calculated by summing up
heap objects sizes.
This aligns DevTools Timeline stats with Heap profiler stats.
Review URL: http://codereview.chromium.org/4888001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5825 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-15 10:38:24 +00:00
erik.corry@gmail.com
ca7a438713
Improve support for vmrs/vmsr in ARM disassembler. This is a commit of http://codereview.chromium.org/4904001 for Martyn Capewell.
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5824 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-15 10:21:57 +00:00
ager@chromium.org
583198eb0f
Landing for dsule@codeaurora.org.
...
Allow build-time customization of the max semispace size. Building a
version of V8 with snapshots and with a non-default max semi-space
size is much easier when you can set the max semispace size in the
build environment.
Review URL: http://codereview.chromium.org/4937001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5823 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-15 10:12:01 +00:00
antonm@chromium.org
bfeca9e0e6
Fix Win64 build.
...
MemoryAllocator::AvailableExecutable should return intptr_t, the difference of intptr_t's.
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/4972001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5818 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-13 15:00:24 +00:00
antonm@chromium.org
4a6f452ebc
Fix Win64: strlen returns size_t which gets converted to int.
...
TBR=lrn@chromium.org
Review URL: http://codereview.chromium.org/4971001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5817 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-13 14:37:28 +00:00
ager@chromium.org
2c4723639d
Use the real climit for testing the stack limit API. The currently
...
active climit can be changed by other events and should not be trusted
for these tests. The real climit stays the same once set.
Review URL: http://codereview.chromium.org/4881001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5816 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-12 08:40:21 +00:00
floitschV8@gmail.com
121adebfde
Fix strtod.
...
Strtod function used buffer that was allocated inside a nested scope.
Review URL: http://codereview.chromium.org/4639006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5815 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-11 16:32:32 +00:00
lrn@chromium.org
fc3bdf4d20
Preparsing now considers catch-blocks as inside a with.
...
Fix issue 928.
Review URL: http://codereview.chromium.org/4639005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5813 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-11 11:45:25 +00:00
fschneider@chromium.org
582a3bde4f
Move ComputeCallInitialize from the codegen.cc to stub-cache.cc.
...
Review URL: http://codereview.chromium.org/4760003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5812 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-11 10:33:51 +00:00
lrn@chromium.org
17f532acb9
Fix Chromium bug 62639.
...
Add missing failure check after expecting an identifier in preparser.
This allowed code to use the non-existing literal.
Review URL: http://codereview.chromium.org/4800001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5811 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-11 10:18:48 +00:00
sandholm@chromium.org
c8932d030b
Special case global and non-global code paths in regexp.test.
...
Review URL: http://codereview.chromium.org/4517003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5810 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-11 08:47:30 +00:00
fschneider@chromium.org
8673e6497c
Move common static helpers from codegen to the macro-assembler files.
...
Review URL: http://codereview.chromium.org/4654002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5807 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-10 17:00:20 +00:00
vitalyr@chromium.org
87834f8cf0
Make String.prototype.split honor limit when separator is empty.
...
BUG=929
Review URL: http://codereview.chromium.org/4750003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5806 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-10 12:34:28 +00:00
ager@chromium.org
869017bf6a
Prepare push to push version 2.5.6 to trunk.
...
Review URL: http://codereview.chromium.org/4709003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5803 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-10 11:38:22 +00:00
ager@chromium.org
fac33fb66b
Another fix after the executable memory limit introduction.
...
The max executable size must be less than or equal to the max old
space size. It is an extra limit in addition to the old space size.
Review URL: http://codereview.chromium.org/4730002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5802 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-10 10:14:13 +00:00
ager@chromium.org
c20cf6d393
Fix x64 build after executable memory limit change.
...
TBR=jschuh@chromium.org
Review URL: http://codereview.chromium.org/4656002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5801 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-10 09:25:46 +00:00
ager@chromium.org
f3f92b18d4
Fix executable memory setting and fix test.
...
Review URL: http://codereview.chromium.org/4764002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5800 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-10 09:20:08 +00:00
ager@chromium.org
17573d771a
Landing for Justin Schuh.
...
Add 128MB limit for executable pages.
BUG=http://code.google.com/p/v8/issues/detail?id=925
TEST=None.
TBR=jschuh@chromium.org
Review URL: http://codereview.chromium.org/4634003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5799 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-10 08:38:42 +00:00
vegorov@chromium.org
20d3aad5ae
Add check for overflow after MUL operations in side-effect free int32 expressions.
...
BUG=http://code.google.com/p/v8/issues/detail?id=927
TEST=test/mjsunit/regress/regress-927.js
Review URL: http://codereview.chromium.org/4746001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5793 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-09 19:32:49 +00:00
serya@chromium.org
82fc8fe39a
Direct call API functions (ia32 implementation).
...
Review URL: http://codereview.chromium.org/4456002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5791 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-09 14:01:23 +00:00
erik.corry@gmail.com
8ebe8e4756
ARM: The Simulator will now handle different VFP rounding modes. RZ and RM are implemented. This is a commit of
...
http://codereview.chromium.org/4295003/show for Alexander Rames of ARM.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5790 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-09 08:26:02 +00:00
floitschV8@gmail.com
c86e548e1d
Add comments to double.h.
...
Review URL: http://codereview.chromium.org/4687001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5789 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-08 15:40:28 +00:00
mikhail.naganov@gmail.com
0f66199b5e
Heap profiler: remove context checks for objects.
...
It seems that there will be no access to heap snapshots from
web pages' code, only from Developer Tools, thus it makes no
sense doing filtering of object by their security contexts.
Review URL: http://codereview.chromium.org/4681003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5787 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-08 15:18:12 +00:00
floitschV8@gmail.com
aab900fdb0
Fix Double.NextDouble function.
...
This unbreaks the build on windows.
TBR: whesse@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/4681001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5779 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-08 12:13:05 +00:00
floitschV8@gmail.com
808d00f8ef
Bignum implementation of Strtod.
...
This removes the dependency on Gay's strtod.
Review URL: http://codereview.chromium.org/4060001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5778 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-08 11:49:47 +00:00
whesse@chromium.org
17ac8903d1
Prepare push to trunk. Now working on version 2.5.6.
...
Review URL: http://codereview.chromium.org/4669002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5777 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-08 11:15:51 +00:00
vegorov@chromium.org
28bd8aa024
Fix pseudo-smi accessors lo/hi ordering for SharedFunctionInfo on x64.
...
Incorrect ordering lead to crashes during GC when end position was not even number.
Add static assert to catch this kind of typos.
Review URL: http://codereview.chromium.org/4640003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5776 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-08 10:30:57 +00:00
lrn@chromium.org
f386f97476
Move part of scanner.* into scanner-base.* for reuse in preparser scanner.
...
Make checks.h not depend on flags.h or global.h (or anything else except
include/v8stdint.h). Only checks.cc has the dependencies (so another
implementation of checks.cc can be provided by the preparser).
Now files depending on checks.h (using ASSERT macros) can include it
directly without depending on all of v8.
Review URL: http://codereview.chromium.org/4576001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5775 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-05 13:33:40 +00:00
sandholm@chromium.org
8838fdea66
Another minor regexp cleanup.
...
Review URL: http://codereview.chromium.org/4577001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5774 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-05 13:33:12 +00:00
lrn@chromium.org
5e9c1704d9
Fix bug introduced when extracting utils.
...
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/4535004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5773 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-05 13:12:14 +00:00
lrn@chromium.org
8f8039574a
Split utils.h into utils.h and v8utils.h where the former is independent of V8.
...
The code in utils.h can be reused outside of v8 propert, as long as the
propert ASSERT macros are defined.
Review URL: http://codereview.chromium.org/4485001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5772 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-05 08:18:53 +00:00
sgjesse@chromium.org
d8c22d9dc1
Add a test for debug break while running in an infinite loop
...
Fixed a bug where execution termination could get lost while leaving the debugger.
Review URL: http://codereview.chromium.org/4405003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5771 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-04 15:43:12 +00:00
vegorov@chromium.org
9b96a9d592
Fix presubmit errors introduced by r5768.
...
Review URL: http://codereview.chromium.org/4409003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5770 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-04 15:39:06 +00:00
whesse@chromium.org
861a66fb67
Fix a potential error in Add() macro-instruction on ARM.
...
Review URL: http://codereview.chromium.org/4247004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5769 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-04 15:30:04 +00:00
vegorov@chromium.org
746d72420c
Improve positions recording for calls.
...
Review URL: http://codereview.chromium.org/4469002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5768 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-04 15:12:03 +00:00
lrn@chromium.org
455cfe5932
Make presubmit lint the "include" dir.
...
Make include dir content pass lint.
Review URL: http://codereview.chromium.org/4421002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5767 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-04 10:27:39 +00:00
lrn@chromium.org
62302a533d
Fix issue 924 - splitting the empty string.
...
Review URL: http://codereview.chromium.org/4483001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5766 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-04 10:24:17 +00:00
lrn@chromium.org
3c1c4ffb29
Simplify preparsing of "new"-expressions.
...
Review URL: http://codereview.chromium.org/4331003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5764 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-04 07:19:06 +00:00
mikhail.naganov@gmail.com
926bf7bc6b
Investigate usleep failure on Linux. Add more debug output.
...
BUG=crbug.com/54592
TEST=none
Review URL: http://codereview.chromium.org/4391001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5763 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-03 18:33:57 +00:00
antonm@chromium.org
ce9a7396dc
Fix some fotgotten variable names.
...
TBR=vegorov@chromium.org
Review URL: http://codereview.chromium.org/4378001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5762 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-03 13:29:01 +00:00
antonm@chromium.org
20938fc53c
Attempt to collect more garbage before panicking with out of memory.
...
Currently weak handles retain an object for another GC round (oftem times,
major GC round.) Instrumenting Chromium shows that navigation leaves
many global objects which are only collected in next go. Let's
attempt to collect more garbage when approacing OOM condition.
This is a better version of rolled out r5455: now it's correctly
rebuilds object groups between additional GCs.
Review URL: http://codereview.chromium.org/4295004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5761 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-03 13:00:28 +00:00
floitschV8@gmail.com
ad605a1bcc
Fix assumptions in DoubleToFixed.
...
By luck two errors cancelled each other out.
Review URL: http://codereview.chromium.org/4135014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5760 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-03 12:05:01 +00:00
sandholm@chromium.org
97cb006188
Minor regexp test cleanup.
...
Review URL: http://codereview.chromium.org/4371002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5759 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-03 10:30:15 +00:00
lrn@chromium.org
94d09633be
Prepare push to trunk. Now working on version 2.5.5.
...
Review URL: http://codereview.chromium.org/4298003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5756 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-03 08:11:13 +00:00
lrn@chromium.org
e1458503d1
Remove regexp caching.
...
Review URL: http://codereview.chromium.org/4308001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5755 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-02 13:37:59 +00:00
sgjesse@chromium.org
b9860d3af8
Remove all remaining code related to exposing C-frames to the JavaScript debugger
...
BUG=906
Review URL: http://codereview.chromium.org/4104009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5754 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-02 12:08:58 +00:00
vegorov@chromium.org
8a2f34662d
Fix converting NULL to Failure bugs introduced in r5698.
...
Review URL: http://codereview.chromium.org/4293002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5753 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-02 11:56:10 +00:00
lrn@chromium.org
7f764978ee
Remove old preparser option and behavior from the parser.
...
Review URL: http://codereview.chromium.org/4244003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5752 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-02 11:45:47 +00:00
ager@chromium.org
ef06d71229
Landing for Rodolph Perfetta.
...
Improve V8 VFPv3 runtime detection, to address issue 914.
This patch will check for the exact word vfpv3 as well as 0xc08 (CortexA8
part number) as some earlier kernel didn't report vfpv3 for A8.
Codereview URL: http://codereview.chromium.org/4103013/show
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5751 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-02 08:26:33 +00:00
lrn@chromium.org
42b6151247
Stand-alone parser template.
...
Uses existing Scanner and ParserLog.
Generates same preparse-data as existing preparser.
Review URL: http://codereview.chromium.org/4112012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5750 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-02 07:21:37 +00:00
fschneider@chromium.org
ebcd03b46a
Prepare push to trunk. Now working on version 2.5.4.
...
Review URL: http://codereview.chromium.org/4158015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5747 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-01 12:17:58 +00:00
serya@chromium.org
fbdcbdf748
Refactoring of v8:Arguments similary we did with v8::AccessorInfo ( http://codereview.chromium.org/242050 ). GC-controlled values moved to a separate array.
...
Review URL: http://codereview.chromium.org/4117010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5746 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-01 10:51:44 +00:00
ager@chromium.org
51bc9a1493
Remove invalid asserts from last commit.
...
TBR=erik.corry@gmail.com
Review URL: http://codereview.chromium.org/4094010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5745 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-01 09:16:39 +00:00
ager@chromium.org
5f1f2adb3b
Landing for Rodolph Perfetta.
...
Reduces the number of movw/movt instructions generated in ProbeTable. It
improves code size for CompileCallMegamorphic by about 10%.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/4220004/show
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5744 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-01 08:55:40 +00:00
vegorov@chromium.org
1dc2c44e3c
Clear JS function result caches in all global contexts.
...
Original patch by Mark Lam <mark.lam@palm.com> from Hewlett-Packard Development Company, LP. (http://codereview.chromium.org/4187007 )
Fix memory corruption in JSFunctionResultCache::Clear caused by out of bounds writes which was revealed by the patch.
Review URL: http://codereview.chromium.org/4200009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5738 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-29 08:13:19 +00:00
ager@chromium.org
46951e659c
Landing for Justin Schuh.
...
This switches out the existing constant splitting with masking that works like this:
1. Generate a random 32-bit value at compilation time.
2. XOR the 32-bit constant with the random value.
3. Emit the resulting immediate value along with the XOR operation to generate the original value.
BUG=http://code.google.com/p/v8/issues/detail?id=908
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5734 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-29 06:15:34 +00:00
sgjesse@chromium.org
19b62bb1b5
Remove the patching of the debug break stub
...
This is no longer required to break at the function entry. Actually has not been required since the inlined stack check was introduced long time ago.
Review URL: http://codereview.chromium.org/4106005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5726 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-28 11:50:50 +00:00
erik.corry@gmail.com
a448c13cdb
Add gc() calls to some tests to please valgrind.
...
Review URL: http://codereview.chromium.org/4116005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5724 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-28 08:43:47 +00:00
ager@chromium.org
2122827893
Landing for Rodolph Perfetta.
...
Fix the ARM simulator, the ARM disassembler and extend the stop feature.
The stop feature in the simulator now support enabling, disabling and
counting.
BUG=None
TEST=None
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5723 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-28 07:35:07 +00:00
ager@chromium.org
c964e478bf
Fix the last USE_SIMULATOR mips issue introduced with my last arm
...
simulator change.
Review URL: http://codereview.chromium.org/4151005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5722 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-28 07:33:51 +00:00
mikhail.naganov@gmail.com
7a6c7033b2
Fix reporting of impossible nested calls of DOM functions.
...
It turns out that having PC pointing _exactly_ at callback entry
point is quite probable.
BUG=crbug/60753
Review URL: http://codereview.chromium.org/4169005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5721 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-27 17:03:01 +00:00
vitalyr@chromium.org
9a1c80e452
Profiler on linux: use SA_RESTART signal flag to have most of the syscalls restarted for us.
...
This change keeps the interactive shell alive.
Review URL: http://codereview.chromium.org/4197002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5720 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-27 12:45:46 +00:00
lrn@chromium.org
81a3f7bfb5
Make Parser class have no friends and fewer things to depend on it.
...
Review URL: http://codereview.chromium.org/4146006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5719 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-27 12:33:48 +00:00
karlklose@chromium.org
1b0e2597e8
Fix a bug that prevents constants from overwriting function values in object literals.
...
BUG=http://code.google.com/p/v8/issues/detail?id=907
Review URL: http://codereview.chromium.org/4004006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5718 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-27 11:37:59 +00:00
lrn@chromium.org
938d88e193
Separate JSON parsing from the JavaScript parser.
...
Switch JSON parsing to creating the value directly instead of createing
code to create the value.
Review URL: http://codereview.chromium.org/4135004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5715 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-27 09:19:43 +00:00
lrn@chromium.org
a8f2714425
Prepare push to trunk. Now working on version 2.5.3.
...
Review URL: http://codereview.chromium.org/4128008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5714 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-27 08:09:34 +00:00
vitalyr@chromium.org
e197c930e1
Faster ascii string case conversion.
...
Review URL: http://codereview.chromium.org/4189001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5713 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-26 18:14:45 +00:00
mikhail.naganov@gmail.com
3d8e94863d
Improve sampler resolution on Linux.
...
Instead of relying on itimer signals from kernel, send them
ourselves from a separate thread. This disables an ability
to profile multiple VM threads on Linux, but it anyway doesn't
work on other platforms, so we need a common solution for
it (issue 913 created to track this).
Review URL: http://codereview.chromium.org/4000007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5711 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-26 14:51:31 +00:00
floitschV8@gmail.com
1766d4b5e4
Don't create empty vectors using SubVector.
...
Fixes build-breakage.
TBR: whesse@chromium.org
Review URL: http://codereview.chromium.org/4168002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5710 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-26 14:13:21 +00:00
floitschV8@gmail.com
83f0be364e
Use Vector::SubVector instead of using the constructor.
...
Review URL: http://codereview.chromium.org/4148003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5708 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-26 13:30:31 +00:00
ager@chromium.org
9640b6d9ab
Allow forcing the use of a simulator from the build script
...
independently of the host architecture.
Fix build issue for the mips simulator. The mips simulator does not
currently work, but at least this change does not make it worse.
Review URL: http://codereview.chromium.org/4090003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5701 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-26 08:12:17 +00:00
ager@chromium.org
a894e78654
Clean up definitions in simulator.
...
Clean up the definition of USE_SIMULATOR and its uses.
Review URL: http://codereview.chromium.org/4044003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5700 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-25 16:40:41 +00:00
erik.corry@gmail.com
ea7639a813
Last minute typos from the last change.
...
TBR=vegorov
Review URL: http://codereview.chromium.org/4037006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5699 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-25 15:29:06 +00:00
erik.corry@gmail.com
0dcaac1939
Make Failure inherit from MaybeObject instead of Object.
...
Review URL: http://codereview.chromium.org/3970005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5698 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-25 15:22:03 +00:00
mikhail.naganov@gmail.com
170baa8947
A little piece of code for aligning heap snapshots vs. object inspection.
...
Use original names for function infos.
Review URL: http://codereview.chromium.org/4040008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5696 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-25 09:53:39 +00:00
ager@chromium.org
1b410339be
Use size_t for return value from fwrite.
...
TBR=sgjesse@chromium.org
Review URL: http://codereview.chromium.org/4033005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5695 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-25 08:26:12 +00:00
ager@chromium.org
36ed1f611b
Use return value from fwrite in log.cc to please compilers.
...
BUG=453
Review URL: http://codereview.chromium.org/4002005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5694 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-25 08:22:23 +00:00
mikhail.naganov@gmail.com
12a2311082
Fix FreeBSD port.
...
TBR=kasperl@chromium.org
BUG=912
Review URL: http://codereview.chromium.org/4084001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5693 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-24 16:09:44 +00:00
serya@chromium.org
fed1246d45
Fixing build failure - added a missed file.
...
Review URL: http://codereview.chromium.org/3965004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5690 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-21 14:53:19 +00:00
serya@chromium.org
0ea6c1e09f
Optimizing HandleScope. Also fixed HandleScope destruction when API getter throws an exception.
...
Review URL: http://codereview.chromium.org/3792003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5689 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-21 14:21:00 +00:00
whesse@chromium.org
7fd5d4540c
Implement --noinline-new flag fully on x64 and ia32 platforms.
...
Review URL: http://codereview.chromium.org/3961005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5687 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-21 13:15:12 +00:00
floitschV8@gmail.com
29ae2f08cb
Strtod fast-case that uses DiyFps and cached powers of ten.
...
This is a fixed version of r5677.
Review URL: http://codereview.chromium.org/3898007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5686 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-21 11:54:32 +00:00
ager@chromium.org
598de609a2
Revert r5455 from bleeding_edge: attempt to collect more garbage
...
before panicking with out of memory.
TBR=antonm@chromium.org
Review URL: http://codereview.chromium.org/4034002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5681 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-21 06:16:52 +00:00
floitschV8@gmail.com
9bcdac5fef
Fix build-breakage.
...
Revert "Strtod fast-case that uses DiyFps and cached powers of ten."
This reverts commit 493da023514021a63e1d3ba3f70348a275ac4042.
TBR: whesse@chromium.org
Review URL: http://codereview.chromium.org/3870003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5678 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-20 15:30:59 +00:00
floitschV8@gmail.com
6232cd8000
Strtod fast-case that uses DiyFps and cached powers of ten.
...
Review URL: http://codereview.chromium.org/3760013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5677 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-20 15:13:34 +00:00
erik.corry@gmail.com
963cc2e49c
Fix GC error in ES5 read-only properties implementation.
...
Review URL: http://codereview.chromium.org/3920005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5676 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-20 13:19:03 +00:00
erik.corry@gmail.com
852016c118
Fix the --noinline-new flag on ARM so that it forces us into C++ code
...
on every allocation. Fix three places where the generated code couldn't
cope with an unlucky GC.
Review URL: http://codereview.chromium.org/3872003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5674 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-20 12:01:17 +00:00
whesse@chromium.org
9d10509662
Prepare push to trunk. Now working on version 2.5.2.
...
Review URL: http://codereview.chromium.org/3898006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5672 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-20 11:36:42 +00:00
ager@chromium.org
30959b20b9
Update x64 RecordWrite comment. When the offset is zero the index
...
should be an untagged 32-bit integer on x64. There are debug mode
asserts in the code that catch tagged integers so we get test
failures if we get it wrong.
Review URL: http://codereview.chromium.org/3928002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5668 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-20 08:52:46 +00:00
mikhail.naganov@gmail.com
5feede6667
CPU Profiler: postpone moved functions registration until GC completes.
...
An attempt to retrieve security context for a function may fail if the
destination heap space is in an incomplete state. To fix this, we only
record unknown functions discovered at GC object moves, and then
register them after GC completes.
BUG=crbug/59627
Review URL: http://codereview.chromium.org/3763012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5667 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-20 08:32:24 +00:00
ager@chromium.org
08da2bd6fb
Remove vm-state.cc from build files. Forgot to do that when
...
removing the file from the repository.
Review URL: http://codereview.chromium.org/3950001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5666 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-20 06:47:49 +00:00
ager@chromium.org
5616c8bf21
Make state stack thread local. When using Lockers the state stacks of
...
multiple threads got mixed up so that the current state could be an
already deallocated state from another thread.
Review URL: http://codereview.chromium.org/3828016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5665 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-20 05:54:23 +00:00
vitalyr@chromium.org
051f156bdd
Try to fix win64 build.
...
TBR=mikhail.naganov@gmail.com
Review URL: http://codereview.chromium.org/3797016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5664 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-19 16:56:44 +00:00
vitalyr@chromium.org
e6b33bd20b
Support profiling based on linux kernel performance events.
...
Since 2.6.31 perf_events interface has been available in the
kernel. There's a nice tool called "perf" (linux-2.6/tools/perf) that
uses this interface and provides capabilities similar to oprofile. The
simplest form of its usage is just dumping the raw log (trace) of
events generated by the kernel. In this patch I'm adding a script
(tools/ll_prof.py) to build profiles based on perf trace and our code
log. All the heavy-lifting is done by perf. Compared to oprofile agent
this approach does not require recompilation and supports code moving
garbage collections.
Expected usage is documented in the ll_prof's help. Basically one
should run V8 under perf passing --ll-prof flag and then the produced
logs can be analyzed by tools/ll_prof.py.
The new --ll-prof flag enables logging of generated code object
locations and names (like --log-code), and also of their bodies, which
can be later disassembled and annotated by the script.
Review URL: http://codereview.chromium.org/3831002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5663 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-19 16:45:11 +00:00
lrn@chromium.org
484b9df414
Limit end-anchored regexps to testing end of string where possible.
...
Review URL: http://codereview.chromium.org/3844006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5661 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-19 14:00:01 +00:00
kmillikin@chromium.org
f2789a903b
Change the StackGuard runtime function to take no arguments.
...
For some reason the StackGuard runtime function took a dummy argument
that it always ignored. Change it to take no arguments.
Review URL: http://codereview.chromium.org/3838003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5660 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-19 11:14:03 +00:00
lrn@chromium.org
00e23b719d
Revert revision 5657.
...
TBR: erik.corry
Review URL: http://codereview.chromium.org/3812012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5658 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-19 10:37:54 +00:00
lrn@chromium.org
f80da64d36
Use finite-length end-anchored regexps to reduce part of regexp that is searched.
...
Review URL: http://codereview.chromium.org/3850005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5657 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-19 09:42:40 +00:00
ager@chromium.org
d4ae526526
Return false from PagedSpace::Contains if the page from an address is not valid.
...
This can happen on Mac where C++ code can be in the 4-8K range.
Review URL: http://codereview.chromium.org/3781020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5656 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-19 09:16:57 +00:00
sgjesse@chromium.org
02615e8b75
Make randomized allocations along 64k granularity boundaries to avoid comitting unused memory.
...
BUG=56036
TEST=None.
Patch by Justin Schuh <jschuh@chromium.org>
Review URL: http://codereview.chromium.org/3849004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5655 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-19 08:23:47 +00:00
vegorov@chromium.org
82b380d3b8
Clear normalized map caches in all global contexts not just in those reachable from ThreadLocalTops.
...
Issue reported by Mark Lam <mark.lam@palm.com> from Hewlett-Packard Development Company, LP.
Review URL: http://codereview.chromium.org/3828011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5654 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-19 08:14:41 +00:00
mikhail.naganov@gmail.com
e0ff35ddb6
Update sync profiling changes for Solaris platform.
...
Patch by Maciej Blizinski <blizinski@google.com>
TBR=kasperl@chromium.org
BUG=901
Review URL: http://codereview.chromium.org/3794008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5653 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-18 17:34:27 +00:00
floitschV8@gmail.com
705a57266a
Disable double strtod in ARM-simulator.
...
The ARM simulator is compiled for 32bits. On Linux the floating-point
operations are hence invalid for the simulator too.
Fixes build-breakage.
Review URL: http://codereview.chromium.org/3813009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5651 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-18 16:37:19 +00:00
floitschV8@gmail.com
1193987313
Fix double-rounding in strtod.
...
Don't use floating-point operations on Linux,x86 to compute strtod. Since the
floating-point stack on Linux is set to 80bit double rounding may occure.
When falling back to gay_strtod append several '0's so that Gay doesn't take
the same shortcut either.
BUG=
TEST=
Review URL: http://codereview.chromium.org/3851003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5650 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-18 15:19:39 +00:00
vegorov@chromium.org
b2b7aa6f3b
Link all global contexts into a weak list.
...
Review URL: http://codereview.chromium.org/3764011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5649 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-18 14:59:03 +00:00
whesse@chromium.org
e08e43691a
Fix bug in comparison of two smis that differ by MIN_SMI on full compiler on all platforms.
...
Review URL: http://codereview.chromium.org/3767016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5643 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-18 14:04:28 +00:00
antonm@chromium.org
9673ee5d59
Get rid of requested size in RetryAfterGC.
...
This was only used by Heap::CollectGarbage to check if after GC
available space is bigger than was requested, but nobody checked
the value returned by Heap::CollectGarbage, so requested size
was efficiently unused.
However, it may trigger spurious out of memory exceptions if requested
size is big enough.
BUG=http://code.google.com/p/chromium/issues/detail?id=54580
Review URL: http://codereview.chromium.org/3836001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5642 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-18 12:58:56 +00:00
kasperl@chromium.org
cabe82959f
Try to simplify the semantics of the profiling code by making
...
sure to suspend the thread (if necessary) on mac/win32 before
reading the VM state.
Avoid dealing with signals delivered to non-VM threads on
linux no matter if we're profiling or not.
Review URL: http://codereview.chromium.org/3845006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5641 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-18 12:37:07 +00:00
erik.corry@gmail.com
767bded993
Fix missing check for GC failure in number dictionary code.
...
Review URL: http://codereview.chromium.org/3781014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5640 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-18 12:16:38 +00:00
vegorov@chromium.org
5598d3c671
Prepare push to trunk. Now working on version 2.5.1.
...
Review URL: http://codereview.chromium.org/3748013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5637 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-18 11:06:51 +00:00
whesse@chromium.org
056b1f3a86
Fix compilation error on ARM with gcc 4.4. Remove NULL check of pointer to member, which was dead code (never failed).
...
Review URL: http://codereview.chromium.org/3793011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5636 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-18 10:23:45 +00:00
mikhail.naganov@gmail.com
d4bc8e1585
New Heap profiler: add dumping HeapNumbers and InternalFields to snapshot.
...
HeapNumbers do consume memory, so it's worth dumping them. However, we
don't dump their values, as they are not as self-descriptive as values
of strings, and they will increase snapshot size. Storing heap numbers
values can be added if we will feel a sufficient demand for that.
InternalFields are used, e.g. for storing references to DOM nodes
event handlers.
Review URL: http://codereview.chromium.org/3769007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5635 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-18 09:15:38 +00:00
whesse@chromium.org
a8455f0424
Do not return the constant singleton float -0.0 from UnaryOpStub, because it may be overwritten, on X64 platform.
...
Review URL: http://codereview.chromium.org/3748007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5631 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-15 14:50:49 +00:00
ricow@chromium.org
01d7470b9b
Remove trailing spaces from js files.
...
This is a cosmetic change only.
Review URL: http://codereview.chromium.org/3797009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5630 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-15 13:03:59 +00:00
whesse@chromium.org
9aec312468
Add stop-at flag implementation to full compiler on all platforms.
...
Review URL: http://codereview.chromium.org/3791009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5629 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-15 11:45:05 +00:00
erik.corry@gmail.com
d22965c49d
Fix creation of an exception to avoid rare GC corner case.
...
Review URL: http://codereview.chromium.org/3782009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5627 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-15 07:54:20 +00:00
floitschV8@gmail.com
2b226c598f
Weed out extreme exponents in strtod.
...
If a decimal exponent is less than -309 return 0.0.
If a decimal exponent is greater than +324 return +infinity.
BUG=
TEST=
Review URL: http://codereview.chromium.org/3519017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5623 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-14 13:47:48 +00:00
lrn@chromium.org
d5ac565882
Restructure RegExp exec cache code.
...
Review URL: http://codereview.chromium.org/3778004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5622 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-14 12:54:00 +00:00
sgjesse@chromium.org
e144c259c5
Remove line added by accident.
...
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/3761002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5621 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-14 11:46:55 +00:00
sgjesse@chromium.org
8e72ab6db9
Added USE_SIMULATOR macro that explicitly indicates that we wish to use the simulator as the execution engine. For example, this allows us to run with the ARM simulator on ARM.
...
Patch by Mark Lam <mark.lam@palm.com> from Hewlett-Packard Development Company, LP
Review URL: http://codereview.chromium.org/3825001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5620 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-14 11:39:48 +00:00
lrn@chromium.org
6c0cde67bc
Fix bug in cache handling of lastIndex on global regexps.
...
Review URL: http://codereview.chromium.org/3745005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5615 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-14 08:51:20 +00:00
mikhail.naganov@gmail.com
788c5e344d
Better align heap snapshots contents with debugger info.
...
I created a heap snapshot in Chromium, and then started comparing
it side-by-side with representations of objects provided by
the debugger, fixing discrepancies.
Review URL: http://codereview.chromium.org/3590029
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5612 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-13 14:57:00 +00:00
ager@chromium.org
4e259f81aa
Prepare push to trunk. Now working on version 2.5.0.
...
Review URL: http://codereview.chromium.org/3776001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5609 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-13 08:12:58 +00:00
kmillikin@chromium.org
65edae5b62
Fix a bug in our handling of conditional expressions in test contexts.
...
In the FullCodeGenerator, we compile the true subexpression of a
conditional (ternary) expression in the inherited context of the
entire expression. This is correct for effect and value contexts, but
not for test contexts where the context includes a possible
fall-through label.
Review URL: http://codereview.chromium.org/3621013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5607 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-08 13:07:55 +00:00
floitschV8@gmail.com
f5ea94da69
Simplify powers-of-ten cache.
...
The existing cache was build to support changes to fast-dtoa. This complicated the cache. Since the cached numbers are now in a .cc file they can be shared with other parts of v8.
Review URL: http://codereview.chromium.org/3608011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5606 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-07 13:02:36 +00:00
floitschV8@gmail.com
4cd03a4f6a
Implement fast case for strtod.
...
Reapply r5603 with additional fix: use OS::StrNCpy instead of posix strncpy.
BUG=
TEST=
Review URL: http://codereview.chromium.org/3557010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5605 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-07 12:53:59 +00:00
ager@chromium.org
dfacc926fc
Revert strtod fast-case change (r5603) because of Windows compilation
...
errors.
TBR=floitschV8@gmail.com
Review URL: http://codereview.chromium.org/3582017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5604 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-07 12:24:02 +00:00
floitschV8@gmail.com
ce666fc2fe
Implement fast case for strtod.
...
If there are few non-zero digits and the 10^exponent fits into a double then
we can compute the result using 1 (or 2) double operations.
BUG=
TEST=
Review URL: http://codereview.chromium.org/3584015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5603 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-07 12:01:25 +00:00
whesse@chromium.org
d4afed6bff
Fix new strtod on Windows platform, using OS::SNPrintF instead of snprintf. Fixes error in r5600.
...
Review URL: http://codereview.chromium.org/3601018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5602 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-07 09:40:26 +00:00
floitschV8@gmail.com
e5bb73acba
Fix build-breakage. Add new line to end of strtod.h. TBR: whesse@chromium.org
...
BUG=
TEST=
Review URL: http://codereview.chromium.org/3584018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5601 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-07 09:12:21 +00:00
floitschV8@gmail.com
caf6856ade
Move gay_strtod outside conversions.cc.
...
This is the first part of removing calls to gay's strtod. Future CLs will
get rid of calls to gay_strtod entirely.
BUG=
TEST=
Review URL: http://codereview.chromium.org/3563009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5600 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-07 08:54:10 +00:00
kmillikin@chromium.org
92a74be6f1
Fix presubmit failure.
...
Review URL: http://codereview.chromium.org/3605008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5595 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-06 08:47:08 +00:00