lrn@chromium.org
f09705ab9b
Make invalid break/continue statements an early syntax error.
...
Previously we delayed the throwing of syntax errors until runtime, so
unreachable errors didn't get reported.
To match a change in JSC, we now stop parsing and report the error immediately.
BUG=69736
TEST=
Review URL: http://codereview.chromium.org/6355006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6341 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-17 09:36:10 +00:00
antonm@chromium.org
fae90d4f32
Make closures optimizable by Crankshaft compiler.
...
Currently only closures which only read from the context are supported.
Review URL: http://codereview.chromium.org/5753005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6340 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-17 08:11:03 +00:00
ager@chromium.org
c1306244a6
Make the 'name' property on error prototypes read-only and dont-delete
...
to avoid leaking of error objects to accessor methods when formatting
error messages internally.
Also, do not call overwritten toString methods on error objects when
formatting messages internally.
Review URL: http://codereview.chromium.org/6272004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6322 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-14 12:51:04 +00:00
podivilov@chromium.org
ee9fd1d922
Unreviewed. Fix whitespaces for r6314.
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6315 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-14 12:01:57 +00:00
podivilov@chromium.org
beb16ce681
Tests for setting break points by script id and position.
...
Review URL: http://codereview.chromium.org/6261009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6314 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-14 11:56:14 +00:00
ager@chromium.org
48acf77389
Do not allow accessors to intercept getting/setting properties on
...
error objects under construction and string conversions.
Review URL: http://codereview.chromium.org/6146009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6291 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-13 06:56:54 +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
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
ricow@chromium.org
b4ea8c7f5e
Enable sharding of individual testsuites in tools/test.py
...
This patch enables two new flags for the tools/test.py script;
--shard-count - giving the ability to split the tests to be run
into shard-count chunks.
--shard-run - giving the ability to specify which of the shards to actually run.
Example
tools/test.py -j15 --shard-count=2 --shard-run=1 mozilla
would split the mozilla tests into two chunks and run the tests in the first chunk
Running:
tools/test.py -j15 --shard-count=2 --shard-run=1 mozilla
tools/test.py -j15 --shard-count=2 --shard-run=2 mozilla
is equivalent (in terms of test coverage) of just running:
tools/test.py -j15 mozilla
In addition, tests are now sorted before they are returned from the
test specific ListTests methods (sputnik and mozilla tests where
already sorted before they where returned).
This change is needed to split a single test suite over two slaves on
the waterfall.
Review URL: http://codereview.chromium.org/6127003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6248 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-10 13:54:42 +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
ricow@chromium.org
22d1249b68
Disable flaky test on x64 when running with --crankshaft.
...
mjsunit/compiler/simple-osr is flaky.
Disabling for now until we get osr in place on the x64 port.
Bug 1026 created to track this:
http://code.google.com/p/v8/issues/detail?id=1026
Review URL: http://codereview.chromium.org/6176001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6229 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-07 13:53:20 +00:00
whesse@chromium.org
50eaaf4be4
Speed up a regression test regress-3249650.js so it does not timeout.
...
Review URL: http://codereview.chromium.org/6175001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6228 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-07 13:52:36 +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
sgjesse@chromium.org
cce04b9071
Added a few new debugger tests.
...
Patch by Mark Lam from Hewlett-Packard Development Company, LP
Review URL: http://codereview.chromium.org/6035016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6222 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-07 11:59:41 +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
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
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
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
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
lrn@chromium.org
d8fb09a030
Fix tab in javascript file.
...
Review URL: http://codereview.chromium.org/6004009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6156 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-04 13:14:39 +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
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
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
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
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
ricow@chromium.org
717153274f
Reduce number of iterations in new regression test, this times out on arm and the regression is hit with an order of magnitude less iterations.
...
Review URL: http://codereview.chromium.org/5963001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6058 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-17 07:23:06 +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
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
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
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
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
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
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
karlklose@chromium.org
88dfadd090
Fix presubmit error.
...
Review URL: http://codereview.chromium.org/5891001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6024 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-15 11:43:35 +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
ager@chromium.org
5dc1d7a126
Update test expectations for ARM crankshaft build.
...
Review URL: http://codereview.chromium.org/5813002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6014 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-15 07:46:22 +00:00
ricow@chromium.org
cd2f41f7dd
Don't run mjsunit/compiler/regress-funcaller in debug mode.
...
This test takes 12+ minutes to run on the windows slaves. In addition,
the regression is hit in release mode on the code prior to the fix for
this.
Review URL: http://codereview.chromium.org/5701006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6009 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-14 13:15:28 +00:00
ricow@chromium.org
60f07139aa
Disable mjsunit/regress/regress-create-exception in debug mode.
...
This test takes a very long time to run in debug mode. This test alone
is causing 10+ minutes of cycle time on the windows debug bots (and the
same in CPU runtime on all slaves!).
Review URL: http://codereview.chromium.org/5748006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6002 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-14 08:55:57 +00:00
ricow@chromium.org
f89d4f39e6
mjsunit/regress/regress-3247124 takes a long time to run, and the original regression is hit
...
with two orders of magnitude less iterations.
Review URL: http://codereview.chromium.org/5822001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6001 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-14 08:29:33 +00:00
ricow@chromium.org
3b1152aed4
Change the number of iterations in mjsunit/regress-962
...
This test causes the arm simulator to timeout, and the test reveals
the original problem with three orders of magnitude less iterations.
Review URL: http://codereview.chromium.org/5678007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5999 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-14 07:57:14 +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
b1c71408d7
Rename regression test and reenable disabled test.
...
The regression test for v8 issue 969 was committed with the wrong file
name. Also reenable a test that was disabled due to that issue.
Review URL: http://codereview.chromium.org/5707008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5992 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-13 16:52:04 +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
ricow@chromium.org
ad0401174a
Temporarily disable mjsunit/array-splice (issue 969)
...
Disabling this to get the waterfall green, Kevin knows what the issue
is and is working on a fix.
Review URL: http://codereview.chromium.org/5752005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5980 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-13 12:10:41 +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
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
ager@chromium.org
eb8e1d9d0e
Change test script to make it easy to run crankshaft tests on ARM and
...
x64 where crankshaft is not the default. Add ability to add custom
expectations for running in this special crankshaft mode.
The expectations are not updated in this change. There are a couple of
bugs that I would like to fix before doing that. Otherwise the lists
will be very long. :)
Review URL: http://codereview.chromium.org/5787001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5962 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-10 12:05:28 +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
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
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
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
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
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
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
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
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
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
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
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
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
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
erik.corry@gmail.com
7fc68c0399
Stop running some liveedit tests (see issue 915).
...
Plug tiny memory leaks in test-lock.cc.
Review URL: http://codereview.chromium.org/4161005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5735 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-29 07:10:14 +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
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
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
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
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
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
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
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
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
erik.corry@gmail.com
759a87b520
Fix new-space-too-small test crash on 64 bit VM.
...
Review URL: http://codereview.chromium.org/3778009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5628 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-15 10:45:18 +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
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
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
lrn@chromium.org
a556a16f0f
Fix bad cast in string-search.h.
...
Review URL: http://codereview.chromium.org/3530004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5572 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-01 09:08:52 +00:00
erik.corry@gmail.com
d46fb9d454
New attempt to make the allocation routines 64 bit clean.
...
This one has been approved by the 64 bit compiler in MSVC
2005 so I hope it also passes the 2008 version.
The --max-new-space-size option is now in kBytes.
The --max-old-space-size option is now in MBytes.
Some issues remain with 64 bit heaps and the counters. See
http://code.google.com/p/v8/issues/detail?id=887
Review URL: http://codereview.chromium.org/3573005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5559 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-30 07:22:53 +00:00
erik.corry@gmail.com
2d0c23bc82
Revert attempt to make heap size 32/64 clean. This change needs to
...
be done from Windows where the compiler is stricter about truncating
changes.
Review URL: http://codereview.chromium.org/3454035
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5545 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-28 12:49:25 +00:00
erik.corry@gmail.com
28d7064856
More correctness around PrintF and 32/64 bit values.
...
Fix test after 64 bit heap size change.
Review URL: http://codereview.chromium.org/3432032
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5543 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-28 11:44:30 +00:00
erik.corry@gmail.com
f1635606df
Use intptr_t instead of int for heap sizes. This is a step towards
...
removing the 1Gbyte limit.
Review URL: http://codereview.chromium.org/3418035
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5542 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-28 10:35:47 +00:00
vitalyr@chromium.org
1982f9d257
Custom call IC for Math.abs.
...
Review URL: http://codereview.chromium.org/3446024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5538 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-27 23:41:41 +00:00
vitalyr@chromium.org
48fd3dcaf9
Fix copy-on-write assert by setting the new array map early.
...
BUG=876
Review URL: http://codereview.chromium.org/3466013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5513 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-23 12:23:35 +00:00
vegorov@chromium.org
622351fedd
Fix getOwnPropertyDescriptor() support for index properties.
...
Add support for index properties with getters, setters or indexed interceptors.
For indexed interceptor case only fix crashes, do not guarantee any semantic soundness. Separate issue opened for this http://code.google.com/p/v8/issues/detail?id=877
BUG=http://code.google.com/p/v8/issues/detail?id=874
Review URL: http://codereview.chromium.org/3462005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5512 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-23 11:25:01 +00:00
lrn@chromium.org
0dece535d9
RegExp: Fix caching to correctly set lastIndex.
...
BUG: 52801
Review URL: http://codereview.chromium.org/3389022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5504 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-22 11:22:57 +00:00
vitalyr@chromium.org
a6bbe9820e
Custom call IC for Math.floor.
...
Review URL: http://codereview.chromium.org/3327022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5499 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-21 12:54:12 +00:00
yurys@chromium.org
b2f444f6e6
Use //@ sourceURL when formatting stack trace
...
BUG=672
Review URL: http://codereview.chromium.org/3444011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5498 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-20 15:55:28 +00:00
lrn@chromium.org
3b8235b306
Make some runtime arguments checks be RUNTIME_ASSERT, not ASSERT.
...
Review URL: http://codereview.chromium.org/3411013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5482 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-17 08:34:53 +00:00
kaznacheev@chromium.org
eef3bd7c04
Prevent inline constructor generation when duplicate properties are present in the constructor.
...
Currenly the constructor like this:
function f() {
this.a = 0;
this.a = 1;
this.a = 2;
}
creates a map with duplicate desciptors which is bad in many ways.
Review URL: http://codereview.chromium.org/3434004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5476 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-16 10:55:37 +00:00
fschneider@chromium.org
e91a352d02
Fix a regression in character-at stub when doing a keyed load on a string.
...
Loading from out-of-range has to go to the runtime system to check if there
exists a property with that index in the prototype.
Review URL: http://codereview.chromium.org/3410011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5471 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-16 09:18:08 +00:00
lrn@chromium.org
84d8115ecf
Fix bug in Array.prototype.indexOf/lastIndexOf when called on non-sparse non-arrays.
...
Review URL: http://codereview.chromium.org/3358025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5439 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-10 08:21:01 +00:00
lrn@chromium.org
ac2ae05f85
make Date.parse properly handle TZ offsets
...
This makes, e.g., Date.parse("2010-08-31T22:35:36-09:00") work as
expected. Without this change, the "-9:00" timezone-offset portion
causes V8 to fail to properly parse that string into a date.
BUG=http://code.google.com/p/v8/issues/detail?id=857
TEST=Try Date.parse("2010-08-31T22:35:36-09:00") and make sure
that it gets parsed without errors and does not return NaN.
Review URL: http://codereview.chromium.org/3318017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5436 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-10 07:00:28 +00:00
vitalyr@chromium.org
624b13a804
Custom call IC for String.fromCharCode.
...
Review URL: http://codereview.chromium.org/3291015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5433 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-09 13:38:01 +00:00
lrn@chromium.org
d1a674f7c1
Add sparse array handling to Array.protoype.indexOf/lastIndexOf.
...
Review URL: http://codereview.chromium.org/3132046
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5432 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-09 12:57:32 +00:00
kaznacheev@chromium.org
73c02394bf
Avoid pushing arguments twice in GenericBinaryOpStub.
...
Under some conditions (ADD, non-number arguments passed in registers)
GenerateRegisterArgumentsPush was called twice and the stack broke.
Review URL: http://codereview.chromium.org/3290012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5422 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-07 13:33:40 +00:00
serya@chromium.org
e54ad9ee86
Removing a wrong check.
...
A strings which represents an array index with length 8 and 9 digits do not pass this check. However generated hash is valid.
Review URL: http://codereview.chromium.org/3295017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5420 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-07 11:32:20 +00:00
vitalyr@chromium.org
62f7cd8500
Handle argument conversion in StringAddStub.
...
In case one of the arguments is known to be a string we emit a few
fast conversion attempts for the other. This allows using the
StringAddStub instead of STRING_ADD_{LEFT,RIGHT} builtins.
Review URL: http://codereview.chromium.org/3338007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5405 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-03 12:10:44 +00:00
lrn@chromium.org
6670c0ad38
Make JSON.stringify not quote non-ASCII characters. Fix bug 855.
...
Review URL: http://codereview.chromium.org/3336001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5398 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-02 07:09:28 +00:00
erik.corry@gmail.com
663f378da5
Get gcc to check that we don't ignore return values of functions that can
...
fail to allocate because we need a GC.
Review URL: http://codereview.chromium.org/3274008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5379 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-31 08:05:42 +00:00
ager@chromium.org
d955b212b5
Follow Safari and Firefox in returning empty array from array splice
...
with no arguments.
Review URL: http://codereview.chromium.org/3277005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5375 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-30 18:08:50 +00:00
vegorov@chromium.org
3d60cc34af
Fix regress-851.js to use assertNull instead of assertFalse.
...
Review URL: http://codereview.chromium.org/3232002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5365 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-27 13:23:14 +00:00
vegorov@chromium.org
f059093562
Check result of JSObject::NormalizeElements() in JSObject::PreventExtensions().
...
Normalization requires allocation so Failure object can be returned.
BUG=http://code.google.com/p/v8/issues/detail?id=851
TEST=test/mjsunit/regress/regress-851.js
Review URL: http://codereview.chromium.org/3262001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5364 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-27 13:06:50 +00:00
serya@chromium.org
71548e969b
Using array index hash code for string-to-number conversion.
...
Review URL: http://codereview.chromium.org/3141022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5362 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-27 11:47:12 +00:00
ricow@chromium.org
7672338bc9
Fixes bug in Object.freeze and Object.seal causing them to misbehave when Array.prototype has changed.
...
Object.freeze and Object.seal uses GetOwnPropertyNames which
returns an array with local property names. This array will also have
the additional properties defined on Array.prototype or
Object.prototype.
Note that, the implementation of GetOwnPropertyNames (when used as
Object.getOwnPropertyNames) is correct, since the spec says to create
a new Array (which would also have these properties).
Review URL: http://codereview.chromium.org/3137041
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5350 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-26 08:35:49 +00:00
ricow@chromium.org
3543dd53a4
Refactor the tools/test.py script and related testcfg.py files.
...
This makes it possible to run several variants of the tests (with different flags that is) by adding extra lists to the VARIANT_FLAGS list. In addition, there is a number of smaller refactorings.
Review URL: http://codereview.chromium.org/3164023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5329 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-24 13:34:59 +00:00
erik.corry@gmail.com
8682804746
Fix an issue in the ARM port where a left shift was predicted to have a Smi result when it had an int32 result. This is a commit of http://codereview.chromium.org/3195004 for Rodolph Perfetta. Part 2
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5316 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-23 09:04:31 +00:00
lrn@chromium.org
0210df5848
Use Copy-on-write arrays for cached regexp results.
...
Review URL: http://codereview.chromium.org/3158020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5310 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-20 09:37:22 +00:00
erik.corry@gmail.com
702780ee9a
Make the Integer32 type info only cover the signed 32 bit integers.
...
Fix some bit op bugs introduced last week on IA32:
http://code.google.com/p/chromium/issues/detail?id=52096
Review URL: http://codereview.chromium.org/3151017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5273 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-16 15:08:32 +00:00
erik.corry@gmail.com
e18d07b604
ARM: Ensure that we are not in a spilled scope when calling
...
Load() or constructing a reference.
Review URL: http://codereview.chromium.org/3125011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5270 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-16 11:43:30 +00:00
peter.rybin@gmail.com
6fa44eb979
LiveEdit: implement stack manipulations for x64
...
Review URL: http://codereview.chromium.org/3120011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5264 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-13 13:54:28 +00:00
sgjesse@chromium.org
56e0221754
Handle accessors when generating Error.stack
...
BUG=http://code.google.com/p/v8/issues/detail?id=798
TEST=test/mjsunit/regress/regress-798.js
Review URL: http://codereview.chromium.org/3082012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5258 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-13 08:31:52 +00:00
sgjesse@chromium.org
5cd4a9b78d
Remove runtime function from fuzzing
...
Don't do fuzzing of _IsStringWrapperSafeForDefaultValueOf as it expects a non-smi as its first argument.
Review URL: http://codereview.chromium.org/3109010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5253 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-12 14:38:50 +00:00
sgjesse@chromium.org
8e0cd6db8a
Handle overwriting valueOf on String objects correctly when adding
...
This adds a check to the fast case string add to ensure that the String object still have the default valueOf function. The default valueOf is sitting on a hidden prototype of String.prototype.
Before using the fast case valueOf the object is checked for a local valueOf property. For slow case objects this check always reports true (the dictionary is not probed, so valueOf might be there) and for fast case objects the descriptor array is checked for the valueOf symbol (just liniar scan). After that the prototype is checked for beeing the initial value of String.prototype. If this all pass (that is the default valueOf is still in place) this result is cached on the map making the check fast the next time.
This is only implemented in the optimizing compiler, as the two usages of %_IsStringWrapperSafeForDefaultValueOf is never hit by the full compiler.
I will port to x64 and ARM when this has been reviewed for ia32.
I will remove the performance counters prior to final commit.
BUG=http://code.google.com/p/v8/issues/detail?id=760
TEST=test/mjsunit/regress/regress-760-1.js
TEST=test/mjsunit/regress/regress-760-2.js
Review URL: http://codereview.chromium.org/3117006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5252 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-12 13:43:08 +00:00
sgjesse@chromium.org
fcfe6d74d9
Minor change to for-in
...
Return (smi) 0 instead of object null from the FILTER_KEY builtin.
Add a test which tests keys being deleted during for-in.
Review URL: http://codereview.chromium.org/3170004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5243 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-11 13:46:10 +00:00
lrn@chromium.org
6267578925
Removed support for object literal get/set with number/string property name.
...
It doesn't work correctly for array indices.
Review URL: http://codereview.chromium.org/3109002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5232 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-10 12:44:13 +00:00
erik.corry@gmail.com
bdfdf8bee9
Fix fuzzer-found error where left and right were the same register in bitops.
...
Review URL: http://codereview.chromium.org/3115004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5231 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-10 12:30:14 +00:00
ricow@chromium.org
44425bcc03
Change dos line endings to unix line endings in a number of mjsunit test files.
...
Review URL: http://codereview.chromium.org/3072031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5212 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-09 12:21:50 +00:00
lrn@chromium.org
53e22e386c
Create a new RegExp object for every evaluation of a RegExp literal.
...
Changes necessary to following ES5 semantics and matching Safari - in ES3
the same RegExp object was generated by each evaluation of the RegExp literal.
Fixes bug 704.
Review URL: http://codereview.chromium.org/3034060
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5198 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-06 13:04:27 +00:00
sgjesse@chromium.org
88b19a9d0c
Re-apply r5165 (Added support for ES5's propertyname production)
...
TBR=lrn@chromium.org
Review URL: http://codereview.chromium.org/3073031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5192 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-06 08:03:44 +00:00
sgjesse@chromium.org
1844e149ab
Revert r5165 (Added support for ES5's propertyname production)
...
This is to test in Chromium without this change.
TBR=lrn@chromium.org
Review URL: http://codereview.chromium.org/3027043
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5182 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-05 14:46:34 +00:00
sgjesse@chromium.org
a1a3aa46a2
Object.seal(obj) and Object.freeze(obj) should return the input obj.
...
BUG=http://code.google.com/p/v8/issues/detail?id=809
TEST=Seal/freeze an object and check if Object.seal and Object.freeze returns the given object.
Burcu Dogan <burcujdogan@gmail.com>
Review URL: http://codereview.chromium.org/3056049
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5176 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-05 10:56:15 +00:00
lrn@chromium.org
24cf5459f5
Added support for ES5's propertyname production.
...
Object initialisers and dot-notation property access allows keywords in ES5.
Also allowed non-identifiers after "get" or "set" in an object initialiser.
Review URL: http://codereview.chromium.org/3047038
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5165 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-02 12:09:10 +00:00
vegorov@chromium.org
4a2f05ce35
Fix issue 806.
...
Ensure that we are not using r12 as a receiver in inlined NamedStore code.
Review URL: http://codereview.chromium.org/3081007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5162 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-02 09:14:44 +00:00
podivilov@chromium.org
c115a39942
Add debugger protocol request for setting global flags.
...
Review URL: http://codereview.chromium.org/2880011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5148 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-28 15:50:05 +00:00
podivilov@chromium.org
52762e4c59
Breakpoint position should be inside function body.
...
Review URL: http://codereview.chromium.org/2883042
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5145 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-28 13:02:03 +00:00
whesse@chromium.org
3607a9e78e
Fix error in optimized x.apply(y, arguments) code generation on ARM. Fixes issue 784. Adds regression test.
...
Review URL: http://codereview.chromium.org/3048035
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5144 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-28 12:50:27 +00:00
peter.rybin@gmail.com
30b85b3962
Fix break position not to be outside of the script
...
Review URL: http://codereview.chromium.org/3017021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5131 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-23 17:21:55 +00:00
ricow@chromium.org
e084e56129
Implement Function.prototype.bind (ES5 15.3.4.5).
...
Please note that we do not implement correctly the setting of caller
and arguments on the returned objects, since we already have these
properties on function objects (and they are non-configurable).
Also corrects indention in DefineOwnProperty.
Review URL: http://codereview.chromium.org/3046010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5124 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-23 10:08:55 +00:00
whesse@chromium.org
9991a4b226
Fix issue 785. For-in now works on strings: for (var i in "asdf") now works
...
all the time, not just the first time it is run.
Review URL: http://codereview.chromium.org/3037008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5095 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-19 12:45:21 +00:00
ricow@chromium.org
f5f0b80363
Implement ES5 Object.seal and Object.isSealed.
...
This change adds the ES5 Object.seal 15.2.3.8 and Object.isSealed 15.2.3.11 methods.
Review URL: http://codereview.chromium.org/2993006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5072 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-15 07:51:14 +00:00
serya@chromium.org
1b9391be7a
Fix GenerateNegativeLookup to work with non-symbols as a dictionary key.
...
Review URL: http://codereview.chromium.org/2928009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5071 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-15 06:17:45 +00:00
whesse@chromium.org
cb1eedd269
Fix error in x64 fast smi loops, change 4998.
...
Review URL: http://codereview.chromium.org/2925012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5069 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-14 13:22:47 +00:00
ricow@chromium.org
e2fab5fd9f
Fix bug in Object.isFrozen which always classifies non-extensible objects as frozen.
...
Since out internal representation of a property descriptor does not have configurable and writable
attributes Object.isFrozen returns true whenever an object is not extensible.
This change makes use of the right method calls on our internal representation (isWritable() and
isConfigurable()). Tests added directly to the mjsunit test.
Review URL: http://codereview.chromium.org/2904015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5068 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-14 13:15:43 +00:00
ricow@chromium.org
325fd42c3f
Add ES5 Object.freeze and Object.isFrozen methods.
...
This change adds ES5 15.2.3.9 Object.freeze and
15.2.3.12 Object.isFrozen
Review URL: http://codereview.chromium.org/2944016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5055 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-13 12:58:02 +00:00
ager@chromium.org
0f4a330508
Fix JSON.parse typo which causes the input not to be string converted.
...
Review URL: http://codereview.chromium.org/2981004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5051 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-13 10:57:45 +00:00
ager@chromium.org
f6e049b0ce
Remove the special error message for overflows when using
...
Function.prototype.apply. This avoids having more than one error
message for stack overflow situations which makes testing a pain.
Review URL: http://codereview.chromium.org/2967003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5045 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-12 15:29:25 +00:00
whesse@chromium.org
f7c85755ba
Prevent invalid pre-parsing data passed in through the API from crashing V8.
...
Review URL: http://codereview.chromium.org/2876046
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5030 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-07 10:28:22 +00:00
erik.corry@gmail.com
118a421067
Simplify the transitions in the Binary Op ICs. Now a single call
...
to the runtime will both patch in the more specialized binary op
stub and calculate the answer. This eliminates the need to call
both the rest of the binary op and the patching runtime call. The
runtime routines are altered to be more agressive in returning
Smis so we don't get spurious heap numbers as inputs to binary ops
while we are patching the binary op ICs.
Review URL: http://codereview.chromium.org/2843049
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5026 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-06 12:56:55 +00:00
vitalyr@chromium.org
7b521af105
Fix crash: handle all flat string types in regexp replace.
...
Review URL: http://codereview.chromium.org/2868046
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5025 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-06 12:22:19 +00:00
peter.rybin@gmail.com
6563b3a2fc
Describe LiveEdit changes and support preview mode
...
Review URL: http://codereview.chromium.org/2883020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5015 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-02 20:46:04 +00:00
ager@chromium.org
06a28cbe57
Fix bug in date code (issue 736) where -0 was not mapped to 0. This caused the
...
runtime system to throw an exception because it expected smi arguments.
Review URL: http://codereview.chromium.org/2848038
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5013 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-02 20:09:33 +00:00
ricow@chromium.org
eed4ed99c8
Add ES5 Object.isExtensible and Object.preventExtensions.
...
Review URL: http://codereview.chromium.org/2819034
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5011 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-02 14:36:34 +00:00
serya@chromium.org
c56b92d65d
This change allows generating call-stubs for objects with normal (non-fast) objects in the prototype chain. StubCompiler::CheckPrototypes does ne
...
If the top level object is a normal object the stub is stored in its prototype map.
Lookup result of type NORMAL is not covered (since the normal stub currently doesn't check the prototype chain).
Review URL: http://codereview.chromium.org/2801018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5010 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-02 14:15:04 +00:00
sgjesse@chromium.org
97ecc50377
ARM: Correctness fix to Math.pow optimization
...
The change in r4990 contained a bug in Math.pow when then exponent was a large negative smi. In that case calculating 1/Math.pow(x,-y) did not provide the correct result as Math.pow(x,-y) would overflow ti infinity. This was caught by Sputnik test S8.5_A13_T1.
Review URL: http://codereview.chromium.org/2815039
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4994 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-30 15:19:06 +00:00
ager@chromium.org
6044b33766
Implement IC for storing to dictionary case objects.
...
The IC stub is completely generic, so there will only be one such stub
in the system.
Added a new overloaded version of the macro assembler RecordWrite
method for cases where we have the address we store to computed up
front.
Review URL: http://codereview.chromium.org/2804029
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4991 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-30 12:27:49 +00:00
sgjesse@chromium.org
ff6c4fe680
ARM: Special code for raising to the power of an integer
...
When calculating Math.pow where the exponent is a smi use a simple loop to calculate the result.
Added support for the vmov instruction moving from one doubleword extension register to another.
Added some Math.pow tests which partially covers what is in the Sputnik tests.
Review URL: http://codereview.chromium.org/2804033
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4990 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-30 12:22:15 +00:00
sgjesse@chromium.org
65018d9123
ARM: Use the vsqrt instruction when available
...
vsqrt is used to calculate Math.sqrt(x), Math.pow(x, 0.5) and Math.pow(x, -0.5). Code size doesn't matter, as %_MathSqrt and %_MathPow are only called in one place each.
Review URL: http://codereview.chromium.org/2885002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4974 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-29 09:40:36 +00:00
ricow@chromium.org
eff34b9952
Update JSON.stringify to floor the space parameter (fixes issue 753).
...
Review URL: http://codereview.chromium.org/2877004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4972 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-29 07:22:40 +00:00
whesse@chromium.org
363060ca23
Ensure that ToPrimitive is called on all objects involved in comparisons <, <=, >, >=. Ensures that ToPrimitive is called when comparing an object to undefined. Fixes bugs on all platforms.
...
Review URL: http://codereview.chromium.org/2834022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4971 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-29 06:47:19 +00:00
podivilov@chromium.org
b2b140a525
Provide actual breakpoints locations in response to setBreakpoint and listBreakpoints requests.
...
Review URL: http://codereview.chromium.org/2799037
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4965 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-28 12:09:29 +00:00
erik.corry@gmail.com
bcfaba24c1
Do integer mod via sum-of-digits technique. This benefits the date
...
code.
Review URL: http://codereview.chromium.org/2876011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4964 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-28 11:47:23 +00:00
ricow@chromium.org
faaf524445
Fixes bug in Array.prototype.lastIndexOf when called with null or undefined as fromIndex argument. (fixes issue 754).
...
Review URL: http://codereview.chromium.org/2840021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4950 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-25 09:28:38 +00:00
ager@chromium.org
b71fe5b61e
Fix bug in JSON.stringify where Boolean objects are incorrectly
...
unwrapped.
This fixes issue 752.
Review URL: http://codereview.chromium.org/2845023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4946 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-25 07:45:52 +00:00
lrn@chromium.org
7b46a1f49d
Fix bug in regexp exec with global regexps.
...
Review URL: http://codereview.chromium.org/2826020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4945 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-25 07:00:29 +00:00
whesse@chromium.org
d0a9f76261
Fix error in for-in on x64 platform using full compiler with keyed store IC.
...
BUG=v8:748
http://code.google.com/p/v8/issues/detail?id=748
Review URL: http://codereview.chromium.org/2810027
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4942 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-24 14:02:36 +00:00
erik.corry@gmail.com
ca8298273a
ARM: Fix bug introduced in 4783 (2.2.15) that caused the
...
result of 1 << x to be miscalculated for some inputs.
Review URL: http://codereview.chromium.org/2848021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4929 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-23 13:44:11 +00:00
ricow@chromium.org
be531accc0
Add regression test for the code flushing in issue 474 (which was
...
fixed in revision 4921).
This also enables codeflushing by default.
Review URL: http://codereview.chromium.org/2829020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4922 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-23 08:02:06 +00:00
lukezarko
aade86e044
Make the apply.js unit test more resilient to differing stack positions.
...
More information is at http://code.google.com/p/v8/issues/detail?id=742
Review URL: http://codereview.chromium.org/2835014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4918 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-22 22:20:58 +00:00
vitalyr@chromium.org
3cafa65462
Track ascii-ness of data in externalized strings.
...
If a two-byte string only contains ascii characters, then we can save
memory when flattening a cons string containing it. Similarly we can
use this in Array.prototype.join implementation. To track this a new
bit is added to instance type. This bit is used as a hint in generated
code and in runtime functions.
To enable testing a new V8 extension is added controlled by
--expose-externalize-string flag.
Review URL: http://codereview.chromium.org/2762008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4894 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-17 16:19:28 +00:00
podivilov@chromium.org
7808d45af5
Fix a bug when top level break points fall into the last function in script.
...
Review URL: http://codereview.chromium.org/2824007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4890 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-17 12:47:08 +00:00
podivilov@chromium.org
f5fdef253b
Save actual break point location to script break point object.
...
Review URL: http://codereview.chromium.org/2864003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4879 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-16 14:50:07 +00:00
kaznacheev@chromium.org
b251f14782
Port KeyedCallIC implementation to x64 and ARM.
...
Also edited ic-ia32.cc for clarity and better formatting.
Review URL: http://codereview.chromium.org/2853003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4873 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-16 10:03:47 +00:00
ricow@chromium.org
de512af068
Add support for elements and array indices in Object.defineProperty
...
(fixes bug 619).
This also fixes a bug in GetOwnProperty in runtime.cc discovered by
the new test cases. That part of the code was not testable before
since we had no way of correctly defining properties on elements.
Review URL: http://codereview.chromium.org/2832001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4862 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-14 13:55:38 +00:00
sgjesse@chromium.org
e045ca6898
Better handling of stepping out of a function
...
With the change in r4820 all return statements are now breakable like any statement, so stepping will stop before the return statement actually returning from a function. With this change the position when breaking in the function return (after executing the return statement) will be the actual end of the function. At this point the return value is available as it saved to the stack by the debug break at return handling. Added information on the actual value returned from the function to the debugger.
Review URL: http://codereview.chromium.org/2783002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4835 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-10 09:02:16 +00:00
kaznacheev@chromium.org
1dec9199ca
Add logic from KeyedLoadIC generic stub to KeyedCallIC megamorphic stub.
...
This should make access faster for arrays of functions.
Review URL: http://codereview.chromium.org/2754003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4834 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-10 05:06:39 +00:00
sgjesse@chromium.org
634fb9152c
More precise break points and stepping when debugging
...
Added support for more precise break points when debugging and stepping. To achieve that additional nop instructions are inserted where breaking would otherwise be impossible. The number of nop instructions inserted are sufficient to make place for patching with a call to a debug break code stub. On Intel that is 5 nop's for 32-bit and 13 for 64-bit. Om ARM 3 nop instructions (12 bytes) are required.
In order to avoid inserting nop's in to many places a simple ast checker have been added to check whether there are breakable code in a statement or expression. If it is possible to break in an expression no additional break enabeling code is inserted.
Added break locations to the true and false part of a conditional expression.
Added stepping tests to cover more constructs.
These changes are only in the full compiler.
Changed the default value for the option --debugger in teh d8 shell from true to false. The reason for this is that with --debugger turned on the full compiler will be used for all code in when running d8, which can be unexpeceted.
Review URL: http://codereview.chromium.org/2693002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4820 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-08 12:04:49 +00:00
ricow@chromium.org
e0bbcf1e6e
Fix bug in mjsunit/const-eval-init causing objects to be initialized to undefined.
...
In mjsunit/const-eval-init - testInitSlowCaseExtension a range of objects are initialized to undefined instead of a value because the variable i is within quotes (i.e., the source becommes "a1 = i" instead of "a1 = 1".
This should have no impact on the test, I just stumbled over this on
an unrelated matter.
Review URL: http://codereview.chromium.org/2758002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4817 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-08 11:20:36 +00:00
vegorov@chromium.org
1d932dcc6e
Add regression tests for issues 728, 732
...
TBR=lrn@chromium.org
Review URL: http://codereview.chromium.org/2698004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4807 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-07 10:54:42 +00:00
kaznacheev@chromium.org
ff61618c4b
Extend CallIC to support non-constant names.
...
This speeds up constructs like this:
var zz='replace'; '123'[zz]('3','4');
Review URL: http://codereview.chromium.org/2280007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4804 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-07 08:27:32 +00:00
ager@chromium.org
723bed3105
Optimize calls to evals. Most of the time there is no reason to
...
perform a context lookup in the runtime system for the 'eval'
function. Instead load the 'eval' function from the global context in
generated code if it is not shadowed.
Will port to other platforms as a separate change.
Review URL: http://codereview.chromium.org/2666001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4794 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-04 10:19:19 +00:00
vitalyr@chromium.org
6c74d30f83
Fix double to integer conversions in runtime string indexing.
...
Review URL: http://codereview.chromium.org/2577001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4791 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-03 11:31:19 +00:00
vitalyr@chromium.org
3ec0b86495
Make StringCharCodeAt runtime function do what it name implies and not
...
just indexed string access.
The difference is that String.prototype.charCodeAt accepts any number
as an index, whereas string[] only accepts array indices.
Review URL: http://codereview.chromium.org/2467006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4790 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-03 09:32:07 +00:00
whesse@chromium.org
019b8c4511
Change the interface of LoadIC on the x64 platform to take its arguments in registers.
...
Review URL: http://codereview.chromium.org/2330003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4759 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-05-31 13:26:12 +00:00
ricow@chromium.org
5058db86c4
Add support for getOwnPropertyDescriptor on array indices (fixes issue 599).
...
This fix adds support for retriving a property descriptor on elements. The
new version supports both fast and slow case elements. In the fast case
we always default configurable, writable, enumerable to true (we don't have
PropertyDetails for fast elements).
A few new tests are added to get-own-property-descriptor.js, I will
add a lot more to object-define-property when I add support for indices in
Object.defineProperty.
Review URL: http://codereview.chromium.org/2278002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4738 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-05-27 07:43:43 +00:00
vitalyr@chromium.org
64bc39a726
Fix: make string indexing work with Infinity.
...
NumberToUint32 that I was trying to use maps -0 to +0 (as desired) but
also maps +/-Infinity to +0, which made +/-Infinity a valid string
index. I fixed it by introducing a new runtime function with the right
semantics.
TEST=LayoutTests/fast/js/char-at.html,mjsunit/string-charat.js
Review URL: http://codereview.chromium.org/2223003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4734 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-05-26 16:11:30 +00:00
vitalyr@chromium.org
ad0e38909f
Custom call IC-s for String.prototype.{charAt,charCodeAt}.
...
These string methods can be composed from two basic blocks: charCodeAt
and fromCharCode, both of which have fast cases for certain types of
inputs. In this patch these two blocks are refactored to allow
generating the fast cases without having to jump around the slow
cases. In the slow cases since they can now be invoked both from
inline runtime functions and from IC stubs we either have to
save/restore state of the current frame or enter/leave a new internal
frame. This is handled by new RuntimeCallHelper interface. Its
implementation for virtual frame is based on FrameRegisterState class
extracted from DeferredCode class.
Review URL: http://codereview.chromium.org/2087009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4733 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-05-26 14:23:19 +00:00
ricow@chromium.org
95939ada29
Fix issue 720 making Object.defineProperty handle existing writable flags correctly.
...
The existing version will overwrite the existing writable flag with
false even in the case where no new value is given and the existing
writable flag is true.
The reason for the issue is that there is no check to see if the
provided descriptor actually has a writable attribute. This causes us
to use the default value (false) even in the case where nothing was
provided. In addition, the existing tests makes wrong assumptions (that writable is always set to false if not provided) and has been changed to follow the specification.
Review URL: http://codereview.chromium.org/2271001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4720 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-05-26 08:31:57 +00:00
ricow@chromium.org
7bbfc8fc53
Refactor the samevalue internal method and add tests for this method.
...
Noticing that the only difference between samevalue and strict equality is on
numbers we can simplify SameValue.
The old version did not return a correct answer if called on two strings since
StringEquals (from runtime.cc) returns an answer that is the negated value
(if treated as a boolean).
Review URL: http://codereview.chromium.org/2136024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4713 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-05-25 10:35:55 +00:00
ricow@chromium.org
fb58bc06c6
Fixes issue 712 causing non-configurable accessors to be overwritable by using
...
Object.defineProperty with empty property descriptor.
The issue is fixed by implementing step 5 and 6 from DefineOwnProperty in the
specification (ES5 8.12.9).
This also fixes a bug in SameValue when used on boolean values (it
would priorly return a number - not a boolean).
Review URL: http://codereview.chromium.org/2131019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4708 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-05-25 06:25:27 +00:00
whesse@chromium.org
ac60f498d2
Change keyed store IC interface on x64 to take value, key, and receiver in registers rather than on the stack.
...
Review URL: http://codereview.chromium.org/2111011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4692 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-05-20 15:09:21 +00:00
vitalyr@chromium.org
3260fb9465
Add stack traces to mjsunit tests.
...
Review URL: http://codereview.chromium.org/2094005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4654 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-05-14 10:00:24 +00:00
peter.rybin@gmail.com
07f95278e7
Apply "Update mjsunit.status rules for LiveEdit test" again
...
Review URL: http://codereview.chromium.org/2015017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4651 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-05-12 14:46:09 +00:00
antonm@chromium.org
e8e35eccac
Properly process arrays with overridden prototype in various Array's functions.
...
Bailout to JS Array builtins if array's prototype is different from
Array.prototype. Otherwise there might be inherited elements coming
from this prototype.
Review URL: http://codereview.chromium.org/2037008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4649 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-05-12 12:22:09 +00:00
peter.rybin@gmail.com
b49b954d32
Revert "Update mjsunit.status rules for LiveEdit test"
...
Review URL: http://codereview.chromium.org/2019007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4637 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-05-10 17:57:42 +00:00
peter.rybin@gmail.com
0b9fb1e0aa
Update mjsunit.status rules for LiveEdit test
...
Review URL: http://codereview.chromium.org/1952001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4635 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-05-10 17:09:38 +00:00
ager@chromium.org
f54b7767c6
Implement fast load and call of arguments in the presence of eval.
...
Load the arguments object from the context if there are no extensions
objects on the way. Then load the argument with a keyed load ic.
Review URL: http://codereview.chromium.org/2033004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4633 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-05-10 12:20:06 +00:00
ricow@chromium.org
8d51195778
Fixed issue 619 allowing Object.create to be called with a function.
...
This change allows Object.create to take a function as input in the
proto argument. The spec says that Type(O) for the proto argument
should be true but our IS_OBJECT does not check for this. I will make a
IS_SPEC_OBJECT in macros.py and refactor v8natives in another CL.
Review URL: http://codereview.chromium.org/2051001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4622 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-05-09 08:43:59 +00:00
ricow@chromium.org
fb3e01a306
Correct issue 696 with Date.parse returning a value when called on a non date string.
...
The error was introduced in revision 4557 where support was added for
ES5 date time format strings. Because there was no check for a valid
year a random string starting with a non-digit character would be
parsed.
This change disallows ES5 formatted dates where there is no date
fraction (i.e., with only a timestamp). Since none of the other
browsers support Date.parse on only timestamps I have disabled this
totally instead of just correcting the parser.
Review URL: http://codereview.chromium.org/2017005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4613 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-05-07 11:53:20 +00:00
ager@chromium.org
856135af42
Implement fast calls of functions in the presence of eval (if the eval
...
calls do not introduce new bindings).
The infrastructure is already in place for fast loads from context
slots in the presence of eval. This change simply uses that
infrastructure for calls as well as loads.
Review URL: http://codereview.chromium.org/2027002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4609 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-05-07 10:25:11 +00:00
erik.corry@gmail.com
d18b73c2fe
Add a single-element global positive and negative cache to
...
the implementation of instanceof.
Review URL: http://codereview.chromium.org/1765012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4599 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-05-06 09:35:18 +00:00
whesse@chromium.org
1f13b58b97
Correct bug with left shift on X64 platform from change 4571 ( http://code.google.com/p/v8/source/detail?r=4571 ). Speed up left shift with a constant left hand side on X64 platform. Add unit test for this bug. Remove unused failure target argument from MacroAssembler::SmiShiftLeft and MacroAssembler::SmiShiftLeftConstant.
...
Review URL: http://codereview.chromium.org/1934004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4598 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-05-06 08:15:15 +00:00
lrn@chromium.org
4fdf57ace0
X64: Faster push/pop implementation.
...
Also snuck in an intended optimization for fast api call preparation and a few indentation fixes.
Review URL: http://codereview.chromium.org/1689010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4579 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-05-04 13:23:58 +00:00