danno@chromium.org
d5d7185578
Create a common base class for Fixed-, FixedDouble- and ExternalArrays.
...
Also unify Crankshaft code to load array length.
BUG=v8:1493
TEST=external-arrays.js
Review URL: http://codereview.chromium.org/7600025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8901 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-08-11 14:00:16 +00:00
lrn@chromium.org
654417d1a9
Make threaded tests not use static fields for communication.
...
TEST=cctest/Threaded4
Review URL: http://codereview.chromium.org/7620007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8892 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-08-11 09:08:44 +00:00
antonm@chromium.org
48e6274cc3
Allows not API functions as inputs for CreationConext method.
...
Review URL: http://codereview.chromium.org/7552034
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8885 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-08-11 06:40:14 +00:00
vitalyr@chromium.org
a107387dde
Fix fun.apply(receiver, arguments) optimization.
...
R=kmillikin@chromium.org
BUG=v8:1592
TEST=mjsunit/regress/regress-1592.js
Review URL: http://codereview.chromium.org/7497067
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8884 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-08-10 16:05:17 +00:00
fschneider@chromium.org
f17bd8ca51
Fix three bugs with handling negative zero in the optimizing compiler.
...
* Bug fix for range analysis (contributed by Andy Wingo). Ranges of
double values have to include negative zero. Original code review:
http://codereview.chromium.org/7514040/
* Fix a bug in optimized Math.round on ARM. When emitting minus-zero checks
we previously return a wrong result because of incorrect register assignment.
* Fix performance problem in IA32 and x64. Refine the checks
for minus zero and avoid unnecessary deoptimizations on Math.floor.
* Improve mjsunit test for Math.round to make sure we also
get the optimized version of the code for each test case.
Review URL: http://codereview.chromium.org/7604028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8877 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-08-10 12:32:43 +00:00
rossberg@chromium.org
bd18514972
Implement Harmony semantics for typeof null (behind a flag).
...
Harmony is intended to make typeof null === "null". This may
break existing programs. Implementing it will allow us to run
some tests on the actual web.
R=kmillikin@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/7598030
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8876 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-08-10 12:12:06 +00:00
vitalyr@chromium.org
df91f6b396
Simpler (and a bit faster) keyword matcher.
...
Replaced the keyword matching state machine with a switch on the first char followed up by inlined char comparisons.
R=lrn@chromium.org
TEST=cctest/test-parsing/ScanKeywords
Review URL: http://codereview.chromium.org/7558017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8866 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-08-09 13:32:53 +00:00
kmillikin@chromium.org
7adb10a48e
Fix a bug in named getter/setter compilation.
...
Because these are function literals that have an associated name, we were
compiling them as if they were named function expressions. This is
incorrect, the property name should not be in scope.
R=vegorov@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/7599024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8863 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-08-09 12:43:08 +00:00
kmillikin@chromium.org
d941053dbe
Revert "Revert "Fix a bug in scope analysis.""
...
Reapply r8838 with a fix for the issue of function names.
Because function names can be added/changed/removed through the API,
remember whether the function is anonymous when initially parsed and use
that information when compiling.
R=vegorov@chromium.org
BUG=1583
TEST=regress-1583
Review URL: http://codereview.chromium.org/7491097
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8858 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-08-08 16:14:46 +00:00
vitalyr@chromium.org
caf493afb3
Make d8-os test less flaky.
...
Because of stress testing there may be parallel instances of the test
running, which makes it fail when using a hardcoded test dir
name. Adding a random suffix helps. It'd be nicer to add something
like pid, but there doesn't seem to be an easy way of getting it.
R=yangguo@chromium.org
Review URL: http://codereview.chromium.org/7491057
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8848 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-08-05 13:34:46 +00:00
lrn@chromium.org
e9bc76c499
Avoid infinite recursion for unterminated non-ASCII JSON string literals.
...
BUG=91787
TEST=mjsunit/regress/regress-91787
Review URL: http://codereview.chromium.org/7569008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8847 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-08-05 12:55:29 +00:00
keuchel@chromium.org
c14b08658e
Fix DebugEvaluate crash within a catch in a function without local context.
...
BUG=v8:1586
TEST=mjsunit/regress/regress-1586.js
Review URL: http://codereview.chromium.org/7491053
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8844 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-08-05 12:00:57 +00:00
lrn@chromium.org
61ae1be609
Fix bug in scanner.
...
Checking for end-of-comment truncated to byte before comparing to '*'.
BUG=v8:1546
TEST=mjsunit/regress/regress-1546
Review URL: http://codereview.chromium.org/7585004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8842 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-08-05 11:21:04 +00:00
jkummerow@chromium.org
1a849d2754
Make GYP build usable for day-to-day work (second attempt)
...
- Introduce a global Makefile that triggers GYP-based building
- Some fixes to .gyp[i] files to make everything work
- tools/test-wrapper-gypbuild.py as a temporary solution for easy testing
Original review URL: http://codereview.chromium.org/7383006/
Review URL: http://codereview.chromium.org/7550030
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8840 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-08-05 09:44:30 +00:00
kmillikin@chromium.org
3e28347d55
Revert "Fix a bug in scope analysis."
...
This reverts commit revision 8838.
TBR=ricow@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/7584005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8839 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-08-05 09:20:08 +00:00
kmillikin@chromium.org
b625ce2b6b
Fix a bug in scope analysis.
...
When recompiling code (e.g., when optimizing) we could incorrectly hoist
some function expressions. This leads to incorrect results or a crash. The
root cause was that functions were not correctly categorized as expression
or declaration at parse time.
This requires some extra hoops to prevent the print name "anonymous" for
functions created by 'new Function' from establishing a binding.
R=vegorov@chromium.org ,kasperl@chromium.org
BUG=1583
TEST=regress-1583
Review URL: http://codereview.chromium.org/7572019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8838 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-08-05 08:28:11 +00:00
kmillikin@chromium.org
abb04d9ec1
Revert "tighten invariants of HValue::InferRange"
...
This change reportedly causes a slowdown or inifinite loop on ARM. Revert
pending investigation.
R=vegorov@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/7566040
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8834 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-08-04 16:43:20 +00:00
vitalyr@chromium.org
1dcb6e33cd
Minimize malloc heap allocation on process startup.
...
R=vegorov@chromium.org
BUG=http://b/issue?id=5095592
Review URL: http://codereview.chromium.org/7572018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8833 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-08-04 15:18:18 +00:00
mstarzinger@chromium.org
9b826964f2
Additional functions to Harmony weak maps API.
...
R=rossberg@chromium.org
BUG=v8:1565
TEST=mjsunit/harmony/weakmaps
Review URL: http://codereview.chromium.org/7572013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8825 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-08-04 11:13:15 +00:00
danno@chromium.org
861c895a34
Add regression test for 91517
...
R=vegorov@chromium.org
BUG=91517
TEST=regress-91517.js
Review URL: http://codereview.chromium.org/7575007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8824 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-08-04 11:00:32 +00:00
mstarzinger@chromium.org
b05ff5e0b9
Prototype of mark-and-compact support for Harmony weak maps.
...
R=vegorov@chromium.org
BUG=v8:1565
TEST=cctest/test-weakmaps
Review URL: http://codereview.chromium.org/7553012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8817 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-08-03 12:48:30 +00:00
ricow@chromium.org
9721eddc1f
Ensure that the length property of bound functions are actual unique
...
for the individually bound functions.
Our existing code will generate a new function on every call to bind,
but it will use the same shared function. When setting the lenght this
will be set on the shared function, i.e., the length of all bound
functions will be that of the last bound function.
Review URL: http://codereview.chromium.org/7475002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8816 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-08-03 12:44:17 +00:00
mstarzinger@chromium.org
2bb7c74f80
Preliminary Harmony weak maps API implementation.
...
R=rossberg@chromium.org ,danno@chromium.org
BUG=v8:1565
TEST=mjsunit/harmony/weakmaps
Review URL: http://codereview.chromium.org/7529007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8811 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-08-03 11:55:13 +00:00
danno@chromium.org
bdf6895bb3
Encapsulate element handling into a class keyed on ElementsKind
...
Advantage is that it's much easier to add new element types (like FAST_SMI_ELEMENTS), and that handling logic for each element kind is (more) consolidated.
Currently, only GetElementsWithReceiver uses the new encapsulation, but the goal is to move much more element functionality into the class incrementally.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/7527001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8810 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-08-03 11:12:46 +00:00
kmillikin@chromium.org
ffa08197e4
tighten invariants of HValue::InferRange
...
* src/hydrogen-instructions.cc (HValue::InferRange): Only mark values
with int32 representation as never being -0. Always return a non-NULL
value; callers should check for representation().IsNone() if that's
their concern.
In practice these invariants were not violated by callers, but they
were sometimes two calls away, which seems brittle.
BUG=
TEST=tests pass, modulo http://code.google.com/p/v8/issues/detail?id=1572
Review URL: http://codereview.chromium.org/7514040
Patch from Andy Wingo <wingo@igalia.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8804 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-08-03 10:44:20 +00:00
jkummerow@chromium.org
a41c25607d
Revert "Make window.{undefined,NaN,Infinity} read-only"
...
This reverts r8766.
TEST=WebKit LayoutTests green again.
Review URL: http://codereview.chromium.org/7562005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8800 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-08-03 09:53:14 +00:00
kmillikin@chromium.org
4487f8c050
Revert "Revert "Fix a bug in scope analysis.""
...
Reapply r8783 with an additional fix.
Because the preparser and parser do not use the same scope analysis to
determine if a function can be lazily compiled, the parser can have false
positives. Rather than treating this as a parse error, treat the preparser
as authoritative and eagerly compile the function.
R=lrn@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/7565003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8797 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-08-03 09:10:35 +00:00
vegorov@chromium.org
cb99571cec
Fix ContextDeserialization and PartialDeserialization tests.
...
Space should be reserved twice before each deserialization.
R=erik.corry@gmail.com
Review URL: http://codereview.chromium.org/7550009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8795 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-08-02 17:43:32 +00:00
kmillikin@chromium.org
a129c95a54
Revert "Fix a bug in scope analysis."
...
This reverts r8783.
R=vegorov@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/7550013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8794 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-08-02 17:02:24 +00:00
svenpanne@chromium.org
6f6c882e19
Fixed code generation for LBranch on ARM when the operand's representation is double.
...
The condition code for branching on the result of vcmp was wrong, effectively
swapping the true/false branches.
TEST=regress-lbranch-double.js
Review URL: http://codereview.chromium.org/7553010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8784 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-08-02 15:14:12 +00:00
kmillikin@chromium.org
f37f6e88ca
Fix a bug in scope analysis.
...
Function declarations inside catch are hoisted to the nearest enclosing
function scope, but we compiled their bodies as if occurring inside the
catch scope.
BUG=chrome:91120
TEST=regress/regress-91120 attached
Review URL: http://codereview.chromium.org/7548011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8783 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-08-02 15:04:31 +00:00
danno@chromium.org
b333719607
Properly handle FixedDoubleArrays in sort()
...
R=jkummerow@chromium.org
BUG=91008
TEST=regress-91008.js
Review URL: http://codereview.chromium.org/7542008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8782 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-08-02 14:05:11 +00:00
vegorov@chromium.org
9226cfe5b7
Ensure that GenerateStoreFastDoubleElement returns stored value on all paths.
...
BUG=chromium:91013
TEST=test/mjsunit/regress/regress-91013.js
Review URL: http://codereview.chromium.org/7551009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8781 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-08-02 13:36:38 +00:00
vegorov@chromium.org
a547d333f0
Check for phi-uses of arguments object before eliminating dead phi's.
...
HGraphBuilder::TryArgumentsAccess does not emit any uses for receiver and will generate incorrect code when receiver for a property access is defined by a phi that returns either arguments object or something else.
BUG=v8:1582
TEST=test/mjsunit/regress/regress-1582.js
Review URL: http://codereview.chromium.org/7553006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8774 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-08-02 09:32:28 +00:00
danno@chromium.org
008f834117
Properly handle FastDoubleArrays in Runtime_MoveArrayContents
...
BUG=91013
TEST=regress91013.js
Review URL: http://codereview.chromium.org/7551004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8773 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-08-02 09:28:55 +00:00
jkummerow@chromium.org
15c979eeaa
Make window.{undefined,NaN,Infinity} read-only
...
as per ES5.
BUG=89490
TEST=es5conform 15.1.*, 15.2.3.*; mjsunit/undeletable-functions
Review URL: http://codereview.chromium.org/7538016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8766 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-08-01 12:18:03 +00:00
mstarzinger@chromium.org
eef3e8739e
Reintroduced dictionary that can use objects as keys.
...
R=vitalyr@chromium.org
TEST=cctest/test-dictionary
Review URL: http://codereview.chromium.org/7385006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8761 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-28 17:21:22 +00:00
keuchel@chromium.org
dfb195550f
Fix calculation of 'scope_calls_eval' when 'eval' is within a nested catch.
...
BUG=
TEST=mjsunit/scope-calls-eval.js
Review URL: http://codereview.chromium.org/7464030
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8756 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-28 12:17:36 +00:00
ricow@chromium.org
950feb6940
Switch from sample shell to d8 for unit test
...
Landing for yangguo to coordinate with buildbot update.
Original codereview: http://codereview.chromium.org/7282008/
Review URL: http://codereview.chromium.org/7495033
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8739 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-26 05:56:45 +00:00
jkummerow@chromium.org
0aab25fabf
Fix: FunctionTemplate::SetPrototypeAttributes broke prototype object
...
BUG=v8:1539
TEST=cctest test-api/SetPrototypeAttributes
Review URL: http://codereview.chromium.org/7324027
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8737 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-25 15:01:45 +00:00
mikhail.naganov@gmail.com
6894716121
v8: Move DeleteEmpty test to test-list.cc
...
BUG=None
TEST=None
Signed-off-by: Thiago Farina <tfarina@chromium.org>
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8728 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-24 17:59:59 +00:00
danno@chromium.org
1f9801bb9e
Fix bug in ARM pixel array clamping
...
Properly handle undefined conversion to zero in Crankshaft.
R=yangguo@chromium.org
BUG=none
TEST=regress-1563.js
Review URL: http://codereview.chromium.org/7461028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8723 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-22 16:01:53 +00:00
danno@chromium.org
3e7d642d0a
Remaining changes to fully support FastDoubleArray.
...
R=ager@chromium.org
BUG=none
TEST=cctests, unboxed-double-array.js
Review URL: http://codereview.chromium.org/7473031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8718 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-22 09:04:16 +00:00
svenpanne@chromium.org
8d47a6f625
Fixed an off-by-one error in SplitConstantsInFullCompiler test.
...
The test tried to disassemble the last entry in a constant pool, which only
worked by accident until address randomization was introduced.
Review URL: http://codereview.chromium.org/7489005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8717 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-22 09:03:55 +00:00
rossberg@chromium.org
3f5bc11c55
Implement Object.prototype.{hasOwnProperty, propertyIsEnumerable} for proxies.
...
Refactor trap invocation.
Test other Object.prototype functionality for proxies.
R=ager@chromium.org
BUG=v8:1543
TEST=
Review URL: http://codereview.chromium.org/7436004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8707 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-21 11:20:27 +00:00
danno@chromium.org
92fc85b480
Implement support for getters/setter on FixedDoubleArrays.
...
R=ager@chromium.org
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/7459009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8696 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-20 13:41:50 +00:00
danno@chromium.org
8bc3254e4b
Implement for..in for FastDoubleArrays
...
Also add tests for apply on FastDoubleArrays.
R=ager@chromium.org
BUG=none
TEST=unboxed-double-array.js
Review URL: http://codereview.chromium.org/7461018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8693 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-20 10:54:58 +00:00
jkummerow@chromium.org
9de5255b60
Revert "Make window.undefined, window.NaN, window.Infinitiy read-only (ES5 section 15.1.1)"
...
This reverts r8691.
Review URL: http://codereview.chromium.org/7457020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8692 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-20 10:51:11 +00:00
jkummerow@chromium.org
6768c5e24e
Make window.undefined, window.NaN, window.Infinitiy read-only (ES5 section 15.1.1)
...
BUG=89490
TEST=manual: "Infinity = 42;" doesn't change the value of "Infinity"
Review URL: http://codereview.chromium.org/7457019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8691 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-20 10:06:53 +00:00
danno@chromium.org
a85a493f70
Reland 8636: Implement setting the length property for FixedDoubleArrays.
...
R=ager@chromium.org
BUG=none
TEST=unboxed-double-arrays.js
Review URL: http://codereview.chromium.org/7460008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8690 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-20 09:11:38 +00:00