fschneider@chromium.org
a2240fc52b
Eliminate some virtual function from AST classes.
...
1. Remove unused dead functions.
2. Replace the virtual As-* type cast functions with non-virtual version
that uses node_type().
Result is around 13K reduction in binary size.
Review URL: http://codereview.chromium.org/8335006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9841 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-31 11:11:26 +00:00
lrn@chromium.org
30465596e6
Make eval consider anything on the form eval(args...) a potential direct cal
...
Previously we omitted all cases where the global eval property was shadowed,
even if by a variable holding the same value. ES5 requires us to treat these
as direct calls.
We still throw if calling indirect eval with a detached global object.
BUG=v8:994
TEST=mjsunit/eval.js
Review URL: http://codereview.chromium.org/8343054
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9838 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-31 09:38:52 +00:00
ulan@chromium.org
fa8a71df9a
Handlify CompileConstructStub. Based on 8391045.
...
R=kmillikin@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/8399032
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9837 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-28 14:08:43 +00:00
vegorov@chromium.org
c933e28935
Make C++ to JS transition faster by avoiding JavaScriptFrameIterator in SaveContext.
...
R=kmillikin@chromium.org
BUG=v8:1730
Review URL: http://codereview.chromium.org/8403037
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9835 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-28 12:49:09 +00:00
kmillikin@chromium.org
0df252b38b
Handlify the remaining CallStubCompiler functions.
...
Also, handlify functions for loading with interceptors and callbacks.
Remove some unneeded code. Rename Foreign::address() because it
confusingly shadows HeapObject::address() which does something quite
different.
R=vegorov@chromium.org ,ulan@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/8391045
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9834 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-28 12:37:29 +00:00
danno@chromium.org
6d7d6d4e4e
Force transition to FAST_ELEMENTS on out-of-bounds KeyedLoads.
...
Proactively ensure that that objects don't get FAST_DOUBLE_ELEMENTS to reduce the number of double boxing operations when generated code calls the runtime frequently to satisfy KeyedLoad requests.
Review URL: http://codereview.chromium.org/8416014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9833 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-28 10:35:38 +00:00
keuchel@chromium.org
a9a97d010e
Remove kInvalidStrictFlag and make gcc-4.5 happy again.
...
Review URL: http://codereview.chromium.org/8403036
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9832 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-28 09:10:29 +00:00
kmillikin@chromium.org
9fd8930a70
Fix presubmit error.
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9830 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-28 08:51:08 +00:00
mstarzinger@chromium.org
cd9bc6c3a6
Fix error handling in Date.prototype.toISOString.
...
This fixes Date.prototyoe.toISOString to throw a RangeError exception
for invalid time values. It also includes a fix to removes the arbitrary
(and completely bogus) range limit on the date value during construction
of a Date object. Note that we still have bogus range limits on the year
and month values.
R=lrn@chromium.org
BUG=v8:1792
TEST=mjsunit/date,test262/15.9.5.43-0-*
Review URL: http://codereview.chromium.org/8392036
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9829 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-28 08:45:04 +00:00
kmillikin@chromium.org
f077a41b12
MIPS: crankshaft implementation
...
BUG=
TEST=
Review URL: http://codereview.chromium.org/7934002
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9828 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-28 08:14:46 +00:00
yangguo@chromium.org
b5b3345799
MIPS: Fixing performance regression in issue 1787.
...
Port r9812 (c1644a9d)
Note: MIPS already had the fix for this regression.
This commit only adds the extra assertions.
BUG=
TEST=
Review URL: http://codereview.chromium.org/8343030
Patch from Gergely Kis <gergely@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9827 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-28 08:03:13 +00:00
erik.corry@gmail.com
31834e0f9d
Prepare push to trunk. Now working on 3.7.4.
...
Review URL: http://codereview.chromium.org/8417020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9824 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-28 07:38:27 +00:00
fschneider@chromium.org
8b1494b819
Temporarily disable target recording CallFunctionStub until issue 1789 is fixed.
...
Review URL: http://codereview.chromium.org/8340029
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9823 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-27 15:46:25 +00:00
yangguo@chromium.org
8624fb85d2
Tiny improvements on fast element conversion loops in ia32 and x64.
...
Review URL: http://codereview.chromium.org/8403035
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9820 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-27 14:19:22 +00:00
erik.corry@gmail.com
1dd598387e
Prepare push to trunk. Now working on 3.7.3
...
Review URL: http://codereview.chromium.org/8407001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9819 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-27 14:03:32 +00:00
keuchel@chromium.org
6e767e3f2d
Use StrictModeFlag in preparser and preparse data.
...
Review URL: http://codereview.chromium.org/8396040
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9818 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-27 13:08:51 +00:00
fschneider@chromium.org
a5b40e27b8
Revert r9805.
...
It did not fix the original problem, but instead introduced new ones.
R=vegorov@chromium.org
Review URL: http://codereview.chromium.org/8404037
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9817 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-27 12:12:53 +00:00
yangguo@chromium.org
b56466f4da
Fixing dead code in empty array init.
...
TEST=set JSArray::kPreallocatedArrayElements to larger than 4.
Review URL: http://codereview.chromium.org/8381014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9816 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-27 11:11:59 +00:00
kmillikin@chromium.org
9cc75769bc
MIPS: Handlify CompileLoad and CompileStore
...
Port the following 3 stub-cache commits:
r9788 (67147b7) Handlify CompileLoadGlobal, CompileLoadElement, CompileLoadPolymorphic.
r9791 (b19c694) Handlify simple functions of [keyed] store stub compiler.
r9803 (e0c3c89) Handlify CompileStoreCallback, CompileStoreInterceptor.
BUG=
TEST=
Review URL: http://codereview.chromium.org/8404016
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9815 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-27 09:21:15 +00:00
yangguo@chromium.org
2923136f95
Fixing performance regression in issue 1787.
...
BUG=v8:1787
Review URL: http://codereview.chromium.org/8390050
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9812 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-27 07:59:12 +00:00
erik.corry@gmail.com
678200bc11
Prepare push to trunk. Now working on 3.7.2
...
Review URL: http://codereview.chromium.org/8390049
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9807 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-27 05:27:38 +00:00
yangguo@chromium.org
fdb13b2e56
MIPS: port Implement for-in loop for proxies.
...
Port r9760 (a1c4dc80)
BUG=
TEST=
Review URL: http://codereview.chromium.org/8396029
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9806 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-26 15:02:00 +00:00
fschneider@chromium.org
4ded3ccf7c
Fix bug in lazy deoptimization after HInvokeFunction.
...
The full code generator expects the function expression on top
of the stack until after the all. We have to emit the call + the
corresponding simulate before dropping it in the hydrogen code.
BUG=v8:1789
Review URL: http://codereview.chromium.org/8391042
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9805 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-26 14:05:18 +00:00
lrn@chromium.org
a9edfefa58
Remove special-casing of calls to RegExp test and exec methods with no argument.
...
Matches new JSC behavior. Fix issue 75740.
BUG=75740
TEST=mjsunit/regexp-static
Review URL: http://codereview.chromium.org/6677020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9804 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-26 12:51:07 +00:00
ulan@chromium.org
405d57fe00
Handlify CompileStoreCallback, CompileStoreInterceptor.
...
R=kmillikin@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/8390045
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9803 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-26 12:35:12 +00:00
yangguo@chromium.org
b195db5174
MIPS: port Refactor and clean up array allocation across platforms.
...
Port r9747 (dc33375)
BUG=
TEST=
Review URL: http://codereview.chromium.org/8395030
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9802 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-26 12:35:10 +00:00
mstarzinger@chromium.org
d0ce626477
Fix identity hash code function to respect flag.
...
The flag passed to JSObject::GetIdentityHash() was not respected so far
and an indentity hash code was generated even when the flag requested
not to do so. This could lead to a rare corner cases (for which a test
case was added) where a GC request would have been dropped.
R=rossberg@chromium.org
TEST=cctest/test-dictionary
Review URL: http://codereview.chromium.org/8390047
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9801 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-26 12:23:40 +00:00
yangguo@chromium.org
70b9d56e06
Fixing issue 1788.
...
BUG=v8:1788
Review URL: http://codereview.chromium.org/8396037
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9792 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-26 11:34:11 +00:00
ulan@chromium.org
beb0bbe3a9
Handlify simple functions of [keyed] store stub compiler.
...
Handlified functions: CompileStoreField, CompileStoreGlobal, CompileStoreElement, CompileStorePolymorphic.
Based on 8375053.
R=kmillikin@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/8393003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9791 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-26 10:45:24 +00:00
mstarzinger@chromium.org
5a33ffd7e8
Fix Error.prototype.toString to be ES5 conform.
...
R=lrn@chromium.org
TEST=test262/15.11.4.4-8-1,mjsunit/error-tostring
Review URL: http://codereview.chromium.org/8341021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9790 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-26 10:41:52 +00:00
fschneider@chromium.org
2d4bb1803d
Fix bug in inlining call-as-function when inlining multiple levels deep.
...
This change fixes a off-by-one level error when dropping the
function from the environment. The function of the outermost
environment was not dropped.
BUG=v8:1785
TEST=test/mjsunit/compiler/regress-inline-callfunctionstub.js
Review URL: http://codereview.chromium.org/8341019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9789 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-26 10:31:06 +00:00
ulan@chromium.org
a2fff744e0
Handlify CompileLoadGlobal, CompileLoadElement, CompileLoadPolymorphic.
...
R=kmillikin@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/8375053
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9788 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-26 09:58:32 +00:00
rossberg@chromium.org
f7d56eb602
Handle proxies in KeyedStoreIC::Store, instead of just ignoring them.
...
R=mstarzinger@chromium.org
BUG=v8:1543
TEST=
Review URL: http://codereview.chromium.org/8391005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9787 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-26 09:31:40 +00:00
lrn@chromium.org
0a896072d2
MIPS: port Moved random generator state to global context.
...
Port r9753 (28cd67f8)
BUG=
TEST=
Review URL: http://codereview.chromium.org/8390032
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9786 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-26 09:30:04 +00:00
ulan@chromium.org
d46c0d899f
MIPS: port Handlify simple functions of [keyed] load stub compiler.
...
Port r9773 (4cf7a453)
BUG=
TEST=
Review URL: http://codereview.chromium.org/8390035
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9785 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-26 09:21:36 +00:00
keuchel@chromium.org
55b7bfa2da
MIPS: port Replace boolean indications of strict mode by an enum value.
...
Port r9746 (804e4e4)
BUG=
TEST=
Review URL: http://codereview.chromium.org/8390030
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9784 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-26 08:43:33 +00:00
keuchel@chromium.org
5946475d6d
MIPS: port Block scoped const variables.
...
Port r9764 (9b9689d5)
BUG=
TEST=
Review URL: http://codereview.chromium.org/8390033
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9783 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-26 08:42:15 +00:00
kmillikin@chromium.org
77c4571aca
MIPS: port Handlify CallStubCompiler::CompileCallField.
...
Port r9769 (db287698)
BUG=
TEST=
Review URL: http://codereview.chromium.org/8394028
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9782 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-26 08:32:37 +00:00
fschneider@chromium.org
d022406db2
Land two MIPS changes.
...
Issue 8368021: MIPS: port Fix compilation on ARM and x64 broken by r9738
Issue 8378001: MIPS: port Avoid static initializers in assember-arm.h.
Review URL: http://codereview.chromium.org/8341048
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9781 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-26 08:17:24 +00:00
lrn@chromium.org
93f5bfdb98
Make the irregexp interpreter throw on stack overflow.
...
BUG=v8:904
Review URL: http://codereview.chromium.org/8387027
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9780 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-26 06:37:57 +00:00
vegorov@chromium.org
f8c2d3847f
Take loop side-effects into account when collecting side-effects on the path between two blocks.
...
R=fschneider@chromium.org
BUG=100409
TEST=test/mjsunit/regress/regress-100409.js
Review URL: http://codereview.chromium.org/8395002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9778 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-25 15:39:55 +00:00
mstarzinger@chromium.org
622d35dc0e
Implement Harmony sets and maps.
...
This implementation extends the internal ObjectHashTable to be able to
hold arbitrary objects (e.g. Smis, Strings, ...) as keys by applying
specialized hashing functions to primitive types. Equality of keys is
defined using the internal SameValue function.
R=rossberg@chromium.org
BUG=v8:1622
TEST=mjsunit/harmony/collections
Review URL: http://codereview.chromium.org/8372027
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9777 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-25 14:14:56 +00:00
ricow@chromium.org
0442e08095
Print out line number and extension name when compilation of an extension fails. This fixes issue 305.
...
Review URL: http://codereview.chromium.org/8332029
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9776 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-25 13:43:19 +00:00
erikcorry
6950fab332
Remove superfluous assert.
...
Review URL: http://codereview.chromium.org/8332028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9775 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-25 13:34:52 +00:00
erik.corry@gmail.com
f6fef24118
Move some heap verification code in under the --verify-heap flag to speed
...
up debug mode tests.
Review URL: http://codereview.chromium.org/8381040
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9774 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-25 13:27:46 +00:00
ulan@chromium.org
abeb5a4d93
Handlify simple functions of [keyed] load stub compiler.
...
Handlified functions: CompileLoadNonexistent, CompileLoadField,
CompileLoadConstant, CompileLoadArrayLength, CompileLoadStringLength,
CompileLoadFunctionPrototype.
R=kmillikin@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/8383033
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9773 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-25 12:26:07 +00:00
erik.corry@gmail.com
b8af27868f
Speed up debug mode GC.
...
Review URL: http://codereview.chromium.org/8380038
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9772 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-25 12:13:06 +00:00
erik.corry@gmail.com
2f745a15b5
Get back the performance lost in context creation in 9744.
...
Review URL: http://codereview.chromium.org/8332026
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9771 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-25 11:02:29 +00:00
vegorov@chromium.org
d855e5104c
Fix presubmit error introduced by r9767.
...
TBR=erik.corry@gmail.com
Review URL: http://codereview.chromium.org/8383031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9770 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-25 09:30:52 +00:00
kmillikin@chromium.org
e05c04e5fa
Handlify CallStubCompiler::CompileCallField.
...
This function relies on a number of helpers for checking prototypes and
probing dictionaries. It is not possible to wrap these helpers to retry
after allocation failure in a safe way---the assembler has no way to undo
what it has already assembled.
These functions have all been duplicated with handle and raw versions. The
raw versions will eventually be removed completely.
R=ulan@chromium.org ,vegorov@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/8332003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9769 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-25 09:24:49 +00:00