mstarzinger@chromium.org
c012afb6d4
Fix setting array length to zero for slow elements.
...
R=verwaest@chromium.org
BUG=chromium:146910
TEST=mjsunit/regress/regress-crbug-146910
Review URL: https://codereview.chromium.org/10937026
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12547 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-19 11:52:33 +00:00
mstarzinger@chromium.org
f0dcaf9a19
Fix lost arguments dropping in HLeaveInlined.
...
This fixes HleaveInlined to correctly drop pushed arguments on all code
paths and addresses a corner case where the arguments stack height
mismatched at an OSR entry point.
R=jkummerow@chromium.org
BUG=chromium:150545
TEST=mjsunit/regress/regress-crbug-150545
Review URL: https://codereview.chromium.org/10938016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12543 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-19 08:13:46 +00:00
yangguo@chromium.org
783d10197a
Tentatively reenable previous failing test.
...
R=mstarzinger@chromium.org
BUG=v8:2261
Review URL: https://chromiumcodereview.appspot.com/10907254
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12530 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-17 14:19:11 +00:00
yangguo@chromium.org
73462594ea
Change regress-2318 to trigger more quickly and reliably.
...
BUG=v8:2336
Review URL: https://chromiumcodereview.appspot.com/10913294
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12529 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-17 13:21:59 +00:00
erik.corry@gmail.com
bafcfe5427
Fix misplaced assert in heap.cc.
...
Bug=2336
Review URL: https://chromiumcodereview.appspot.com/10911334
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12528 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-17 11:38:24 +00:00
yangguo@chromium.org
cb72bf5735
Fix debugger's eval when close to stack overflow.
...
R=verwaest@chromium.org
BUG=v8:2318
Review URL: https://chromiumcodereview.appspot.com/10914290
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12518 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-14 13:40:32 +00:00
verwaest@chromium.org
ad4746c8a3
CNLT with descriptors but no valid enum fields has to clear the EnumCache.
...
Review URL: https://chromiumcodereview.appspot.com/10928204
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12512 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-14 13:15:43 +00:00
mstarzinger@chromium.org
77a7d9f539
Fix caching of optimized code for OSR.
...
This makes sure we do not share optimized code across closures that were
optimized using OSR (for a particular OSR entry AST id) even if caching
of optimized code kicks in.
R=danno@chromium.org
BUG=v8:2326
TEST=mjsunit/regress/regress-2326
Review URL: https://codereview.chromium.org/10933088
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12504 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-14 10:41:31 +00:00
verwaest@chromium.org
1d1adaf9d3
Ensure correct enumeration indices in the dict
...
BUG=chromium:148376
Review URL: https://chromiumcodereview.appspot.com/10908216
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12494 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-13 08:52:55 +00:00
mmassi@chromium.org
22aed1cddd
Fixed bounds check removal by restricting it to int32 indexes (and reenabled both ABCR and index dehoisting).
...
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/10905232
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12493 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-12 17:00:25 +00:00
yangguo@chromium.org
67d0506622
Correctly initialize regexp global cache.
...
R=ulan@chromium.org
BUG=148378
Review URL: https://chromiumcodereview.appspot.com/10905239
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12491 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-12 15:26:43 +00:00
mstarzinger@chromium.org
f37f504de5
Fix arguments object materialization during deopt.
...
This fixes materialization of arguments objects for strict mode functions during
deoptimization. We materialize arguments from the stack area where optimized
code pushes the arguments when entering the inlined environment. For adapted
invocations we use the arguments adaptor frame for materialization.
R=svenpanne@chromium.org
BUG=v8:2261
TEST=mjsunit/regress/regress-2261,mjsunit/compiler/inline-arguments
Review URL: https://chromiumcodereview.appspot.com/10908194
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12489 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-12 12:28:42 +00:00
ulan@chromium.org
a9162af1af
Fix delta computation in DoDeferredInstanceOfKnownGlobal() for ARM.
...
BUG=v8:2314
R=yangguo@chromium.org
Review URL: https://chromiumcodereview.appspot.com/10908195
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12478 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-11 11:36:48 +00:00
peter.rybin@gmail.com
bda5ce9cd6
Introduce InternalProperty type and expose internal properties for bound functions
...
Committed: https://code.google.com/p/v8/source/detail?r=12346
Review URL: https://chromiumcodereview.appspot.com/10834376
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12477 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-10 23:17:04 +00:00
mstarzinger@chromium.org
f6cd2403e3
Fix deoptimizer for shared optimized code.
...
The deoptimizer searched the stack for activations of the same function to
determine whether to trigger lazy deopting. Since we share optimized code we
actually need to search for activations of the same code (but potentially
different functions).
R=jkummerow@chromium.org
BUG=chromium:147475
TEST=mjsunit/regress/regress-crbug-147475
Review URL: https://chromiumcodereview.appspot.com/10917162
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12473 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-10 11:05:17 +00:00
yangguo@chromium.org
1a0c14f12c
Add checks to runtime functions.
...
BUG=
Review URL: https://chromiumcodereview.appspot.com/10915062
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12471 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-10 08:35:26 +00:00
svenpanne@chromium.org
7af6883098
Fixed deoptimization of inlined getters.
...
It is necessary to explicitly handle the internal frame lying between the caller
of the getter and the getter itself in the deoptimizer: When the getter is
inlined, leaving the internal frame restores the correct context.
BUG=http://crbug/134609
TEST=mjsunit/regress/regress-crbug-134609
Review URL: https://chromiumcodereview.appspot.com/10910110
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12470 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-07 09:01:54 +00:00
erik.corry@gmail.com
9ff7ec1c4a
Fix binding in new Function().
...
Review URL: https://chromiumcodereview.appspot.com/10916114
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12442 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-05 11:45:58 +00:00
erik.corry@gmail.com
e5df02834b
Fix some corner cases in skipping native methods using caller.
...
Review URL: https://chromiumcodereview.appspot.com/10911063
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12439 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-05 08:19:49 +00:00
verwaest@chromium.org
0c24942be7
Fixed test expectation.
...
Review URL: https://chromiumcodereview.appspot.com/10913062
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12435 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-04 09:54:36 +00:00
verwaest@chromium.org
a8638c1570
Support register as right operand in min/max support.
...
R=jkummerow@chromium.org
BUG=chromium:145961
TEST=mjsunit/regress/regress-crbug-145961.js
Review URL: https://chromiumcodereview.appspot.com/10914072
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12434 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-04 09:35:43 +00:00
yangguo@chromium.org
ddfae013a6
Disable test that triggers known bug.
...
BUG=v8:2261
Review URL: https://chromiumcodereview.appspot.com/10910029
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12418 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-31 12:02:02 +00:00
yangguo@chromium.org
5dd51bafef
Cache results in SearchRegExpMultiple.
...
BUG=
Review URL: https://chromiumcodereview.appspot.com/10837290
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12416 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-31 09:28:01 +00:00
verwaest@chromium.org
90db487390
Elements load depends on the type of the receiver.
...
R=jkummerow@chromium.org
Review URL: https://chromiumcodereview.appspot.com/10918005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12413 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-30 17:31:32 +00:00
rossberg@chromium.org
b0067e9cd5
Disable test that triggers known bug.
...
R=verwaest@chromium.org
BUG=v8:2261
Review URL: https://chromiumcodereview.appspot.com/10896005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12399 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-28 14:17:55 +00:00
rossberg@chromium.org
ccc827a6f8
Allocate block-scoped global bindings to global context.
...
- The global object has a reference to the current global scope chain.
Running a script adds to the chain if it contains global lexical declarations.
- Scripts are executed relative to a global, not a native context.
- Harmony let and const bindings are allocated to the innermost global context;
var and function still live on the global object.
(Lexical bindings are not reflected on the global object at all,
but that will probably change later using accessors, as for modules.)
- Compilation of scripts now needs a (global) context (previously only eval did).
- The global scope chain represents one logical scope, so collision tests take
the chain into account.
R=svenpanne@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/10872084
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12398 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-28 11:25:08 +00:00
yangguo@chromium.org
7cbca775ee
Reland regexp global optimizations.
...
BUG=
Review URL: https://chromiumcodereview.appspot.com/10872010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12396 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-28 09:37:41 +00:00
ulan@chromium.org
7b1d13affc
Revert r12342 "Flush monomorphic ICs on context disposal instead of context exit." because of canary channel crashes.
...
BUG=144230
R=verwaest@chromium.org
Review URL: https://chromiumcodereview.appspot.com/10868068
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12388 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-27 16:08:27 +00:00
danno@chromium.org
3544e2e875
Disable speculative LICM when it may lead to unnecessary deopts
...
BUG=v8:2250
R=vegorov@chromium.org
TEST=tests/mjsunit/regress/regress-2250.js
Review URL: https://chromiumcodereview.appspot.com/10867033
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12375 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-23 21:08:58 +00:00
vegorov@chromium.org
106a83252d
Fix DoDeferredNumberTagU to keep the value in xmm1 instead of xmm0 on x64.
...
xmm0 is not saved across runtime call on x64 because MacroAssembler::EnterExitFrameEpilogue preserves only allocatable XMM registers unlike on ia32 where it preserves all registers.
Cleanup handling of shifts: SHR can deoptimize only when its a shift by 0, all other shift never deoptimize.
Fix type inference for i-to-t change instruction. On X64 this ensures that write-barrier is generated correctly.
R=danno@chromium.org
Review URL: https://chromiumcodereview.appspot.com/10868032
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12373 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-23 16:14:01 +00:00
vegorov@chromium.org
f476d4d431
Allow uint32 value on optimized frames if they are consumed by safe operations.
...
Safe operations are those that either do not observe unsignedness or have special support for uint32 values:
- all binary bitwise operations: they perform ToInt32 on inputs;
- >> and << shifts: they perform ToInt32 on left hand side and ToUint32 on right hand side;
- >>> shift: it performs ToUint32 on both inputs;
- stores to integer external arrays (not pixel, float or double ones): these stores are "bitwise";
- HChange: special support added for conversions of uint32 values to double and tagged values;
- HSimulate: special support added for deoptimization with uint32 values in registers and stack slots;
- HPhi: phis that have only safe uses and only uint32 operands are uint32 themselves.
BUG=v8:2097
TEST=test/mjsunit/compiler/uint32.js
Review URL: https://chromiumcodereview.appspot.com/10778029
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12367 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-22 15:44:17 +00:00
ulan@chromium.org
efc26f9b2b
Fix rounding in Uint8ClampedArray setter.
...
According to Web IDL spec, we should round to
the nearest integer, choosing the even integer
if it lies halfway between two.
R=yangguo@chromium.org ,kbr@chromium.org
BUG=v8:2294
Review URL: https://chromiumcodereview.appspot.com/10831409
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12364 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-22 14:27:11 +00:00
verwaest@chromium.org
5df5eea066
Check that index and length are Smi in bounds check.
...
BUG=chromium:142218
R=danno@chromium.org
Review URL: https://chromiumcodereview.appspot.com/10829456
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12362 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-21 16:46:25 +00:00
yangguo@chromium.org
2b2f28cd2a
Revert r12346 (Introduce InternalProperty type and expose internal properties for bound functions)
...
Original CL: https://chromiumcodereview.appspot.com/10834376
BUG=
Review URL: https://chromiumcodereview.appspot.com/10834428
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12351 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-21 09:48:26 +00:00
peter.rybin@gmail.com
cfc4c37768
Introduce InternalProperty type and expose internal properties for bound functions
...
Review URL: https://chromiumcodereview.appspot.com/10834376
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12346 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-20 21:49:19 +00:00
ulan@chromium.org
27fb8c2cf6
Flush monomorphic ICs on context disposal instead of context exit.
...
R=mstarzinger@chromium.org
Review URL: https://chromiumcodereview.appspot.com/10836189
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12342 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-20 12:09:03 +00:00
yangguo@chromium.org
3a1c290b2c
Add input check to %DebugSetScriptSource.
...
R=verwaest@chromium.org
BUG=v8:2296
Review URL: https://chromiumcodereview.appspot.com/10837308
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12338 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-17 15:21:15 +00:00
svenpanne@chromium.org
b10d5d7f08
Deoptimization support for accessors.
...
Highlights of this CL:
* Introduced a new opcode in the deoptimizer for a setter stub frame.
* Added a global setter stub for returning after deoptimizing a setter.
* We do not need special deopt support for getters, although the getter stub creates an internal frame. The normal machinery works just right for this case, although we generate a stack that can never occur during normal fullcode execution. If this hurts us one day, we can parameterize and reuse the setter deopt machinery.
Review URL: https://chromiumcodereview.appspot.com/10855098
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12328 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-17 10:43:32 +00:00
svenpanne@chromium.org
f5f8ebd4ed
Fix accessor lookup in crankshaft.
...
Seeing monomorphic type feedback plus an AccessorPair does not necessarily imply
that the corresponding getter/setter is really there, so we have to check for
this explictly.
TEST=mjsunit/object-define-property
Review URL: https://chromiumcodereview.appspot.com/10825384
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12317 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-16 10:35:39 +00:00
mstarzinger@chromium.org
886c0fa4f7
Extend constructor inlining test case.
...
This makes sure that deoptimization really happens in each hydrogen
context by not using binary operations but loads instead. This is
needed because we cannot clear BinaryOpICs explicitly.
R=svenpanne@chromium.org
TEST=mjsunit/compiler/inline-construct
Review URL: https://chromiumcodereview.appspot.com/10825382
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12315 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-16 09:13:25 +00:00
erik.corry@gmail.com
ee3a66b273
Fix bug in compare IC. BUG=2291
...
Review URL: https://chromiumcodereview.appspot.com/10830334
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12313 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-15 15:08:42 +00:00
svenpanne@chromium.org
1ee6c0e30b
Improved constructor inlining unit tests.
...
Currently we inline functions with different contexts only on ia32, so we have
to move the helper functions for the various contexts to the top level. Further
more, "new Object()" seems to prevent inlining, too, so we us a simple object
literal.
Although things get consistently inlined now, something strange seems to happen
in test/effect contexts: The DEOPT output seems to contain too few frames, and
we don't get any DEOPT ouput after the first time for those contexts. This has
to be investigated...
TBR=mstarzinger@chromium.org
Review URL: https://chromiumcodereview.appspot.com/10836258
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12312 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-15 09:39:13 +00:00
yangguo@chromium.org
28c892938e
Ensure capacity when adding parts in String.replace.
...
R=ulan@chromium.org
BUG=v8:2289
TEST=regress-2289.js
Review URL: https://chromiumcodereview.appspot.com/10830304
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12307 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-14 11:33:12 +00:00
yangguo@chromium.org
d3733ce1e3
Prevent segfault on undefined inline runtime call.
...
R=mstarzinger@chromium.org
BUG=v8:2286
Review URL: https://chromiumcodereview.appspot.com/10828282
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12306 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-14 10:06:34 +00:00
yangguo@chromium.org
3605fcbe63
Fix indexing bug in regexp, part 2.
...
The previous fix initialized the start index incorrectly.
BUG=
Review URL: https://chromiumcodereview.appspot.com/10834291
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12302 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-13 15:53:40 +00:00
mstarzinger@chromium.org
e77f24f44e
Remove prototype of global builtins object.
...
R=yangguo@chromium.org
BUG=v8:2284
TEST=mjsunit/regress/regress-2284
Review URL: https://chromiumcodereview.appspot.com/10854116
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12301 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-13 15:34:49 +00:00
yangguo@chromium.org
960b1af12f
Fix wrong indexing in global regexp.
...
R=ulan@chromium.org
BUG=142087
Review URL: https://chromiumcodereview.appspot.com/10824278
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12300 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-13 15:26:46 +00:00
yangguo@chromium.org
f30099dacf
Check for function in %_CallFunction.
...
R=mstarzinger@chromium.org
BUG=v8:2285
Review URL: https://chromiumcodereview.appspot.com/10854115
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12299 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-13 12:11:26 +00:00
yangguo@chromium.org
bc9df090c7
Fix array-iteration test case.
...
R=verwaest@chromium.org
BUG=v8:2282
Review URL: https://chromiumcodereview.appspot.com/10827295
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12297 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-13 08:32:17 +00:00
yangguo@chromium.org
cd5ee62692
Allow multiple lines of custom flags in javascript tests.
...
R=ulan@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/10855099
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12289 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-10 12:26:33 +00:00