ager@chromium.org
6098abf46e
Fix the debugger for strict-mode functions.
...
undefined is passed unchanged as the receiver for strict-mode
functions through call and apply. Also, if a strict-mode function is
called without an explicit receiver, undefined is passed as the
receiver (not the global object as for other functions).
R=vegorov@chromium.org
BUG=89236
TEST=mjsunit/debug-scopes.js
Review URL: http://codereview.chromium.org/7388011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8675 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-18 14:29:50 +00:00
jkummerow@chromium.org
93c5c5fa23
Make GYP build usable for day-to-day work
...
- 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
Review URL: http://codereview.chromium.org/7383006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8674 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-18 14:19:48 +00:00
rossberg@chromium.org
5e62e325ac
Implement sealing, freezing, and related functions for proxies.
...
R=ager@chromium.org
BUG=v8:1543
TEST=
Review URL: http://codereview.chromium.org/7391001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8673 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-18 13:04:52 +00:00
ager@chromium.org
ce75f236f4
Replace reinterpret_cast with BitCast in deoptimizer to please certain compilers.
...
R=jkummerow@chromium.org
BUG=v8:1564
Review URL: http://codereview.chromium.org/7398024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8672 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-18 10:51:28 +00:00
svenpanne@chromium.org
55336b37bd
Fixed confusion between AST IDs and condition codes on ARM.
...
C++'s 'great' idea of implicitly converting an enum to an integral value hit us
again, this time resulting in silly (but currently non-harmful) entries in the
relocation table. Encapsulated the AST ID recording a bit, which helped a lot to
find the culprit.
Review URL: http://codereview.chromium.org/7400016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8671 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-18 10:44:13 +00:00
svenpanne@chromium.org
ec9ae871dd
Prepare push to trunk.
...
Review URL: http://codereview.chromium.org/7397010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8668 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-18 09:36:15 +00:00
ager@chromium.org
78f173c47b
Introduce a random entropy source which can optionally be provided at initialization.
...
BUG=89462
Review URL: http://codereview.chromium.org/7395012
Patch from Chris Neckar <cdn@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8666 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-17 09:16:28 +00:00
vitalyr@chromium.org
6c71920a51
Fix win64 build.
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8665 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-15 17:01:54 +00:00
vitalyr@chromium.org
3d323c691b
Avoid TLS load in AstNode constructor.
...
R=ager@chromium.org
Review URL: http://codereview.chromium.org/7383013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8664 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-15 16:57:35 +00:00
mstarzinger@chromium.org
2a225a3717
Fixed bug in array filter and reduce functions.
...
R=danno@chromium.org
BUG=v8:1559
TEST=test262
Review URL: http://codereview.chromium.org/7368005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8661 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-15 11:07:18 +00:00
rossberg@chromium.org
75a2c49c1d
Implement delete trap for proxies.
...
R=ager@chromium.org
BUG=1543
TEST=
Review URL: http://codereview.chromium.org/7369001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8660 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-15 09:10:20 +00:00
yangguo@chromium.org
5f1a8dc71f
Included variable default for d8.gyp.
...
TEST=build/gyp_v8 --generator-output=testbuild/
Review URL: http://codereview.chromium.org/7384006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8659 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-15 08:44:00 +00:00
yangguo@chromium.org
e8bf31427b
Introduces a light version of D8 that links against shared library.
...
Review URL: http://codereview.chromium.org/7351017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8657 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-14 15:43:40 +00:00
jkummerow@chromium.org
d4779286b6
Add map check for COW elements to crankshaft array handling code.
...
BUG=1560
TEST=mjsunit/regress/regress-1560.js
Review URL: http://codereview.chromium.org/7366008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8656 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-14 14:45:20 +00:00
mikhail.naganov@gmail.com
e1e2b369eb
Convert *.js files of cctest/test-log into "resources".
...
This allows running cctest from anywhere.
I was to rename single-letter variables in my script due to an encountered issue
in JSMin (http://code.google.com/p/v8/issues/detail?id=1557 ).
R=svenpanne@chromium.org ,sgjesse@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/7354027
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8654 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-14 11:38:18 +00:00
vegorov@chromium.org
615add8463
Expose APIs for detecting boxed primitives, native errors and Math.
...
While implementing structured clone I found that I need support
for detecting and creating objects using the builtin Number, String
and Boolean constructors; this CL adds this support. I also need
to be able to detect entities of "native object type (e.g., Error)",
hence the new IsNativeError() calls.
(ref: http://www.whatwg.org/specs/web-apps/current-work/multipage/urls.html#safe-passing-of-structured-data )
Patch by Luke Zarko.
Review URL: http://codereview.chromium.org/7344013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8653 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-14 11:00:04 +00:00
danno@chromium.org
dbf0aee6ae
simplification to HClampToUint8
...
* src/hydrogen-instructions.h (HClampToUint8): Don't mark as having
flexible representation; instead the output is always an Integer32.
There is no input representation restriction, so we can still perform
input-specific truncation.
I tested by looking at the --print-code of
var a = PixelArray(1000000)
function fill(a,x) { for (var i=0; i<a.len; i++) a[i] = x; }
Seems to optimize fine both for double and integer inputs. But perhaps
there is a better test, for which the original code does better, and
this is a bogus patch.
Review URL: http://codereview.chromium.org/7357003
Patch from Andy Wingo <wingo@igalia.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8650 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-14 09:51:52 +00:00
svenpanne@chromium.org
be24b71ffe
Harmonize naming a bit, x64 was the only platform where Register::from_code was called Register::toRegister.
...
Review URL: http://codereview.chromium.org/7364001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8648 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-14 07:44:04 +00:00
danno@chromium.org
a2d162becd
Fix the build on x64 and ARM.
...
BUG=none
TEST=bot greeness
Review URL: http://codereview.chromium.org/7357002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8647 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-13 16:51:30 +00:00
danno@chromium.org
2e19844aa2
Fixes build failures from FixedDoubleArray IC patch.
...
BUG=none
TEST=windows build bot works
Review URL: http://codereview.chromium.org/7342048
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8646 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-13 16:36:26 +00:00
ager@chromium.org
9c233c711e
Fix shortcutting bug in HInferRepresentation
...
* src/hydrogen.cc (HInferRepresentation::Analyze): Fix iterative loop
over phis; the shortcutting behavior of || appears to be accidental
here, causing O(n^2) convergence. Not that it matters much, but hey!
While I'm at it, a minor comment fix:
* src/hydrogen-instructions.h (EnsureAndPropagateNotMinusZero): Fix a
comment about the kinds of instructions that propagate to multiple
inputs.
BUG=
TEST=passes tools/test.py
Review URL: http://codereview.chromium.org/7350019
Patch from Andy Wingo <wingo@igalia.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8645 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-13 14:43:09 +00:00
danno@chromium.org
391ef3be33
Implement ICs for FastDoubleArray loads and stores
...
Implemented on ia32, x64, ARM. Stubbed out with UNIMPLEMENTED on MIPS.
BUG=none
TEST=unbox-double-arrays.js
Review URL: http://codereview.chromium.org/7307030
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8637 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-13 13:50:27 +00:00
ricow@chromium.org
907065c1ae
Fix presubmit
...
Review URL: http://codereview.chromium.org/7354021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8636 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-13 13:29:10 +00:00
vegorov@chromium.org
67709e5355
Fix bug in prototype transitions cache clearing introduced by r8165.
...
Invalid loop nesting causes full cleanup of the prototype transitions cache on every GC.
R=ager@chromium.org
Review URL: http://codereview.chromium.org/7354020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8634 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-13 13:16:00 +00:00
sgjesse@chromium.org
be1eee7063
Support scope information and evaluation in optimized frames
...
R=svenpanne@chromium.org
BUG=v8:1140
TEST=test/mjsunit/debug-evaluate-locals-optimized.js,test/mjsunit/debug-evaluate-locals-optimized-double.js
Review URL: http://codereview.chromium.org//7343005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8633 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-13 12:49:27 +00:00
whesse@chromium.org
86b5123ddc
Prepare push to trunk. We are now working on version 3.4.13.
...
Review URL: http://codereview.chromium.org/7356011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8632 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-13 12:26:39 +00:00
mikhail.naganov@gmail.com
a9a51c054d
WebKit Win fix after r8629: use ...A Win API functions explicitly.
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8631 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-13 11:58:46 +00:00
rossberg@chromium.org
ddb782dcb8
Implement Object.getOwnPropertyDescriptor for proxies.
...
Fix bug in compilation of calls with proxy receivers.
R=kmillikin@chromium.org ,ager@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/7237050
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8630 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-13 11:57:15 +00:00
mikhail.naganov@gmail.com
5c57d0d643
Remove support for logging into a memory buffer.
...
The only usage of it was in logging tests, I've switched them for
using a file.
I've left out support for "--logfile=*" for now, as Chromium uses it.
Will be removed after the next V8 roll.
R=sgjesse@chromium.org
BUG=859
TEST=mjsunit/log-*
Review URL: http://codereview.chromium.org/7310025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8629 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-13 11:31:22 +00:00
whesse@chromium.org
b2e8d72bf5
Revert r8619 because of Webkit failures.
...
Review URL: http://codereview.chromium.org/7351014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8628 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-13 11:13:40 +00:00
svenpanne@chromium.org
f1860fbdc0
Disentangle printing of stub names and memory allocation.
...
Using a C++-style method PrintName (a.k.a. << ;-), things get a lot easier when
two unrelated concerns are separated. Stubs don't need a name cache anymore,
simpler code while generating the stub name, memory allocation is centralized,
etc.
Review URL: http://codereview.chromium.org/7342042
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8627 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-13 11:08:25 +00:00
rossberg@chromium.org
6e2da733da
Implement Object.keys for proxies.
...
R=kmillikin@chromium.org ,ager@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/7321004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8626 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-13 11:01:17 +00:00
sgjesse@chromium.org
8b684b9a08
Make fast tls the default
...
Now V8_NO_FAST_TLS needs to be defined to switch off fast tls access on platform which supports it.
R=ager@chromium.org
BUG=none
TEST=none
Review URL: http://codereview.chromium.org//7350017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8624 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-13 10:00:33 +00:00
sgjesse@chromium.org
620d50af55
Avoid patching code after the call to binary operation stub in optimized code
...
This patch just adds a nop after the call to the binary operation stub in optimized code to avoid the patching for the inlined smi case used in the full code generator to kick in if the next instruction generated by the lithium code generator should accidentially enable that. For calls generated by CallCodeGeneric this was already handled on Intel platforms, but missing on ARM.
On IA-32 I did also try to check for whether the code containing the call was optimized (patch below), but that caused regressions on some benchmarks.
diff --git src/ia32/ic-ia32.cc src/ia32/ic-ia32.cc
index 5f143b1..f70e208 100644
--- src/ia32/ic-ia32.cc
+++ src/ia32/ic-ia32.cc
@@ -1603,12 +1603,18 @@ void CompareIC::UpdateCaches(Handle<Object> x, Handle<Object> y) {
// Activate inlined smi code.
if (previous_state == UNINITIALIZED) {
- PatchInlinedSmiCode(address());
+ PatchInlinedSmiCode(address(), isolate());
}
}
-void PatchInlinedSmiCode(Address address) {
+void PatchInlinedSmiCode(Address address, Isolate* isolate) {
+ // Never patch in optimized code.
+ Code* code = isolate->pc_to_code_cache()->GetCacheEntry(address)->code;
+ if (code->kind() == Code::OPTIMIZED_FUNCTION) {
+ return;
+ }
+
// The address of the instruction following the call.
Address test_instruction_address =
address + Assembler::kCallTargetAddressOffset;
diff --git src/ic.cc src/ic.cc
index f70f75a..62e79da 100644
--- src/ic.cc
+++ src/ic.cc
@@ -2384,7 +2384,7 @@ RUNTIME_FUNCTION(MaybeObject*, BinaryOp_Patch) {
// Activate inlined smi code.
if (previous_type == BinaryOpIC::UNINITIALIZED) {
- PatchInlinedSmiCode(ic.address());
+ PatchInlinedSmiCode(ic.address(), isolate);
}
}
diff --git src/ic.h src/ic.h
index 11c2e3a..9ef4b20 100644
--- src/ic.h
+++ src/ic.h
@@ -721,7 +721,7 @@ class CompareIC: public IC {
};
// Helper for BinaryOpIC and CompareIC.
-void PatchInlinedSmiCode(Address address);
+void PatchInlinedSmiCode(Address address, Isolate* isolate);
} } // namespace v8::internal
R=danno@chromium.org
BUG=none
TEST=none
Review URL: http://codereview.chromium.org//7350015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8623 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-13 09:31:17 +00:00
sgjesse@chromium.org
8a6108de95
Remove the ability to compile without logging and profiling
...
The preprocessor defines ENABLE_LOGGING_AND_PROFILING and ENABLE_VMSTATE_TRACKING has been removed as these where required to be turned on for Crankshaft to work. To re-enable reducing the binary size by leaving out heap and CPU profiler a new set of defines needs to be created.
R=ager@chromium.org
BUG=v8:1271
TEST=all
Review URL: http://codereview.chromium.org//7350014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8622 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-13 09:09:04 +00:00
yangguo@chromium.org
c0044bb7e2
Added dictionary that can use objects as keys.
...
R=vegorov@chromium.org
TEST=cctest/test-dictionary
Review URL: http://codereview.chromium.org/7349005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8619 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-12 15:13:57 +00:00
svenpanne@chromium.org
0ff690b370
Fixed a long-standing TODO: Removed a few *-incl.h #includes from isolate.h.
...
ZoneAllocationPolicy::New is not inlined anymore because this pulls in far too
much stuff and doesn't really make any measurable performance difference. And
no, the #includes are still not in alphabetical order... ;-)
Review URL: http://codereview.chromium.org/7346006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8616 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-12 08:03:19 +00:00
lrn@chromium.org
2ee07e1d93
Remove prematurely added dependencies from preparser.
...
Also remove some dead code.
Review URL: http://codereview.chromium.org/7334008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8615 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-12 07:50:25 +00:00
yangguo@chromium.org
216a3935c9
second attempt at correcting fopen (hangs when trying to read from a dir)
...
Review URL: http://codereview.chromium.org/7334010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8611 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-11 15:30:24 +00:00
sgjesse@chromium.org
54e81c351f
Add source position recording for variable loads
...
This provides more precise source to generated code mapping as variable loads can be handled using IC calls.
R=kmillikin@chromium.org
BUG=v8:1527
TEST=test/message/regress/regress-1527
Review URL: http://codereview.chromium.org//7327038
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8610 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-11 15:20:17 +00:00
yangguo@chromium.org
58d7fb8266
rollback
...
BUG=
TEST=
Review URL: http://codereview.chromium.org/7333010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8603 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-11 14:08:27 +00:00
kmillikin@chromium.org
890bc1607a
Fix a potential crash in const declaration.
...
Declaration of const lookup slots would trigger an assertion if there was a
setter somewhere in the prototype chain, and that setter was shadowed by a
non-readonly data property also in the prototype chain.
R=ager@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/7324048
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8602 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-11 14:07:12 +00:00
ager@chromium.org
15429da469
Remove heap protection support.
...
It does not currently work and when it did work we never got it fast
enough to be useful.
R=kmillikin@chromium.org
Review URL: http://codereview.chromium.org/7324051
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8601 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-11 14:03:21 +00:00
yangguo@chromium.org
6cb055ae5d
bug fix
...
BUG=http://code.google.com/p/v8/issues/detail?id=1533
Review URL: http://codereview.chromium.org/7335007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8600 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-11 13:48:10 +00:00
vegorov@chromium.org
3555f82311
Fix bug in Map::TraverseTransitionTree.
...
If map has an empty DescriptorArray we have to set map_or_index_field to NULL otherwise we will
reset iteration state for a previously visited map in the transition tree which has a non-empty
DescriptorArray. This might result in visiting the same map several times.
R=whesse@chromium.org
BUG=v8:1526
Review URL: http://codereview.chromium.org/7329043
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8596 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-11 12:06:35 +00:00
yangguo@chromium.org
f2f2efc544
bug fix since --prof did not work
...
BUG= --prof did not work
TEST=./d8 --prof <insert any test>
Review URL: http://codereview.chromium.org/7331036
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8595 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-11 12:04:13 +00:00
sgjesse@chromium.org
7225401ff4
Prepare push to trunk. We are now working on version 3.4.12.
...
R=ricow@chromium.org
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/7331037
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8591 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-11 11:10:45 +00:00
sgjesse@chromium.org
d51834ad5e
Fix heap corruption and memory leakage in inspection of optimized frames.
...
R=ricow@chromium.org
BUG=none
TEST=test/mjsunit/debug-evaluate-arguments.js
Review URL: http://codereview.chromium.org//7334005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8590 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-11 09:35:18 +00:00
svenpanne@chromium.org
c71cf782e8
Drastically reduce the transitive dependencies of jsregexp.h, making it (almost)
...
architecture-independent.
jsregexp.h is itself included transitively quite a lot, and by getting rid of 19
of its dependencies (which even included things like src/cpu.h, the various
assemblers, etc.), the recompilation behaviour is a bit less funny than it was.
Review URL: http://codereview.chromium.org/7331014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8589 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-11 09:12:17 +00:00
yangguo@chromium.org
8330176f3f
ported --isolate option to d8 and refactored to group together option parsing
...
TEST=tools/test.py -j15 --shell d8 --isolates
Review URL: http://codereview.chromium.org/7318002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8588 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-11 07:38:09 +00:00
kmillikin@chromium.org
cbaf1bc98b
Allow JSObject::PreventExtensions to work for arguments objects.
...
R=karlklose@chromium.org
Review URL: http://codereview.chromium.org/7335002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8587 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-11 06:48:19 +00:00
sgjesse@chromium.org
77933b4f63
MIPS: port Fix problem with arguments object ICs not checking for dictionary mode elements.
...
Ported r8497 (916120a)
Patch by Daniel Kalmar <kalmard@homejinni.com>
BUG=
TEST=
Review URL: http://codereview.chromium.org//7329013
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8586 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-11 06:46:58 +00:00
sgjesse@chromium.org
5528ce7057
MIPS: Cleaned up calling-related methods in the assembler.
...
Patterned after r8482, Cleaned up calling-related methods in the ARM assembler.
On MIPS I completely refactored the Jump and Call methods.
All the Jump and Call macro helpers have been replaced with overloaded functions
(matching the ARM version) and using default parameter values where possible.
The previously mostly-unused CallSize function is utilized as well (same as on ARM).
The unused Jump(Operand, ...) and Call(Operand, ...) versions have been completely removed.
I also removed the Jump(BranchDelaySlot, ...) and Call(BranchDelaySlot,...) methods as
they were unused and declaring them would either result in a lot of unused code or the
previously experienced macro-hell. The only exception to this is for Ret() where the
branch delay slot is often used.
This fixes the failing debug tests for example cctest test-debug/DebugStepFor.
Ported r8482 (41cb9ed)
Patch by Daniel Kalmar <kalmard@homejinni.com>
BUG=
TEST=
Review URL: http://codereview.chromium.org//7328013
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8585 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-11 06:45:27 +00:00
danno@chromium.org
07def3cb1e
Unify handling of element IC stubs.
...
In the process, add shared stubs for DictionaryValue lookups that are handled in the same way as fast elements and external array elements.
Includes code for MIPS, which compiles and run polymorph-arrays.js successfully.
R=jkummerow@chromium.org
BUG=none
TEST=test/mjsunit/polymorph-arrays.js
Review URL: http://codereview.chromium.org/7227010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8579 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-08 10:46:10 +00:00
svenpanne@chromium.org
c8618923ec
Removed useless implementations of GetName and Print for code stubs, the common
...
super-class handles the most common case already.
Review URL: http://codereview.chromium.org/7332001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8576 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-08 09:40:14 +00:00
sgjesse@chromium.org
562adac59f
Generate shorter instruction forms for constant in ia32 gap resolver.
...
Review URL: http://codereview.chromium.org//7277084
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8574 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-08 09:08:12 +00:00
sgjesse@chromium.org
7cbf0a4d48
Add inspection of whether frame is a construct frame to optimized frames
...
Also avoid that calling Debug::IsBreakAtReturn causes a full doptimization when there are no break points set. The full deoptimization is caused by Debug::IsBreakAtReturn calling Debug::EnsureDebugInfo which will assume that a break point is now set.
R=svenpanne@chromium.org
BUG=v8:1140
TEST=test/mjsunit/debug-evaluate-locals-optimized.js,test/mjsunit/debug-
evaluate-locals-optimized-doubles.js
Review URL: http://codereview.chromium.org//7307035
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8573 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-08 08:55:26 +00:00
kmillikin@chromium.org
44c4d0e376
Fix compilation error.
...
Compiler cannot recognize the typename in template declaration. Caught by
MSVC.
R=ricow@chromium.org
Review URL: http://codereview.chromium.org/7237047
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8572 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-08 08:03:39 +00:00
kmillikin@chromium.org
fe23339bdd
Fix a bug in for/in iteration of arguments objects.
...
We did not properly combine the property names from the parameter map
and the arguments backing store. They could overwrite each other and
be unsorted.
Also fix an unrelated bug: deleting from a dictionary-mode arguments
backing store could corrupt the parameter map.
R=rossberg@chromium.org
BUG=1531
TEST=mjsunit/regress/regress-1531.js
Review URL: http://codereview.chromium.org/7278033
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8571 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-08 07:31:48 +00:00
sgjesse@chromium.org
436c547a27
MIPS: port Fix ARM regression introduced with polymorphic array support.
...
Ported r8484 (9f824d7)
BUG=
TEST=
Review URL: http://codereview.chromium.org//7237046
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8570 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-08 06:59:54 +00:00
sgjesse@chromium.org
d9d40dd5d9
MIPS: port Fix a typo in KeyedStoreIC, restore Kraken performance.
...
Ported r8539 (46103ea)
BUG=
TEST=
Review URL: http://codereview.chromium.org//7327016
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8569 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-08 06:48:27 +00:00
sgjesse@chromium.org
4145dded9a
MIPS: port Introduce code flushing of RegExp code.
...
Ported r8532 (c9db503)
Original commit message:
Due to issues relating mostly to chrome extensions we have lately been
running into OOMs that are caused by our executable space running
out. This change introduces flushing of code from regexps if we have
not used the code for 5 mark sweeps.
The approach is different from the normal function code flusing. Here
we make a copy of the code inside the data array, and exchange the
original code with a smi determined by the sweep_generation (a new
heap variable increased everytime we do mark sweep/compact). If we
encounter a smi in EnsureCompiled we simply reinstate the code
object. If, in the marking phase of mark sweep, we find a regexp that
already have a smi in the code field, and this is more than 5
generations old we flush the code from the saved index.
BUG=
TEST=
Review URL: http://codereview.chromium.org//7324018
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8568 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-08 06:47:09 +00:00
sgjesse@chromium.org
ae35e56221
Try to fix Windows compilation error.
...
R=whesse@chromium.org
BUG=none
TEST=none
Review URL: http://codereview.chromium.org//7321008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8567 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-07 19:27:48 +00:00
sgjesse@chromium.org
8ccb47f57e
Add inspection of arguments for optimized frames
...
R=svenpanne@chromium.org
BUG=v8:1140
TEST=test/mjsunit/debug-evaluate-locals-optimized.js,test/mjsunit/debug-
evaluate-locals-optimized-doubles.js
Review URL: http://codereview.chromium.org//7310027
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8566 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-07 14:29:16 +00:00
svenpanne@chromium.org
894f57f96a
Reduce the number of global constructor calls by changing a constant to a
...
(constant) inline function.
This brings down the size of v8's .ctors section to 1/4, hopefully fixing the
recent issues with Chromes' CL 91522.
Review URL: http://codereview.chromium.org/7321005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8565 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-07 13:57:58 +00:00
rossberg@chromium.org
58b913f9f0
Implement Object.defineProperty for proxies.
...
R=kmillikin@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/7314003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8564 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-07 12:41:20 +00:00
vitalyr@chromium.org
0f9b0ad8c3
Don't check symbol literals for being symbols.
...
R=fschneider@chromium.org
Review URL: http://codereview.chromium.org/7312024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8563 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-07 12:01:49 +00:00
vegorov@chromium.org
c1e1e97b8b
When resolving phies use ANY instead of NONE as a policy for phi operands.
...
R=fschneider@chromium.org
Review URL: http://codereview.chromium.org/7313023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8562 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-07 10:22:39 +00:00
fschneider@chromium.org
d54460fd85
Don't emit a write barrier when storing boolean-typed values.
...
Review URL: http://codereview.chromium.org/7312022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8561 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-07 10:14:55 +00:00
ricow@chromium.org
82e53270dc
Ensure that regexps always have code object, even if GC happened while running multiple times in runtime.
...
Review URL: http://codereview.chromium.org/7316018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8560 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-07 10:04:56 +00:00
vitalyr@chromium.org
28d5392bc0
Group property assignments in top-level blocks.
...
This patch enables insertion of To{Slow,Fast}Properties around a group
of assigments to the same object even when they are put in a block
(e.g. try-catch, if, etc.). Catching exceptions and disabling parts of
code based on some config vars is rather common in top-level code.
R=vegorov@chromium.org
Review URL: http://codereview.chromium.org/7314002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8558 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-06 17:21:32 +00:00
sgjesse@chromium.org
53a5b07992
Add inspection of function for optimized frames
...
R=svenpanne@chromium.org
BUG=none
TEST=test/mjsunit/debug-evaluate-locals-optimized.js,test/mjsunit/debug-evaluate-locals-optimized-doubles.js
Review URL: http://codereview.chromium.org//7227006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8556 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-06 13:02:17 +00:00
vegorov@chromium.org
172cd39760
Define OS::MaxVirtualMemory on MinGW.
...
Patch by Bert Belder.
BUG=v8:1508
Review URL: http://codereview.chromium.org/7212030
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8553 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-06 12:29:21 +00:00
vegorov@chromium.org
f465eeff69
MinGW32: define STRUNCATE and change strncpy_s implementation to follow specification.
...
This fixes the debug build for MinGW32
Patch by Bert Belder.
Review URL: http://codereview.chromium.org/7308007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8552 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-06 12:25:25 +00:00
jkummerow@chromium.org
aed876cb21
Prepare push to trunk. Now working on version 3.4.11.
...
R=svenpanne@chromium.org
Review URL: http://codereview.chromium.org/7310001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8545 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-06 10:58:52 +00:00
sgjesse@chromium.org
ca3787f395
Fix debug break on binary boolean operators
...
The syntax checker finding breakable statements did not take into account that the right hand side of a boolean binary opration might never get evaluated.
R=svenpanne@chromium.org
BUG=v8:1523
TEST=test/mjsunit/regress/regress-1523.js
Review URL: http://codereview.chromium.org//7212027
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8544 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-06 10:16:57 +00:00
sgjesse@chromium.org
612d6d3274
Use the information from the last recorded safepoint for the padding after the deferrred code.
...
R=kmillikin@chromium.org
BUG=none
TEST=none
Review URL: http://codereview.chromium.org//7248077
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8543 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-06 09:28:07 +00:00
lrn@chromium.org
57b7a67dba
Revert preparser duplicate detection.
...
Doesn't work on Windows yet.
Crashes some layout-tests.
Review URL: http://codereview.chromium.org/7278039
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8542 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-06 09:15:10 +00:00
lrn@chromium.org
57760b8275
Make preparser detect duplicate parameters and object literal properties.
...
This is a fix and reapply of r8516 with some comments addressed and more
tests added.
The difference from r8516 is that canonicalization of number literals is
no performed using the same methods as in v8, to avoid false positives/negatives
when detecting duplicates.
Review URL: http://codereview.chromium.org/7193045
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8541 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-06 08:32:48 +00:00
sgjesse@chromium.org
4f12a06c8a
Fix a typo in KeyedStoreIC, restore Kraken performance.
...
TEST=none
BUG=none
Review URL: http://codereview.chromium.org//7193041
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8539 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-06 07:05:49 +00:00
vitalyr@chromium.org
47ed2b58c6
Fix arm build.
...
TBR=sgjesse@chromium.org
Review URL: http://codereview.chromium.org/7308012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8538 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-05 16:12:42 +00:00
vitalyr@chromium.org
bbaed5b82e
Fix a few issues breaking cctest/test-lockers/Regress1433:
...
o The thread local state in an isolate has to be initialized before
it's used.
o v8::Locker was incorrectly tracking whether it's the topmost one.
o Waking the profiler thread on shutdown should not leave the
semaphore counter in an inconsitent state.
R=fschneider@chromium.org
BUG=v8:1522
TEST=cctest/test-lockers/Regress1433
Review URL: http://codereview.chromium.org/7309013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8537 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-05 15:49:39 +00:00
sgjesse@chromium.org
10bb16f495
Add support for lazy deoptimization from deferred stack checks
...
The debugger can be entered from the deferred stack check in optimized code. This can cause both lazy deoptimization and debugger deoptimization (setting the first break point and inspecting the stack for optimized code respectively). This required deoptimization support from the deferred stack check.
The lazy deoptimiztion call is inserted when the deferred code is done including restoring the registers. The bailout to the full code is the begining of the loop body as that is where the stack check is sitting in the optimized code. The bailout is not to the stack check in the full code as that is sitting at the end of the loop.
R=kmillikin@chromium.org
BUG=none
TEST=none
Review URL: http://codereview.chromium.org//7212025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8535 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-05 13:21:29 +00:00
lrn@chromium.org
877d6198e5
Extract string->double and double->string conversions for use in the preparser.
...
Review URL: http://codereview.chromium.org/7308004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8534 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-05 11:54:11 +00:00
vegorov@chromium.org
e3b1fe2c14
Fix ABI for API calls on ia32.
...
Instead of relying on eax value after the call load returned handle value directly from the slot that was preallocated for it.
R=vitalyr@chromium.org
Review URL: http://codereview.chromium.org/7307004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8533 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-05 11:36:52 +00:00
ricow@chromium.org
0f682143d9
Introduce code flushing of RegExp code.
...
Due to issues relating mostly to chrome extensions we have lately been
running into OOMs that are caused by our executable space running
out. This change introduces flushing of code from regexps if we have
not used the code for 5 mark sweeps.
The approach is different from the normal function code flusing. Here
we make a copy of the code inside the data array, and exchange the
original code with a smi determined by the sweep_generation (a new
heap variable increased everytime we do mark sweep/compact). If we
encounter a smi in EnsureCompiled we simply reinstate the code
object. If, in the marking phase of mark sweep, we find a regexp that
already have a smi in the code field, and this is more than 5
generations old we flush the code from the saved index.
Review URL: http://codereview.chromium.org/7282026
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8532 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-05 06:19:53 +00:00
whesse@chromium.org
f3d1453f83
As part of allowing different contexts for inlined functions, eliminate most explicit reads of the context from the stack frame in ia32 crankshaft codegen.
...
Eliminates the enum flag RESTORE_CONTEXT and CONTEXT_ADJUSTED, and adds a context HValue and LOperand to many hydrogen and lithium instructions.
Context is still used from the stack from in CallKnownFunction (this seems safe), and in CallRuntimeFromDeferred in lithium-codegen-ia32.cc, which needs to be fixed.
BUG=
TEST=
Review URL: http://codereview.chromium.org/7132002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8529 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-04 14:13:08 +00:00
vitalyr@chromium.org
8f60208324
Fix bug 1529: check for NULL handle in v8::TryCatch::StackTrace.
...
Internal HandleScope::CloseAndEscape crashes on NULL handles.
R=kmillikin@chromium.org
BUG=v8:1529
TEST=mjsunit/regress/regress-1529
Review URL: http://codereview.chromium.org/7309004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8527 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-04 13:29:56 +00:00
ricow@chromium.org
9217a45b9e
Prepare push to trunk. Now working on 3.4.10.
...
Review URL: http://codereview.chromium.org/7307003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8526 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-04 13:20:39 +00:00
whesse@chromium.org
03c694258a
Fix Windows 64-bit compilation error.
...
BUG=
TEST=
Review URL: http://codereview.chromium.org/7307002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8525 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-04 11:58:20 +00:00
whesse@chromium.org
5f721c3f84
Speed up V8 random number generator, reverting part of 8490.
...
Return to previous random number generator, but mix more bits into
output to hide hidden state better. Keep the multithreading fix that
moves the PNG into isolate.
BUG=
TEST=
Review URL: http://codereview.chromium.org/7250005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8524 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-04 11:34:29 +00:00
kmillikin@chromium.org
57c29c1f29
Fix a bug in with and catch context allocation.
...
We were only looking one level up the scope chain to decide which
closure to use in the fresh context. Instead, we should look to the
first non-catch scope.
R=vegorov@chromium.org
BUG=1528
TEST=regress-1528
Review URL: http://codereview.chromium.org/7309002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8523 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-04 09:34:47 +00:00
sgjesse@chromium.org
c5aebcb7b0
MIPS: port Introduce scopes to keep track of catch blocks at compile time.
...
Port r8496 (b7d5ecf0).
Original commit message:
Introduce scopes to keep track of catch blocks at compile time.
The catch variable is bound in the catch scope. For simplicity in this
initial implementation, it is always allocated even if unused and always
allocated to a catch context even if it doesn't escape. The presence of
catch is no longer treated as a with.
In this change, care must be taken to distinguish between the scope where a
var declaration is hoisted to and the scope where the initialization occurs.
BUG=
TEST=
Review URL: http://codereview.chromium.org//7212020
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8522 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-04 09:05:57 +00:00
sgjesse@chromium.org
a89f314de3
MIPS: port Do not pass the global object as the receiver to strict-mode ...
...
Do not pass the global object as the receiver to strict-mode and
builtin replace and sort functions.
Port r8488 (6f347b6)
BUG=
TEST=
Review URL: http://codereview.chromium.org//7278024
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8521 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-04 09:01:52 +00:00
sgjesse@chromium.org
9cc5b94c2e
Correctly handle the constant pool in constant pool splitting test
...
The constant pool was not taken into account in the test test-compiler/SplitConstantsInFullCompiler which caused random failures.
This also reverts the test code added in r8469 and r8471.
R=ricow@chromium.org
BUG=none
TEST=test-compiler/SplitConstantsInFullCompiler
Review URL: http://codereview.chromium.org//7308001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8520 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-04 08:57:43 +00:00
lrn@chromium.org
4f1e60cc75
Revert r8516.
...
Revision 8516 contained a temporary hack that doesn't work on Windows.
TBR: ricow
Review URL: http://codereview.chromium.org/7298008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8519 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-01 15:44:21 +00:00
kmillikin@chromium.org
a48c03bb2a
Fix an issue with optimization of functions inside catch.
...
When optimizing a function defined inside a catch, we did not count
the catch context as part of the context chain.
R=vegorov@chromium.org
BUG=1521
TEST=regress-1521
Review URL: http://codereview.chromium.org/7285032
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8518 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-01 14:05:46 +00:00
lrn@chromium.org
b6779044c9
Add duplicate parameter detection to preparser.
...
Add tests for duplicate properties of object initialisers to preparser.
TEST=preparser
Review URL: http://codereview.chromium.org/7168016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8517 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-01 13:46:52 +00:00
vitalyr@chromium.org
8448d09d3b
Do a backing store sparseness check on fast element delete.
...
R=vegorov@chromium.org
Review URL: http://codereview.chromium.org/7298004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8516 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-01 13:18:42 +00:00
vitalyr@chromium.org
fe7bdf1fe8
Remove unmarked entries from per context map caches.
...
Made "map_cache" a weak field of global context and added a pass over
all caches late in the marking phase.
R=vegorov@chromium.org
BUG=v8:1516
TEST=cctest/test-api/Regress1516
Review URL: http://codereview.chromium.org/7285031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8515 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-01 12:47:18 +00:00
yangguo@chromium.org
77a3c7226b
exposing a few boolean queries from objects.h
...
TEST=start with ./d8 --allow-natives-syntax and try %ObjectHasFastElements({})
Review URL: http://codereview.chromium.org/7289010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8514 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-01 11:47:55 +00:00
lrn@chromium.org
ff9ce1abd4
Make date parser handle all ES5 Date Time Strings correctly.
...
This means that ES5 Date Time Strings will default to UTC if timezone is absent.
Handle as many legacy strings as possible the same way as before
BUG=v8:1498
TEST=mjsunit/date
Review URL: http://codereview.chromium.org/7291022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8513 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-01 11:41:45 +00:00
jkummerow@chromium.org
31487d29e3
Add missing HandleScope
...
Review URL: http://codereview.chromium.org/7210056
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8509 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-01 11:04:36 +00:00
sandholm@chromium.org
9a2165c7fb
An attempt to resolve the win32 build error introduced in r8506
...
Review URL: http://codereview.chromium.org/7278018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8508 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-01 10:59:38 +00:00
mikhail.naganov@gmail.com
33177880c8
Remove "modules" and "tags" of the logging CPU profiler.
...
Modules now makes a little sense, as there is only one module.
Tags was a simplistic attempt of supporting nested profiles.
R=sgjesse@chromium.org
BUG=859
Review URL: http://codereview.chromium.org/7276046
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8507 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-01 09:35:16 +00:00
sandholm@chromium.org
7a817f620e
Special case handling of one char split on an ASCII string.
...
Review URL: http://codereview.chromium.org/7285030
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8506 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-01 09:29:38 +00:00
jkummerow@chromium.org
3916da5f98
Cleanup polymorphic IC code to make use of ElementsKind information in maps.
...
Review URL: http://codereview.chromium.org/7283044
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8504 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-01 07:58:58 +00:00
svenpanne@chromium.org
e6ec7808db
Simplify UnaryOpStub a little bit.
...
Only a single constructor is really needed. Make UnaryOp_Patch's arguments
simpler, avoiding encoding/decoding things in a cryptic way.
Review URL: http://codereview.chromium.org/7248063
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8503 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-01 07:50:46 +00:00
ager@chromium.org
75bebf3db8
Fixes the build for the shell on illumos and Solaris. -D__C99FEATURES__ was added to mirror how the build is done on the normal platform. The changes in the platform code are a follow up to a prior review and has the Solaris implementation be more similar to the Linux version as opposed to the FreeBSD.
...
Contributed by Robert Mustacchi <rm@fingolfin.org>
TEST=Note the test suite uncovered a bug in libm where pow(3M) was not doing the right thing on edge cases. The only test failures are related to this bug.
Review URL: http://codereview.chromium.org/7282034
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8502 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-01 05:50:14 +00:00
fschneider@chromium.org
f437f859c9
Relax register constraints for instructions that support memory operands on IA32.
...
Review URL: http://codereview.chromium.org/7290006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8501 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-30 18:14:48 +00:00
whesse@chromium.org
473f833699
Change return type of FrameDescription::GetFrameSize to avoid unneeded type casts.
...
Review URL: http://codereview.chromium.org/7282033
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8500 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-30 15:57:56 +00:00
kmillikin@chromium.org
05c73983a7
Remove bogus assertion.
...
R=fschneider@chromium.org
Review URL: http://codereview.chromium.org/7291001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8499 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-30 15:49:14 +00:00
fschneider@chromium.org
eb380e0f85
Fix broken ARM debug build.
...
TBR=
Review URL: http://codereview.chromium.org/7284035
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8498 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-30 15:05:24 +00:00
karlklose@chromium.org
c0e2268c8c
Fix problem with arguments object ICs not checking for dictionary mode elements.
...
R=kmillikin@chromium.org
BUG=1514
TEST=mjsunit/regress/regress-1513.js
Review URL: http://codereview.chromium.org/7282029
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8497 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-30 14:56:06 +00:00
kmillikin@chromium.org
f4c4df2d9a
Introduce scopes to keep track of catch blocks at compile time.
...
The catch variable is bound in the catch scope. For simplicity in this
initial implementation, it is always allocated even if unused and always
allocated to a catch context even if it doesn't escape. The presence of
catch is no longer treated as a with.
In this change, care must be taken to distinguish between the scope where a
var declaration is hoisted to and the scope where the initialization occurs.
R=ager@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/7280012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8496 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-30 14:37:55 +00:00
fschneider@chromium.org
b12e933e43
Refactor handling of test expressions in the graph builder.
...
Instead of generating two instructions and combining them
at lithium translation using the EmitAtUses predicate, we
generate the correct branch instruction right from the start.
Review URL: http://codereview.chromium.org/7237024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8495 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-30 14:19:52 +00:00
mikhail.naganov@gmail.com
d0559ee206
Heap profiler: annotate fixed arrays by their purpose.
...
This helps understanding what is a particular array for by
just looking at its name.
R=vitalyr@chromium.org
Review URL: http://codereview.chromium.org/7248058
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8494 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-30 14:19:33 +00:00
svenpanne@chromium.org
a482bd7ee3
Unbreak compilation on MIPS after EmitCallIC removal.
...
Note: It has only been verified that compilation is OK, nothing more... ;-)
Review URL: http://codereview.chromium.org/7273097
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8493 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-30 14:02:18 +00:00
whesse@chromium.org
3a7e8fb791
Fix compilation on 64-bit Windows build.
...
Review URL: http://codereview.chromium.org/7283043
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8491 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-30 13:08:13 +00:00
whesse@chromium.org
03df9dd50b
Improve pseudorandom number generation and move the PNG state to Isolate.
...
Review URL: http://codereview.chromium.org/7248060
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8490 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-30 13:07:43 +00:00
svenpanne@chromium.org
dd7e3cbdb2
Nuke EmitCallIC, it is a plain call now.
...
Note that the MIPS part will need some similar changes, too.
Review URL: http://codereview.chromium.org/7283042
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8489 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-30 13:05:03 +00:00
ager@chromium.org
0d8c343c90
Do not pass the global object as the receiver to strict-mode and
...
builtin replace and sort functions.
R=ricow@chromium.org
BUG=v8:1360
TEST=mjsunit/regress/regress-1360.js
Review URL: http://codereview.chromium.org/7283006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8488 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-30 12:29:19 +00:00
vegorov@chromium.org
89c83051aa
Fix presubmit failure in gdb-jit.cc.
...
R=ricow@chromium.org
Review URL: http://codereview.chromium.org/7289013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8487 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-30 12:19:47 +00:00
danno@chromium.org
743babcb44
Fix ARM regression introduced with polymorphic array support.
...
BUG=none
TEST=Kraken on ARM
Review URL: http://codereview.chromium.org/7218068
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8484 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-30 11:53:15 +00:00
vegorov@chromium.org
64c897b5cb
Extend gdb-jit support (OSX/locals+parameters/prettyprint)
...
Generate Mach-O in-memory objects for OSX. Dump locals and parameters
for non-optimized frames.
Unfortunately, it seems like more-recent-GDB on OSX there is a little
temperamental (eg, the version from macports will be missing symbols
from gdb-integration_g when the version included in xcode will not--
and this is with --gdbjit off).
Includes some Python scripts to make dealing with V8 values in gdb more
pleasant.
Patch by Luke Zarko.
Review URL: http://codereview.chromium.org/6995161
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8483 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-30 11:52:00 +00:00
svenpanne@chromium.org
233a8dc237
Cleaned up calling-related methods in the ARM assembler.
...
Generalized Call macro instruction to handle AST IDs, too, making things more
similar to the Intel assemblers. Removed unused methods. Minor signature
cleanup. Simplified assertions.
Review URL: http://codereview.chromium.org/7284029
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8482 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-30 11:26:15 +00:00
kmillikin@chromium.org
3f84fcf6c9
Fix a bug in Object.defineProperty.
...
There was a bug in Object.defineProperty when used to add an indexed
property to an arguments object. When converting the elements backing
store to dictionary mode, the parameter map in front of the backing
store does not change.
R=ager@chromium.org ,karlklose@chromium.org
Review URL: http://codereview.chromium.org/7289011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8481 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-30 11:11:19 +00:00
ager@chromium.org
47ca7358e6
MIPS: stub out Support debugger inspection of locals in optimized frames
...
Added Deoptimizer::FillInputFrame as UNIMPLEMENTED method.
Ported r8464 (34f38d1)
BUG=
TEST=
Review URL: http://codereview.chromium.org/7284026
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8480 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-30 09:25:29 +00:00
jkummerow@chromium.org
39b06d8850
Add support for dictionary elements to polymorphic crankshaft code.
...
Review URL: http://codereview.chromium.org/7285001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8479 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-30 08:40:31 +00:00
kmillikin@chromium.org
7d189d848e
MIPS: port Explicitly pass the closure when allocating a catch or with context.
...
Ported r8453 (59dd697)
Original commit message:
Before: allocation of a catch or with context fetched the closure to store
in the context from the previous context in the context chain. Now: the
closure is passed explicitly.
BUG=
TEST=
Review URL: http://codereview.chromium.org/7289008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8478 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-30 08:34:10 +00:00
kmillikin@chromium.org
861d18032a
MIPS: port Remove the fcontext field from all contexts.
...
Ported 8452 (8a2a360)
Original commit message:
Before: every context cached the nearest enclosing function context. This
assumed that for nested contexts (i.e., with and catch contexts) the
enclosing function had a materialized link in the context chain.
Now: when necessary, we loop up the context chain to find such a context.
This enables catch contexts without forcing the enclosing function to
allocate its own context.
BUG=
TEST=
Review URL: http://codereview.chromium.org/7284025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8477 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-30 08:32:59 +00:00
ager@chromium.org
3a5788915f
Fix platform-solaris after isolate changes.
...
Patch from http://code.google.com/p/v8/issues/detail?id=1509 .
R=ager@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/7273092
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8476 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-30 07:24:49 +00:00
ager@chromium.org
2b286a3128
Remove --strict developer flag from V8.
...
It makes V8 not have JavaScript semantics by throwing exception all
the time. Even our own natives JavaScript code cannot run using that.
R=ricow@chromium.org
BUG=v8:1511
Review URL: http://codereview.chromium.org/7248056
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8475 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-30 06:58:13 +00:00
vitalyr@chromium.org
90c9f1b989
Suspend runtime profiler as soon as we exit JS.
...
Lots of web pages have really frequently firing timers that keep the
profiler thread spinning if we require a period of JS inactivity
before suspending the profiler. While it's possible to throttle it by
increasing the sleep delay and adjusting the duration of the required
inactive period, it seemed much simpler to just stop it immediately on
exiting JS.
Stopping the profiler this way effectively turned off two optimization
heuristics: 1) eager optimization (it's reset on waking up the
profiler and now the profiler wakes up much more frequently) and 2)
optimization throttling based on JS to non-JS state ratio (the ratio
is now 100%). I removed these two heuristics and found no performance
regressions so far.
R=ager@chromium.org
BUG=crbug.com/77625
TEST=none
Review URL: http://codereview.chromium.org/7274024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8472 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-29 14:56:08 +00:00
svenpanne@chromium.org
b6869174c6
Simplify EmitCallIC.
...
Move the identification of the corresponding StatsCounter where it belongs,
namely into the Code class. Use the null pattern to signal "no inlined Smi
code". Removed a few unused counters.
Review URL: http://codereview.chromium.org/7273066
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8470 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-29 13:43:24 +00:00
sgjesse@chromium.org
c4f28bf274
Temporarily add more test output to help locate test failure
...
R=ricow@chromium.org
BUG=none
TEST=none
Review URL: http://codereview.chromium.org//7250002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8469 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-29 13:40:23 +00:00
jkummerow@chromium.org
6cd99953f1
Using KeyedStoreIC_Generic_Strict must prevent polymorphic case.
...
TEST=Fewer deopts in existing tests.
Review URL: http://codereview.chromium.org/7282007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8467 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-29 13:32:27 +00:00
sgjesse@chromium.org
3878096ed8
Fix compilation of all combinations of disassembler=on/off and objectprint=on/off
...
R=jkummerow@chromium.org
BUG=v8:1473
TEST=none
Review URL: http://codereview.chromium.org//7269002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8465 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-29 13:17:02 +00:00
sgjesse@chromium.org
7d2be7c0e0
Support debugger inspection of locals in optimized frames
...
Optimized frames are now handled by the debugger. When discovering optimized frames during stack inspection in the debugger they are "deoptimized" using the normal deoptimization code and the deoptimizer output information is used to provide frame information to the debugger.
Before this change the debugger reported each optimized frame as one frame no matter the number of inlined functuions that might have been called inside of it. Also all locals where reported as undefined. Locals can still be reposted as undefined when their value is not "known" by the optimized frame.
As the structures used to calculate the output frames when deoptimizing are not GC safe the information for the debugger is copied to another structure (DeoptimizedFrameInfo) which is registered with the global deoptimizer data and processed during GC.
R=fschneider@chromium.org
BUG=v8:1140
TEST=test/mjsunit/debug-evaluate-locals-optimized*
Review URL: http://codereview.chromium.org//7230045
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8464 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-29 13:02:00 +00:00
vegorov@chromium.org
cd9356baa6
Prepare push to trunk. Now working on 3.4.9.
...
R=ager@chromium.org
Review URL: http://codereview.chromium.org/7282005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8462 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-29 11:21:23 +00:00
svenpanne@chromium.org
ac7fca826d
Simplify the way we call UnaryOpStubs, saving one unused no-op after the call itself.
...
Review URL: http://codereview.chromium.org/7280005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8461 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-29 11:12:12 +00:00
sandholm@chromium.org
f9c82bf3a3
Improve JSON.parse to use less memory when using escaped and non-ascii
...
characters.
Review URL: http://codereview.chromium.org/7241023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8460 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-29 10:54:20 +00:00
sgjesse@chromium.org
39ed137e10
ARM: Improve register allocation and constraints (try 2).
...
Gives ~20% boost for Crypto benchmark on A9.
BUG=none
TEST=added to mjsunit/div-mod.js
Review URL: http://codereview.chromium.org//7276034
Patch from Martyn Capewell <m.m.capewell@googlemail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8459 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-29 10:51:06 +00:00
jkummerow@chromium.org
6f66664386
Error checking for length parameter of external array constructors in shell
...
BUG=v8:1501
Review URL: http://codereview.chromium.org/7268002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8458 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-29 10:27:14 +00:00
yangguo@chromium.org
61c7b030e9
reverting revision r8454
...
Review URL: http://codereview.chromium.org/7218042
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8457 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-29 08:45:22 +00:00
erik.corry@gmail.com
f8fdc62c19
Improvement to SmiLexicalCompare. Landing http://codereview.chromium.org/7261008 for Stephen Adams
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8456 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-29 08:35:10 +00:00
kmillikin@chromium.org
81e8b42e1b
Fix lint failure.
...
TBR=fschneider@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/7284004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8455 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-29 08:32:12 +00:00
yangguo@chromium.org
e6dbce1190
added the --test option for d8 into tools/test.py
...
TEST= tools/test.py --shell d8 -v
Review URL: http://codereview.chromium.org/7272028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8454 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-29 08:22:36 +00:00
kmillikin@chromium.org
96bbcaf416
Explicitly pass the closure when allocating a catch or with context.
...
Before: allocation of a catch or with context fetched the closure to store
in the context from the previous context in the context chain. Now: the
closure is passed explicitly.
R=ager@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/7275022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8453 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-29 07:41:42 +00:00
kmillikin@chromium.org
5e7da7f04f
Remove the fcontext field from all contexts.
...
Before: every context cached the nearest enclosing function context. This
assumed that for nested contexts (i.e., with and catch contexts) the
enclosing function had a materialized link in the context chain.
Now: when necessary, we loop up the context chain to find such a context.
This enables catch contexts without forcing the enclosing function to
allocate its own context.
R=ager@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/7230047
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8452 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-28 15:22:08 +00:00
fschneider@chromium.org
2760bd2927
Slightly improved register assignment for %_IsObject on IA32 and ARM.
...
The new approach uses one temp register instead of two on IA32. The ARM
instructions are modified so the input can be UseAtStart again.
Review URL: http://codereview.chromium.org/7274025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8451 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-28 14:21:55 +00:00
kmillikin@chromium.org
e859416b9f
Better placement of argument pushing for a few hydrogen call instructions.
...
Where it's simple to do so (keyed calls, calls to unknown global variables,
calls to local variables and non-property/non-variable expressions), end the
live range of argument subexpressions immediately after the last use of the
expression rather than at the call.
R=fschneider@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/7274020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8445 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-28 12:51:21 +00:00
keuchel@chromium.org
3f70c456eb
Fix "illegal access" when calling parseInt with a radix that is not a smi.
...
BUG=v8:1246
TEST=regress-1246.js
Review URL: http://codereview.chromium.org/7206019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8444 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-28 12:31:42 +00:00
fschneider@chromium.org
c9eefb3f88
Fix bug in register assignment of IsObjectAndBranch.
...
Make sure that input and temp registers don't overlap.
Review URL: http://codereview.chromium.org/7273026
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8443 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-28 09:09:07 +00:00
ager@chromium.org
3f6043d370
Cleanup to HEnvironment::CopyForInlining
...
* src/hydrogen.cc (HEnvironment::CopyForInlining): As the code for both
the ::HYDROGEN and ::LITHIUM compilation phases is the same, just use
one code path and remove the arg.
* src/hydrogen.h (HEnvironment): Remove now-unused CompilationPhase
enum type and arg to CopyForInlining.
* src/arm/lithium-arm.cc (LChunkBuilder::DoEnterInlined):
* src/ia32/lithium-ia32.cc (LChunkBuilder::DoEnterInlined):
* src/x64/lithium-x64.cc (LChunkBuilder::DoEnterInlined): Adapt
callers.
* AUTHORS: Add Igalia.
BUG=
TEST=I ran tools/test.py.
Review URL: http://codereview.chromium.org/7272002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8442 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-28 08:54:09 +00:00
fschneider@chromium.org
b59f2b700b
Fix a bug in %_GetCachedArrayIndex.
...
This inline runtime function had the wrong super class.
It did not cause any problems since it is only used in
our natives and never in a test context.
Review URL: http://codereview.chromium.org/7253004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8441 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-28 08:49:01 +00:00
sgjesse@chromium.org
26e53ac042
MIPS: port Fix receiver check in arguments ICs.
...
Ported r8429 (60a2787)
BUG=
TEST=
Review URL: http://codereview.chromium.org//7276027
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8434 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-28 07:54:01 +00:00
sgjesse@chromium.org
b6afa34afa
MIPS: Long branch implementation and trampoline improvement.
...
Improve the branch and branch-trampoline mechanism to automatically
use long-jumps when function size grows large. Reduce size of emitted
trampoline pools.
Now passes mozilla regress-80981.js.
BUG=
TEST=
Review URL: http://codereview.chromium.org//7239020
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8433 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-28 07:31:42 +00:00
ager@chromium.org
614e542869
Ensure 16-byte stack alignment on Solaris.
...
GCC generates instructions such as movdqa that requires 16-byte alignment.
R=ricow@chromium.org
BUG=v8:1505
TEST=
Review URL: http://codereview.chromium.org/7277031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8432 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-28 07:07:09 +00:00
ager@chromium.org
a8e4b0cfb1
Prepare push to trunk. Now working on version 3.4.8.
...
R=sgjesse@chromium.org
Review URL: http://codereview.chromium.org/7235025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8430 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-27 13:16:07 +00:00
ager@chromium.org
89cc886ba7
Fix receiver check in arguments ICs.
...
The receiver needs to be checked in the same way as all other KeyedLoadICs to take non-JSObject and objects that require access checks or has interceptors into account.
R=sgjesse@chromium.org
BUG=87478
TEST=mjsunit/regress/regress-crbug-87478.js
Review URL: http://codereview.chromium.org/7259015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8429 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-27 13:02:51 +00:00
sgjesse@chromium.org
54d6072332
Change the handling of stack check on backward branches
...
The hydrogen stack check instruction is now added to each loop and the stack check handling on the back edge has been removed.
This change causes regression on small tight loops as the stack check is now at the top of the loop instead of at the bottom, and that requires one additional unconditional jump per loop iteration. However the reason for this change is to avoid worse regressions for upcoming changes to correctly support debugger break in optimized code.
R=fschneider@chromium.org
BUG=none
TEST=none
Review URL: http://codereview.chromium.org//7216009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8428 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-27 12:12:27 +00:00
sgjesse@chromium.org
b7850c06d1
MIPS: port Better codegen for '<expression> === void <literal>'.
...
Ported r8420 (fd2ddbb)
Original commit message:
Detect the pattern in both, the full compiler and crankshaft and generate direct pointer
comparisons. Along the way I cleaned up 'typeof <expression> == <string literal>' comparisons
as well by lifting platform independent code and checking the symmetric case.
BUG=v8:1440
TEST=cctest/test-api.cc
Review URL: http://codereview.chromium.org//7262026
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8427 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-27 10:45:54 +00:00
lrn@chromium.org
fb4a2d160d
Cleanup of return types and names in factory.
...
Review URL: http://codereview.chromium.org/7240025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8426 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-27 09:02:34 +00:00
sgjesse@chromium.org
17c2a7a5ed
MIPS: update missing write barrier for arguments store ICs, per comments.
...
Per review comments in http://codereview.chromium.org/7238020 after
issue was closed, we had used an un-necessary Add, which is removed here.
Thanks for the suggestion.
BUG=
TEST=
Review URL: http://codereview.chromium.org//7259010
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8425 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-27 08:56:25 +00:00
yangguo@chromium.org
310ed9ebba
removed some unnecessary stuff from d8's initialization
...
and got rid of the utility context unless interactive shell is used
Review URL: http://codereview.chromium.org/7219003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8424 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-24 20:04:32 +00:00
cira@chromium.org
ab2c0d4503
Change timeType and dateType in i18n date format API into timeStyle and dateStyle to match the proposal.
...
I've kept old keys too, until ChromeOS user switches to time/dateStyle.
Fixed regex for matching styles in date and number format.
TEST=i18n.kaziprst.org/datetimeformat.html should show proper results for both timeType and timeStyle.
Review URL: http://codereview.chromium.org/7244008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8423 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-24 16:58:28 +00:00
keuchel@chromium.org
ab3d4cf7b8
Proper handling of future reserved words in strict and normal mode.
...
BUG=86442
TEST=mjsunit/keywords-and-reserved_words.js
Review URL: http://codereview.chromium.org/7207007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8421 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-24 14:59:51 +00:00
keuchel@chromium.org
628a2e2a1f
Better codegen for '<expression> === void <literal>'.
...
Detect the pattern in both, the full compiler and crankshaft and generate direct pointer
comparisons. Along the way I cleaned up 'typeof <expression> == <string literal>' comparisons
as well by lifting platform independent code and checking the symmetric case.
BUG=v8:1440
TEST=cctest/test-api.cc
Review URL: http://codereview.chromium.org/7216008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8420 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-24 14:30:10 +00:00
sandholm@chromium.org
22abf6a579
Check for empty substring.
...
Review URL: http://codereview.chromium.org/7237023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8419 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-24 13:44:27 +00:00
sgjesse@chromium.org
b55a673177
MIPS: Minor bug fixes to macro-asm and simulator.
...
3 small fixes:
- Fix erroneous use of reg t6 in macro-assembler.
- Minor optimization to overflow-check macros.
- Fix un-init var use (typo) in simulator FPCall handling.
None of these affected test cases.
BUG=
TEST=
Review URL: http://codereview.chromium.org//7236025
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8418 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-24 13:23:18 +00:00
vegorov@chromium.org
9310a8d78f
Fix three GC unsafe places found by gcmole's dead_vars analysis.
...
Review URL: http://codereview.chromium.org/7247013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8411 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-24 12:04:14 +00:00
mikhail.naganov@gmail.com
f4bf8f8fee
Remove obsolete aggregating and non-working producers heap profilers.
...
2000 LOC are gone!
R=sgjesse@chromium.org
BUG=1481
Review URL: http://codereview.chromium.org/7247018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8406 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-24 11:38:47 +00:00
sgjesse@chromium.org
94e5f2f35a
MIPS: port Add missing write barrier for arguments store ICs.
...
Ported r8390 (52d4605)
BUG=
TEST=
Review URL: http://codereview.chromium.org//7238020
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8405 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-24 08:46:57 +00:00
sgjesse@chromium.org
2f64c849f2
MIPS: Fix a bug in MacroAssembler::CheckFastElements.
...
This fixes 3 mjsunit tests when running with --stress-opt: object-freeze,
object-prevent-extensions, object-seal.
Original commit was 54ce3d60 (r8176).
BUG=
TEST=
Review URL: http://codereview.chromium.org//7236024
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8404 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-24 08:26:47 +00:00
sgjesse@chromium.org
1d53788e7e
Revert "ARM: Improve register allocation and constraints."
...
This reverts r8381.
It was causing Mozilla test mozilla/ecma/Date/15.9.3.8-5 to fail and Sputnik tests S15.9.3.1_A5_T5, S15.9.3.1_A5_T1, S15.9.3.1_A5_T2, S15.9.3.1_A5_T4, S15.9.3.1_A5_T3 and S15.9.3.1_A5_T6 to timeout.
R=ager@chromium.org
BUG=none
TEST=mozilla/ecma/Date/15.9.3.8-5, S15.9.3.1_A5_T5, S15.9.3.1_A5_T1, S15.9.3.1_A5_T2, S15.9.3.1_A5_T4, S15.9.3.1_A5_T3 and S15.9.3.1_A5_T6
Review URL: http://codereview.chromium.org//7246004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8397 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-23 12:03:16 +00:00
vitalyr@chromium.org
bbd5889f2c
Trim fast elements tail on significant length decreases.
...
Runtime_RegExpExecMultiple had to be updated because it assumed
setting an array's length to zero still keeps some capacity in the
backing store.
R=ager@chromium.org
Review URL: http://codereview.chromium.org/7237004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8396 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-23 11:22:21 +00:00
ager@chromium.org
b652d79b10
Shrink dictionaries on deletion if number of elements are less than a
...
quarter of the capacity.
R=vegorov@chromium.org
Review URL: http://codereview.chromium.org/7190032
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8391 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-23 09:30:39 +00:00
fschneider@chromium.org
4bc671c2b0
Add missing write barrier for arguments store ICs.
...
Review URL: http://codereview.chromium.org/7207006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8390 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-23 09:20:07 +00:00
ager@chromium.org
5ea7238814
Fix renaming patch to also compile in debug mode.
...
R=ricow@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/7236015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8387 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-23 06:33:38 +00:00
ager@chromium.org
03fc1660b3
HBasicBlock::CreateSimulate argument name clarity
...
* src/hydrogen.h:
* src/hydrogen.cc (HBasicBlock::CreateSimulate): Rename "id" arg to
"ast_id".
BUG=
TEST=
Review URL: http://codereview.chromium.org/7234010
Patch from Andy Wingo <wingo@igalia.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8385 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-23 06:26:50 +00:00
mikhail.naganov@gmail.com
0416b2edc4
Prevent a NULL deref.
...
Patch by Rachel Blum <groby@chromium.org>
R=mnaganov@chromium.org
Review URL: http://codereview.chromium.org/7218036
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8384 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-22 20:41:02 +00:00
mikhail.naganov@gmail.com
0a12f5dcf8
Fix issue 1354: Bad function name inference.
...
R=kmillikin@chromium.org , vitalyr@chromium.org
BUG=1354
TEST=test-func-name-inference
Review URL: http://codereview.chromium.org/7206015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8383 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-22 20:23:48 +00:00
sgjesse@chromium.org
322d246e7e
ARM: Improve register allocation and constraints.
...
Gives ~20% boost for Crypto benchmark on A9.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org//7148018
Patch from Martyn Capewell <m.m.capewell@googlemail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8381 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-22 19:49:31 +00:00
sgjesse@chromium.org
8677fd370c
ARM: Add PostIndex support to Ldrd/Strd macro fallback code.
...
BUG=none
TEST=none
Review URL: http://codereview.chromium.org//7080052
Patch from Martyn Capewell <m.m.capewell@googlemail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8380 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-22 19:18:04 +00:00
cira@chromium.org
2b77b78446
Adding support for number formating to the JS i18n API.
...
This is the last part of the API that belongs in public spec.
Methods supported:
- format
- derive
Options supported:
- style (decimal, scientific, currency and percent)
- pattern
- skeleton
TEST= Visit i18n.kaziprst.org/numberformat.html
Review URL: http://codereview.chromium.org/7129051
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8379 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-22 18:55:06 +00:00
yangguo@chromium.org
286f1d6bc3
d8 drops into a shell if no files are passed on command line
...
Fixes regression introduced in r8241.
BUG=
TEST=Run ./d8 --print_code -- should drop into shell.
Review URL: http://codereview.chromium.org/7193011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8378 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-22 17:32:35 +00:00
whesse@chromium.org
183efaee32
Slightly improve r8367, fix to overflow of on-stack replacement.
...
The improvement is included in the port of r8367 to earlier versions of V8.
Review URL: http://codereview.chromium.org/7229011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8370 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-22 15:30:00 +00:00
sandholm@chromium.org
a8921c4681
Inctroduce NewStrictSubstring to avoid check for SubString(str, 0, str.length). Cleanup JsonParser.
...
Review URL: http://codereview.chromium.org/7230006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8369 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-22 14:20:23 +00:00
mikhail.naganov@gmail.com
650df48c55
Cleanup extra initialization of TickSample fields.
...
R=vitalyr@chromium.org
BUG=1293
Review URL: http://codereview.chromium.org/7203005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8368 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-22 13:54:35 +00:00
whesse@chromium.org
8e7405800e
Fix an overflow in on-stack replacement spill-slot allocation for Crankshaft.
...
BUG=v8:1407
TEST=
Review URL: http://codereview.chromium.org/7231008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8367 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-22 13:08:40 +00:00
jkummerow@chromium.org
1e1387f12c
Add possibility to configure 'prototype' property via FunctionTemplate
...
BUG=v8:1479
TEST=test-api/SetPrototypeProperties
Review URL: http://codereview.chromium.org/7229007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8366 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-22 12:39:45 +00:00
lrn@chromium.org
e8b2016b58
Prepare push to trunk. Now working on V8 version 3.4.7.
...
Review URL: http://codereview.chromium.org/7234008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8365 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-22 12:36:29 +00:00
fschneider@chromium.org
d64b48fb3c
Eliminate unnecessary patching of load-length ICs in megamorphic state.
...
This avoid the worst case of patching ICs repeatedly with the
same stub code object.
BUG=v8:1489
Review URL: http://codereview.chromium.org/7230007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8364 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-22 10:24:40 +00:00
erik.corry@gmail.com
5b7b0ce861
Limit the size of the space reserved for code on systems that
...
are short of virtual memory. This should make V8 work in 64 bit
on OpenBSD in its default configuration. It is a simplified
version of the reverted 8133 which also lowered the non-code
heap size, causing test failures in Chromium on MacOS.
Review URL: http://codereview.chromium.org/7234004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8363 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-22 10:13:10 +00:00
lrn@chromium.org
e378829b24
Combined identical classes V8JavaScriptScanner and StandAloneJavaScriptScanner.
...
Now only uses the common superclass of the two scanner classes.
Updated comment on KeywordMatcher.
Review URL: http://codereview.chromium.org/7211013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8362 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-22 09:06:03 +00:00
svenpanne@chromium.org
0bb0d672b6
Make ToBooleanStub more consistent across platforms.
...
The declaration of the ToBoolean class moved to the platform-independent part
and its implementations are now structurally very similar. This is just an
intermediate cleanup step to add type recording at the call site.
Note that the MIPS implementation has not really been touched, so it should
continue to work, too.
Review URL: http://codereview.chromium.org/7218012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8359 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-22 08:28:35 +00:00
sgjesse@chromium.org
ee78600543
MIPS: Fix arguments-branch update per review comments.
...
This is a follow-on to r8340, http://codereview.chromium.org/7216004/
Søren had commited changes and closed issue, as Karl was commenting about
problems in the code.
Thanks Karl, for your detailed code review. I have corrected the issues
you raised.
BUG=
TEST=
Review URL: http://codereview.chromium.org//7232004
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8358 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-22 07:48:32 +00:00
sgjesse@chromium.org
42a87564c3
ARM: Fix context save/restore for VFP registers.
...
BUG=none
TEST=none
Review URL: http://codereview.chromium.org//7217011
Patch from Martyn Capewell <m.m.capewell@googlemail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8357 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-22 06:24:34 +00:00
peter.rybin@gmail.com
d689da9108
Issue 1418: Debug: extends setBreakpoint API to accept partial script name as a parameter
...
Review URL: http://codereview.chromium.org/7200024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8355 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-21 19:42:35 +00:00
lrn@chromium.org
097060c699
[x64] Fix disassembly of movmskpd instruction.
...
The destination is a GP register, not an XMM register. ia32 did not
have this problem.
BUG=
TEST=Check --print_code output for code that tests for -0.0.
Review URL: http://codereview.chromium.org/7191015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8352 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-21 13:57:03 +00:00
lrn@chromium.org
12c3e7799c
Make multi-line comments not count when checking whether --> is first on a line.
...
A multi-line comment containing a newline is considered a line-terminator for
other purposes, but a "-->" following such a comment is considered as being
on the same line as the text preceeding the multi-line comment.
This behavior matches JSC matching Firefox.
TEST=cctest/test-parsing/ScanHTMLEndComments
Review URL: http://codereview.chromium.org/7218009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8351 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-21 13:34:16 +00:00
fschneider@chromium.org
01a8cda43e
Remove redundant hydrogen- and lithium instruction for symbol comparison.
...
We had two instructions HCompareJsObjectEq and HCompareSymbolEq that behave
exactly the same. I removed one and renamed the remaining instruction into
HCompareObjectEq.
Review URL: http://codereview.chromium.org/7206040
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8349 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-21 11:18:15 +00:00
karlklose@chromium.org
c5a24f64c4
Fix wrong bounds check on arguments object.
...
TEST=added to test/mjsunit/arguments.js
Review URL: http://codereview.chromium.org/7217005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8348 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-21 09:27:38 +00:00
ager@chromium.org
a96b9156a3
Correctly handle non-array receivers in Array length setter.
...
BUG=v8:1491
TEST=mjsunit/regress/regress-1491.js
Review URL: http://codereview.chromium.org/7206038
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8343 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-21 08:07:45 +00:00
mikhail.naganov@gmail.com
bf9b2f8c2c
Heap profiler: add an ability to iterate over snapshot's nodes.
...
This is a preparation for removing aggregated heap snapshots.
W/o this API, counting object instances in a snapshot is very hard.
R=sgjesse@chromium.org
BUG=1481
TEST=cctest/test-heap-profiler/NodesIteration
Review URL: http://codereview.chromium.org/7204040
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8342 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-21 08:02:34 +00:00
jkummerow@chromium.org
5c63dd26fc
Use issue number instead of username for TODO comment
...
Review URL: http://codereview.chromium.org/7216007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8341 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-21 07:52:19 +00:00
sgjesse@chromium.org
99503281fc
MIPS: port Merge arguments branch to bleeding edge (second try).
...
Ported r8315 (d70d395).
BUG=
TEST=
Review URL: http://codereview.chromium.org//7216004
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8340 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-21 07:47:26 +00:00
sgjesse@chromium.org
57c1899f78
MIPS: Port some DIV changes to BinaryOpStub::GenerateInt32Stub().
...
There were some changes in ARM r8172 that we needed to port to MIPS,
but missed.
The bug was exposed with the Arm & Mips fix in r8321, "Fix wrong
parenthesis in stub ARM and MIPS generation code."
BUG=
TEST=
Review URL: http://codereview.chromium.org//7211006
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8339 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-21 07:34:01 +00:00
sgjesse@chromium.org
c1930b73c6
MIPS: Update an outdated comment in the CEntryStub.
...
Following r8289 (bf0c0cf).
BUG=
TEST=
Review URL: http://codereview.chromium.org//7211007
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8338 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-21 07:32:23 +00:00
whesse@chromium.org
61510da25a
Restore accidentally deleted src/extensions/experimental/i18n.js
...
Review URL: http://codereview.chromium.org/7205030
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8335 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-20 14:14:33 +00:00
jkummerow@chromium.org
ff55249ffa
Fix DoHasInstanceType on ARM
...
Was broken by the recent JumpIfSmi() cleanup.
TEST=es5conform
Review URL: http://codereview.chromium.org/7206023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8331 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-20 12:45:09 +00:00
svenpanne@chromium.org
af24067fa5
Refactor the way we collect the information for associating type-related infos
...
with AST IDs. Previously 3 different places had to match in how they handle a
given case, now we are down to 2, with an even simpler logic.
The downside is that due to this simpler logic the allocated dictionary could be
larger than before, but test have shown that this happens *very* rarely, because
its capacity is rounded to the next power of 2, anyway. Furthermore, the oracle
doesn't live long enough that we should really care.
The whole oracle is probably still a bit too tricky in its details, but this is
at least a step into the right direction.
Review URL: http://codereview.chromium.org/7204003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8330 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-20 12:33:08 +00:00
sgjesse@chromium.org
4fa40ebc78
Include the loop header block when eliminating stack checks
...
In simple unconditional loops - like the following - the hydrogen stack check elimination did not detect the call as the loop header block itself was not considered.
function f(o) {
while(true) {
o.a();
}
}
R=fschneider@chromium.org
BUG=none
TEST=none
Review URL: http://codereview.chromium.org//7210010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8329 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-20 12:29:03 +00:00
erik.corry@gmail.com
5fb7199b8d
Do not automatically pretenure global closures in runtime.cc
...
unless the caller has indicated that pretenuring is desirable.
This is intended to fix http://jsperf.com/scope-lookups/3
Review URL: http://codereview.chromium.org/7210011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8328 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-20 12:20:30 +00:00
lrn@chromium.org
8c538d9012
Made parser not accept unicode escapes inside "native" when used as a keyword.
...
This is a regression relative to the original behavior, when "native" was a keyword,
since keywords cannot contain esacpes.
Added tests for escapes and for not allowing line-terminators betwen "native" and "function".
Review URL: http://codereview.chromium.org/7206022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8327 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-20 11:52:24 +00:00
lrn@chromium.org
480ec43c4e
Make "native" not a keyword.
...
We now only recognize "native function" when it occurs in extension scripts
(parsing with a non-NULL extension), and only if there is no line-terminator
between "native" and "function" (so that it would otherwise be a Syntax Error).
Preparsing never recognizes native functions, which is acceptable since we
never preparse extension scripts (because we don't allow lazy functions
anyway).
BUG=v8:1097
Review URL: http://codereview.chromium.org/7206020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8326 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-20 10:20:57 +00:00
jkummerow@chromium.org
b789cb8c94
Crankshaft support for polymorphic array handling
...
Review URL: http://codereview.chromium.org/7170012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8325 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-20 10:19:00 +00:00
whesse@chromium.org
404434628b
Prepare push to trunk. Now working on version 3.4.6.
...
Review URL: http://codereview.chromium.org/7212007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8324 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-20 09:30:54 +00:00
kasperl@chromium.org
5a547ac413
Generalized Stephen's patch from http://codereview.chromium.org/7044100/ and
...
added a few test cases.
Review URL: http://codereview.chromium.org/7212006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8323 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-20 07:40:42 +00:00
jkummerow@chromium.org
2fe5afedf3
Cleanup: use JumpIf[Not]Smi() whenever we can
...
Review URL: http://codereview.chromium.org/7191007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8322 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-17 18:32:36 +00:00
fschneider@chromium.org
280134bb36
Fix wrong parenthesis in stub ARM and MIPS generation code.
...
I think the problem did not manifest as a bug, since the only
consequence was to generate extra code to return heap number
results in case of the INT32-stub.
Review URL: http://codereview.chromium.org/7192006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8321 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-17 10:45:29 +00:00
mikhail.naganov@gmail.com
973fca1689
Fix issue 1417: check for script source availability when enumerating optimized functions.
...
R=kasperl@chromium.org ,kmillikin@chromium.org
BUG=1417
TEST=test-log/Issue23768
Review URL: http://codereview.chromium.org/7184027
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8320 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-17 08:40:30 +00:00
erik.corry@gmail.com
c95ecb1fcd
Refix issue 1472. The previous fix worked for the example in the bug
...
report, but was not general enough to catch all cases. This is a new
approach. Includes regression test!
Review URL: http://codereview.chromium.org/7193007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8318 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-17 08:01:12 +00:00
lrn@chromium.org
ee59eff127
Make line-terminators inside multi-line comments count.
...
Now follows the specification. Follows WebKit change in revision 89100.
BUG=86431
TEST=regress-892742
Review URL: http://codereview.chromium.org/7184034
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8317 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-17 07:23:07 +00:00
erik.corry@gmail.com
fbe89ca13e
Add missing assert to Label destructor.
...
Review URL: http://codereview.chromium.org/7172026
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8316 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-16 15:18:48 +00:00
karlklose@chromium.org
f4e4bc43a8
Merge arguments branch to bleeding edge (second try).
...
Review URL: http://codereview.chromium.org/7187007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8315 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-16 14:12:58 +00:00
ricow@chromium.org
b256c9c192
Reinitialize the arguments object in d8 when renewing the evaluation context (fixes issue 1477).
...
Review URL: http://codereview.chromium.org/7189007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8312 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-16 08:35:26 +00:00
jkummerow@chromium.org
a5ef18b9de
Fix building in release mode with disassembler=on
...
BUG=v8:1473
Review URL: http://codereview.chromium.org/7147014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8311 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-16 07:58:47 +00:00
sgjesse@chromium.org
5efb84623b
ARM: Clean up literal pool generation.
...
Remove dead code, and generate pools less frequently.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org//7108061
Patch from Martyn Capewell <m.m.capewell@googlemail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8309 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-16 07:00:46 +00:00
karlklose@chromium.org
cc19d1e278
Revert "Merge arguments branch to bleeding merge."
...
This reverts commit ceb31498b9d69edca3260820fb4047045891ce6d.
TBR=kmillikin@chromium.org
Review URL: http://codereview.chromium.org/7172030
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8308 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-16 06:37:49 +00:00
erik.corry@gmail.com
dc66620251
Avoid OOM on regexps with nested quantifiers.
...
http://code.google.com/p/v8/issues/detail?id=1472
Review URL: http://codereview.chromium.org/7170014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8302 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-15 20:15:40 +00:00
vegorov@chromium.org
14bf246dfa
Add missing branches in code generated for LModI with power-of-2 divisor.
...
BUG=v8:1476
TEST=test/mjsunit/regress/regress-1476.js
Review URL: http://codereview.chromium.org/7097015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8301 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-15 19:57:39 +00:00
karlklose@chromium.org
6cfeb2d400
Merge arguments branch to bleeding merge.
...
Review URL: http://codereview.chromium.org/7167006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8300 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-15 15:09:28 +00:00
ricow@chromium.org
4032d2165e
Make name and message non-enumerable on Error object (this is a partial fix for issue 1215)
...
Review URL: http://codereview.chromium.org/7172011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8299 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-15 13:54:40 +00:00
ricow@chromium.org
b84d07767c
Change DefineOrRedefineDataProperty to use local lookup (fix issue 1435).
...
This prevents us from normalizing when we do not need to.
Review URL: http://codereview.chromium.org/7168012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8296 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-15 11:41:03 +00:00
ricow@chromium.org
23d0aa614b
Ensure that bound functions does not have a prototype (fixes issue 794)
...
Review URL: http://codereview.chromium.org/7148014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8293 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-15 10:47:37 +00:00
sgjesse@chromium.org
962c25bb49
MIPS: port First steps towards better code generation for LBranch.
...
Ported r8274 (03e42c0)
BUG=
TEST=
Review URL: http://codereview.chromium.org//7170006
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8292 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-15 10:07:10 +00:00
svenpanne@chromium.org
88e94a61ff
Prepare push to trunk.
...
Review URL: http://codereview.chromium.org/7171015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8291 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-15 09:58:04 +00:00
fschneider@chromium.org
e5cc31e444
Generate better branch code for instanceof-predicates.
...
Review URL: http://codereview.chromium.org/7168013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8290 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-15 09:20:24 +00:00
karlklose@chromium.org
7c13e67f52
Update an outdated comment in the CEntryStub on ARM.
...
R=sgjesse@chromium.org
Review URL: http://codereview.chromium.org/7134106
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8289 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-15 09:17:54 +00:00
ager@chromium.org
ef7b56bf3e
Remove unused methods.
...
Do not force set DEBUG.
R=kasperl@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/7171014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8287 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-15 06:51:22 +00:00
ricow@chromium.org
40fa4a761b
Correctly set ReadOnly flag on indexed properties when using the API Set method (fixes issue 1470)
...
Review URL: http://codereview.chromium.org/7149015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8286 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-15 06:44:57 +00:00
kmillikin@chromium.org
9756397b76
Fix invalid assertion.
...
Runtime_DeclareContextSlot is used to declare global variables.
R=vegorov@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/7158001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8285 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-14 19:26:09 +00:00
kmillikin@chromium.org
d77fa99e28
Guard an unsafe cast of a catch context's extension object.
...
R=ager@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/7149019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8283 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-14 15:00:57 +00:00
fschneider@chromium.org
dc47de6732
Distinguish keyed loads with a symbol key from fast elements loads.
...
This change fixes the deoptimization when a keyed load is used with
a symbol key. Before we would wrongly generate a fast elements load.
Now we generate a generic keyed load instead.
BUG=1471
Review URL: http://codereview.chromium.org/7150010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8281 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-14 13:21:24 +00:00
vitalyr@chromium.org
d254298e3a
Make valgrind happy with SparseSet.
...
R=ager@chromium.org
BUG=crbug.com/83626
Review URL: http://codereview.chromium.org/7111047
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8279 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-14 12:48:25 +00:00
kmillikin@chromium.org
7d527f857f
Change the representation of catch contexts.
...
Before, they had no extra slots and an extension object with one named
property. Now, they use the extension slot for the property name and have
an extra slot for the thrown object. This increases the size of the context
itself, but removes overall allocation and eliminates a level of indirection.
R=ager@chromium.org
Review URL: http://codereview.chromium.org/7152002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8277 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-14 12:16:23 +00:00
ricow@chromium.org
38a75cf731
Geve correct error message when Object.isExtensible is called on a non object (fixes issue 1452)
...
Review URL: http://codereview.chromium.org/7146010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8275 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-14 11:28:14 +00:00
svenpanne@chromium.org
a4cf7be941
First steps towards better code generation for LBranch:
...
* AST Expression nodes get a separate testing ID to record type info in
ToBooleanStub later. This is necessary to avoid clashes with other uses of
already existing IDs.
* In order to avoid threading the condition expression through tons of places,
TestContexts carry it now with them. Note that we will probably only need the
testing ID of the expression, but having the whole thing at hand makes
debugging easier. Probably we will change this later...
Review URL: http://codereview.chromium.org/7046073
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8274 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-14 09:15:25 +00:00
sgjesse@chromium.org
906fc4cd01
Always print the deoptimization data when disassembling the generated code
...
R=jkummerow@chromium.org
BUG=none
TEST=none
Review URL: http://codereview.chromium.org//7003093
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8273 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-14 09:10:39 +00:00
sgjesse@chromium.org
0135acd8e8
MIPS: port Refactor platform-specific code for determining shared stub for keyed load/stores.
...
Ported r8253 (9d8e6ab).
BUG=
TEST=
Review URL: http://codereview.chromium.org//7003141
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8272 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-14 06:37:56 +00:00
yangguo@chromium.org
7a1977544d
added explicit attributes since constructors have only one argument now.
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8267 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-10 12:41:43 +00:00
yangguo@chromium.org
b2ffa68884
removed isolates from d8 since they are not necessary anymore
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8266 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-10 12:41:35 +00:00
yangguo@chromium.org
f5a0b2e749
corrected parts in d8 that accesses the new "deisolated" Thread in platform.h
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8265 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-10 12:41:26 +00:00
ager@chromium.org
b7a93d417d
Add GetOwnPropertyNames method for Object in the API
...
Patch by Peter Varga.
BUG=none
TEST=cctest/test-api/PropertyEnumeration
Review URL: http://codereview.chromium.org/7129058
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8264 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-10 12:33:55 +00:00
svenpanne@chromium.org
9a1d430f32
Added two convenience methods to access an int/double argument from within a
...
runtime function and use these in various places.
Review URL: http://codereview.chromium.org/7003114
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8263 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-10 12:15:30 +00:00
fschneider@chromium.org
5a236ce6fd
Add support for hydrogen control instructions with >2 successor blocks.
...
This change makes the number of successors of a control instruction
configurable with a template parameter and changes the existing instructions
to use it.
To iterate over all successors I added an iterator instead of always calling
First- and SecondSuccessor.
Review URL: http://codereview.chromium.org/7114004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8262 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-10 12:09:48 +00:00
mikhail.naganov@gmail.com
508b22c436
"Deiceolate" Thread classes.
...
Thread class was receiving an isolate parameter by default.
This approact violates the assumption that only VM threads
can have an associated isolate, and can lead to troubles,
because accessing the same isolate from different threads
leads to race conditions.
This was found by investigating mysterious failures of the
CPU profiler layout test on Linux Chromium. As almost all
threads were associated with some isolate, the sampler was
trying to sample them.
As a side effect, we have also fixed the DebuggerAgent test.
Thanks to Vitaly for help in fixing isolates handling!
R=vitalyr@chromium.org
BUG=none
TEST=none
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8259 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-10 09:54:04 +00:00
ager@chromium.org
aa7ad8ee9d
Fix issue 1447 by not redefining properties unneccesarily in seal and freeze.
...
This avoids attempting to redefine function.arguments with a different
value than the current one. function.arguments returns a new copy on
each invocation.
R=lrn@chromium.org
BUG=v8:1447
TEST=mjsunit/regress/regress-1447.js
Review URL: http://codereview.chromium.org/7044104
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8258 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-10 09:45:02 +00:00
mikhail.naganov@gmail.com
47248cc5fe
Revert accidental r8254..r8256
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8257 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-10 09:42:08 +00:00
mikhail.naganov@gmail.com
e1db94c0cb
trying to fix test
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8256 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-10 09:36:35 +00:00
mikhail.naganov@gmail.com
f05fd92994
remove isolate reference from threads
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8254 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-10 09:35:31 +00:00
danno@chromium.org
bc4156ca7c
Refactor platform-specific code for determining shared stub for keyed load/stores.
...
R=ager@chromium.org
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/7044083
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8253 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-10 07:49:49 +00:00
sgjesse@chromium.org
870ef6bdfe
Remove the flag --debug-info
...
This flag has not bees set to false for years, and even when building without debugging support the position information is required for stack traces.
R=ager@chromium.org
BUG=none
TEST=none
Review URL: http://codereview.chromium.org//7046078
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8252 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-10 07:15:46 +00:00
sgjesse@chromium.org
2481f0fc59
MIPS: port Dispatch on ElementsKind rather than ExternalArrayType ...
...
Port r8244 (c90151c)
Orig commit msg:
Dispatch on ElementsKind rather than ExternalArrayType when generating ICs
and Crankshaft code for many element operations. This is preparation to be
able to share more code in the various element accessor implementations.
BUG=
TEST=
Review URL: http://codereview.chromium.org//7134064
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8251 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-10 07:14:34 +00:00
sgjesse@chromium.org
f8ff2b00fa
MIPS: port Link function contexts directly to the previous context.
...
Ported r8238 (7803ed7)
This commit would have also included changes to macro-assembler-mips.cc,
however Kevin M. did those changes in later commit r8248. (thx!)
BUG=
TEST=
Committed: http://code.google.com/p/v8/source/detail?r=8249
Review URL: http://codereview.chromium.org//6995128
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8250 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-10 07:13:07 +00:00
sgjesse@chromium.org
2cdddbf89f
MIPS: port Link function contexts directly to the previous context.
...
Ported r8238 (7803ed7)
This commit would have also included changes to macro-assembler-mips.cc,
however Kevin M. did those changes in later commit r8248. (thx!)
BUG=
TEST=
Review URL: http://codereview.chromium.org//6995128
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8249 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-10 07:09:14 +00:00
kmillikin@chromium.org
9ecfdb340c
Use the previous context link when checking context extension objects.
...
In generated code, when walking the context to inspect context extension
objects, use the previous context link directly.
R=ager@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/7044081
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8248 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-09 17:44:50 +00:00
danno@chromium.org
7c26e7143f
Fix bogus unreachable in debug code.
...
BUG=none
TEST=none
TBR=jkummerow@chromium.org
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8247 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-09 16:20:41 +00:00
fschneider@chromium.org
424407c727
Simplify the check when to perform loop invariant code motion.
...
Allow HChange instructions to be hoisted out of loops. To avoid
unnecessary code motion we don't hoist instructions from blocks that
have been marked containing an unconditional deoptimization.
Review URL: http://codereview.chromium.org/7003087
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8245 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-09 15:49:21 +00:00
danno@chromium.org
9f432cd159
Dispatch on ElementsKind rather than ExternalArrayType when generating ICs and Crankshaft code for many element operations. This is preparation to be able to share more code in the various element accessor implementations.
...
Merge logic to maintain external array and fast element stub caches.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/7112010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8244 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-09 15:19:37 +00:00
yangguo@chromium.org
d5951b8ef9
fixed style mistake found in presubmit.py
...
Review URL: http://codereview.chromium.org/6995110
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8243 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-09 15:07:45 +00:00
ager@chromium.org
8ec22db350
Correct the limit of local variables in a optimized functions.
...
The encoding constraint is that we have 128 values. We use [-64,0] for
parameters and [0,63] for locals. However, for locals we restricted to
64 and not 63.
R=kmillikin@chromium.org
TEST=mjsunit/compiler/regress-max-locals-for-osr.js
Review URL: http://codereview.chromium.org/6995108
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8242 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-09 14:52:58 +00:00
yangguo@chromium.org
3f80bacffb
added --stress-opt option to d8
...
Review URL: http://codereview.chromium.org/7134040
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8241 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-09 14:28:49 +00:00
svenpanne@chromium.org
03a6c2b6af
Moved non-architecture-specific GetFooCodeStub functions to ic.cc, removing
...
duplicate code and the need for 2 free-floating function prototypes.
Review URL: http://codereview.chromium.org/7134043
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8240 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-09 13:26:18 +00:00
kmillikin@chromium.org
4b96218589
Link function contexts directly to the previous context.
...
Instead of NULL in the previous field of function contexts, put the previous
context. This saves the indirection of fetching the previous through the
context's closure.
R=ager@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/7134042
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8238 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-09 12:45:26 +00:00
whesse@chromium.org
c40aa827bf
Add boolean flag to HChange and LNumberUntagD to not convert undefined to NaN.
...
This is needed so that HCompare, optimized for double inputs, works correctly on undefined inputs.
BUG=v8:1434
TEST=mjsunit/bugs/bug-1434.js
Review URL: http://codereview.chromium.org/7044049
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8237 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-09 12:27:28 +00:00
kmillikin@chromium.org
371af773cf
A collection of context-related refactoring changes.
...
Introduce separate maps for function and with contexts. Use the function
context map for testing whether a context is a function context (global
contexts are no longer function contexts).
Split the paths for allocating with and catch contexts.
Rename some functions. Generally refactor code to make it simpler.
R=ager@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/7003058
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8231 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-09 11:26:01 +00:00
fschneider@chromium.org
68eab4a8d8
Fix bug with GVN on array loads.
...
This fixes a bug where an array load was incorrectly hoisted by GVN.
BUG=85177
TEST=mjsunit/regress/regress-85177.js
Review URL: http://codereview.chromium.org/7003054
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8230 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-09 11:15:03 +00:00
danno@chromium.org
4de3bb500c
Implement core support for FixedDoubleArrays.
...
Under a flag without IC or Crankshaft support.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/7089002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8229 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-09 10:03:35 +00:00
sgjesse@chromium.org
62a65fcc67
Add support for building Xcode project files from GYP files
...
Removed the current Xcode project file.
Fixed a few places where the C++ compiler supplied with Xcode produced warnings.
Review URL: http://codereview.chromium.org/7134016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8228 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-09 09:07:17 +00:00
ager@chromium.org
626cdffaef
Fix Array.prototype.{reduce,reduceRight} to pass undefined as receiver for strict mode callbacks.
...
Propagate strict mode information from pre-parser to parser for lazily compiled functions.
R=lrn@chromium.org
BUG=v8:1436
TEST=mjsunit/regress/regress-1436.js
Review URL: http://codereview.chromium.org/7044054
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8227 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-09 09:05:15 +00:00
sgjesse@chromium.org
94be13e794
MIPS: port Stop using with explicitly to implement try/catch.
...
Port r8224 (bdec5d6)
Original commit message:
The AST for TryCatch gives us enough structure that we do not need to expand
it to explicitly include a with. Try/catch is still handled the same as
before at runtime.
BUG=
TEST=
Review URL: http://codereview.chromium.org//7134037
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8226 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-09 07:06:15 +00:00
kmillikin@chromium.org
6304b12680
Fix lint error. TBR.
...
R=fschneider@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/7046046
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8225 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-08 14:11:29 +00:00
kmillikin@chromium.org
e9a1ffde92
Stop using with explicitly to implement try/catch.
...
The AST for TryCatch gives us enough structure that we do not need to expand
it to explicitly include a with. Try/catch is still handled the same as
before at runtime.
R=ager@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/7134014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8224 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-08 13:55:33 +00:00
fschneider@chromium.org
699d17c3b9
Remove unused function form hydrogen instructions.
...
Review URL: http://codereview.chromium.org/7044045
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8223 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-08 12:22:06 +00:00
fschneider@chromium.org
2dc734c108
Cleanup unused lithium instructions.
...
Instructions that have side effects can never have EmitAtUses() true.
These instructions (CmpTAndBranch, InstanceOfAndBranch) are therefore
never generated and can therefor be safely removed.
Review URL: http://codereview.chromium.org/7031074
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8220 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-08 10:51:51 +00:00
mikhail.naganov@gmail.com
59485c1060
Add snapshot compression support into d8.
...
I'm not bothering with compressing d8.js, since it makes no sense,
but it is also possible.
R=sgjesse@chromium.org
Review URL: http://codereview.chromium.org/7046027
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8217 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-08 09:00:25 +00:00
jkummerow@chromium.org
6beeec3009
Prepare push to trunk. Now working on version 3.4.4.
...
R=sgjesse@chromium.org
Review URL: http://codereview.chromium.org/7046042
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8216 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-08 08:58:59 +00:00
lrn@chromium.org
bd826d54f5
Fix bug in Object.defineProperty where a growing lements dictionary was ignored.
...
TEST=mjsunit/object-define-property
Review URL: http://codereview.chromium.org/7129017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8215 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-08 08:13:31 +00:00
sandholm@chromium.org
b5144668cd
Specialize JSON parser to only check for SequentialAsciiString once.
...
Review URL: http://codereview.chromium.org/7134010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8214 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-08 08:09:48 +00:00
erik.corry@gmail.com
3a824b86ac
Revert 8133: Lower heap size limits on systems that are short
...
of virtual memory.
Review URL: http://codereview.chromium.org/7041004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8212 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-08 07:28:31 +00:00
vitalyr@chromium.org
2bc305cd9a
Fix bug 1433: clear the global thread table when an isolate is disposed.
...
R=ager@chromium.org
BUG=v8:1433
TEST=test-lockers/Regress1433
Review URL: http://codereview.chromium.org/7129002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8209 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-07 18:33:03 +00:00
vitalyr@chromium.org
7ff41d4322
Reduce TLS overhead in v8::TryCatch.
...
R=vegorov@chromium.org
BUG=v8:1426
Review URL: http://codereview.chromium.org/6982059
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8208 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-07 15:01:52 +00:00
vitalyr@chromium.org
a07bd45c29
Clean up a few TODO(isolates).
...
R=ager@chromium.org
Review URL: http://codereview.chromium.org/6993061
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8207 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-07 13:09:01 +00:00
ager@chromium.org
f2d5710b8b
Convert time zone name to UTF8 on Windows.
...
R=sgjesse@chromium.org
BUG=v8:1290
Review URL: http://codereview.chromium.org/7125008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8197 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-07 11:53:49 +00:00
whesse@chromium.org
1ea14c2041
Limit the number of arguments in a function call to 32766.
...
Limit the number of arguments in a function call to 32766. This is identical
to the limit on the number of parameters to a function.
BUG=v8:1413
TEST=
Review URL: http://codereview.chromium.org/7054074
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8194 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-07 08:15:47 +00:00
mikhail.naganov@gmail.com
3b2470d296
Fix presubmit errors catched by a more recent version of cpplint.py.
...
Mainly, there were errors concerning blank lines before and after class access
control sections [whitespace/blank_line].
BEFORE an access control section (e.g. public:, private:) there should be a
blank line (except for the section right after the class declaration).
AFTER an access control section there should be no blank line.
TBR=ager@chromium.org
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8193 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-07 07:17:46 +00:00
mikhail.naganov@gmail.com
17d45d3537
Fix typo: RetainedSizeCalculator::reained_size -> retained_size
...
TBR=sgjesse@chromium.org
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8191 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-07 05:10:27 +00:00
mikhail.naganov@gmail.com
2373771d2e
Fix presubmit after r8189
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8190 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-06 20:58:25 +00:00
mikhail.naganov@gmail.com
f1309b0417
Compress sources of JS libraries in addition to the snapshot.
...
This saves ~170K on current sources.
R=sgjesse@chromium.org
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/7066048
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8189 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-06 20:47:30 +00:00
vitalyr@chromium.org
da40f3da1d
Update comments in the global handles interface.
...
(I also reordered functions in the .cc file to match the order in the
.h file.)
R=antonm@chromium.org
Review URL: http://codereview.chromium.org/7056068
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8188 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-06 16:18:59 +00:00
vitalyr@chromium.org
37eb9b3031
Kill some dead code: classic frame element and const lists.
...
R=ager@chromium.org
Review URL: http://codereview.chromium.org/7111034
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8187 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-06 15:43:08 +00:00
vitalyr@chromium.org
5872e8ee2f
Refactor storage of global handles.
...
We used to have a linked list of nodes that were internally
block-allocated.
I kept the node blocks and put them on two lists: 1) the list of all
allocated blocks, 2) the list of blocks with used nodes. (1) is used
to reclaim blocks and (2) is used for traversal during GC. To make
traversal on scavenges faster the nodes holding new space objects are
grouped in an auxiliary array.
This changes the minimal memory usage from 5 words per global handle
to 4. Additional word is used for new space handles.
Review URL: http://codereview.chromium.org/7054072
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8186 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-06 15:23:04 +00:00
fschneider@chromium.org
7c9cf0b3a1
Re-land r8140: Deoptimize on never-executed code-paths.
...
Original cl: http://codereview.chromium.org/7105015
I'm removing the test GlobalLoadICGC test that was introduced for testing
inlined global cell loads (in the classic backend) and has an invalid assumption
about the number of global objects referenced from a v8 context. We don't have
this feature with Crankshaft anymore.
Review URL: http://codereview.chromium.org/7112032
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8185 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-06 14:57:25 +00:00
ager@chromium.org
0c1702b199
Don't use SmartSlice just because the receiver is an array.
...
Only do so if the estimated number of elements is low compared to the
end position for the slice. This is similar to other heuristics used
for array operations that use the %GetElementKeys runtime function.
R=erik.corry@gmail.com
Review URL: http://codereview.chromium.org/7111032
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8184 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-06 13:28:44 +00:00
jkummerow@chromium.org
c0a0c82b70
Per-Isolate cache for polymorphic stubs
...
BUG=1385
TEST=Existing tests still pass; running d8 with --dump-counters shows fewer polymorphic stubs being compiled
Review URL: http://codereview.chromium.org/7094003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8183 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-06 13:15:11 +00:00
kmillikin@chromium.org
6a81642f31
Fix a bug in Lithium environment iteration.
...
The Advance() function of the class responsible for iterating
environment uses didn't always advance as far as it could (relying on
the HasNext predicate to finish advancing). This is brittle.
The HasNext predicate also didn't advance as far as it could when it
was at the end of an environment level. This is a bug.
R=jkummerow@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/6993023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8181 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-06 11:30:17 +00:00
erik.corry@gmail.com
0546584945
Prepare push to trunk. Now working on version 3.4.3.
...
Review URL: http://codereview.chromium.org/7058068
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8177 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-06 09:13:06 +00:00
ager@chromium.org
2ac8e0ee5d
MIPS: port Add complete ElementsKind information directly to Map for objects with elements.
...
Ported commits: r8162 (c56f802)
BUG=
TEST=
Review URL: http://codereview.chromium.org/7024042
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8176 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-06 08:49:15 +00:00
ager@chromium.org
0163b443d2
MIPS: port Implement set trap for proxies, and revamp class hierarchy in preparation
...
Ported commits: r8126 (6461bae)
Original commit message:
- Introduce a class JSReceiver, that is a common superclass of JSObject and
JSProxy. Use JSReceiver where appropriate (probably lots of places that we
still have to migrate, but we will find those later with proxy test suite).
- Move appropriate methods to JSReceiver class (SetProperty,
GetPropertyAttribute, Get/SetPrototype, Lookup, and so on).
- Introduce new JSFunctionProxy subclass of JSProxy. Currently only a stub.
- Overhaul enum InstanceType:
* Introduce FIRST/LAST_SPEC_OBJECT_TYPE that ranges over all types that
represent JS objects, and use that consistently to check language types.
* Rename FIRST/LAST_JS_OBJECT_TYPE and FIRST/LAST_FUNCTION_CLASS_TYPE
to FIRST/LAST_[NON]CALLABLE_SPEC_OBJECT_TYPE for clarity.
* Eliminate the overlap over JS_REGEXP_TYPE.
* Also replace FIRST_JS_OBJECT with FIRST_JS_RECEIVER, but only use it where
we exclusively talk about the internal representation type.
* Insert JS_PROXY and JS_FUNCTION_PROXY in the appropriate places.
- Fix all checks concerning classification, especially for functions, to
use the CALLABLE_SPEC_OBJECT range (that includes funciton proxies).
- Handle proxies in SetProperty (that was the easiest part :) ).
- A few simple test cases.
BUG=
TEST=
Review URL: http://codereview.chromium.org/7024041
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8175 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-06 08:47:27 +00:00
erik.corry@gmail.com
df55d43103
Fix asserts in StartPreemption and StopPreemption.
...
Review URL: http://codereview.chromium.org/7054070
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8174 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-06 08:45:42 +00:00
ager@chromium.org
74db440d9f
MIPS: Fixed FPU rounding checks and related errors in the Simulator.
...
Removed some unnecessary shifts when reading FCSR error flags.
Fixed some FCSR-related bugs.
Fixed some un-related style issues.
With this commit, mips build is still broken. Two more commits to come.
BUG=
TEST=
Review URL: http://codereview.chromium.org/6993054
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8173 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-06 08:43:15 +00:00
karlklose@chromium.org
799c3e92b9
ARM: Add optimization for constant RHS in DoMulI.
...
Patch by ARM Ltd.
Review URL: http://codereview.chromium.org/7027033
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8172 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-06 07:47:21 +00:00
mikhail.naganov@gmail.com
f09d3ac1c6
Define stubs for implementations of v8-profiler.h API when profiling is disabled
...
TBR=sgjesse@chromium.org
BUG=https://bugs.webkit.org/show_bug.cgi?id=62014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8170 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-03 19:45:59 +00:00
erik.corry@gmail.com
0023cacc22
Fix traversal of the map transition tree to take the prototype
...
transitions into account.
Review URL: http://codereview.chromium.org/7074052
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8165 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-03 14:48:09 +00:00
ager@chromium.org
22b5dfd395
Reapply: "Make instanceof and Object.getPrototypeOf work for proxies,
...
plus a few other tweaks."
The problem with the original patch was that it did not take hidden
prototype objects into account in Runtime_GetPrototype.
R=kmillikin@chromium.org ,rossberg@chromium.org
TEST=es5conform
Review URL: http://codereview.chromium.org/7056041
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8164 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-03 10:15:49 +00:00
ager@chromium.org
945bd3e70c
Report out of memory if we cannot allocate memory for the deoptimization table.
...
Currently we pass a null pointer to memcpy. We will crash either way,
but going through FatalProcessOutOfMemory makes it clear what is going
on.
R=kmillikin@chromium.org
BUG=http://crbug.com/84717
Review URL: http://codereview.chromium.org/6993022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8163 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-03 10:11:10 +00:00
danno@chromium.org
eee5e6c3fc
Add complete ElementsKind information directly to Map for objects with elements.
...
Review URL: http://codereview.chromium.org/6966041
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8162 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-03 07:41:37 +00:00
dslomov@chromium.org
24d81fc39c
Patch by Luke Zarko.
...
Fix building with gdbjit=on
Issue 7101011: http://codereview.chromium.org/7101011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8161 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-02 17:50:02 +00:00
mikhail.naganov@gmail.com
5112f7f0c6
Add curly braces to if / else clauses after r8152
...
TBR=ager@chromium.org
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8160 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-02 11:22:26 +00:00
ager@chromium.org
ece7700d7c
Revert "Make instanceof and Object.getPrototypeOf work for proxies, plus a few other tweaks."
...
This change caused errors in es5conform tests for getPrototypeOf.
TBR=rossberg@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/7109004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8159 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-02 10:12:00 +00:00
mikhail.naganov@gmail.com
b4c152545d
Revert "Fix Issue 1320: LiveEdit: text differencer fails with out of memory on large files"
...
Breaks compilation on Linux.
This reverts commit e72c5b1d69fb2cb2d5973f172666dd5d477e6f7e.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8154 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-01 23:11:10 +00:00
mikhail.naganov@gmail.com
d61022a86e
Fix presubmit errors after r8152
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8153 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-01 23:09:18 +00:00
mikhail.naganov@gmail.com
e10bedee78
[Linux] Do not install SIGPROF handler until we
...
start CPU profiling.
TBR=vitalyr@chromium.org
BUG=1344,crbug/79320,crbug/83521
TEST=none
Review URL: http://codereview.chromium.org/7107003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8152 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-01 22:12:05 +00:00
cira@chromium.org
a60085b28a
Re-landing http://codereview.chromium.org/7014019 .
...
Adding DateTimeFormat class to i18n API with following methods:
- format
- getWeekdays
- getMonths
- get Eras
- getAmPm
Difference from the reverted revision:
Removed all references to v8/src, like ASSERT_EQ.
All #includes have full path to include/v8.h or extension headers.
TEST=Visit i18n.kaziprst.org/datetimeformat.html
Review URL: http://codereview.chromium.org/7105002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8151 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-01 21:10:56 +00:00
rossberg@chromium.org
2255860992
Make instanceof and Object.getPrototypeOf work for proxies, plus a few other tweaks.
...
R=kmillikin@chromium.org
Review URL: http://codereview.chromium.org/7080053
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8150 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-01 17:44:08 +00:00
peter.rybin@gmail.com
d7b7d7f844
Fix Issue 1320: LiveEdit: text differencer fails with out of memory on large files
...
Review URL: http://codereview.chromium.org/7080029
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8149 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-01 17:05:35 +00:00
sandholm@chromium.org
f6901ea747
Untank compilation and fix JSON parse bug introduced in r8147.
...
Review URL: http://codereview.chromium.org/7020028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8148 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-01 14:55:55 +00:00
sandholm@chromium.org
3ed8c2f520
Remove scanner abstraction layer from JSON parsing.
...
Review URL: http://codereview.chromium.org/7020018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8147 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-01 14:06:30 +00:00
fschneider@chromium.org
ff76d1ab0c
Revert r8140.
...
It breaks test when running with nosnapshot.
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/7027029
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8145 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-01 13:34:15 +00:00
kmillikin@chromium.org
27f2f6aa0b
Delay processing of declarations for inlining candidates.
...
Processing the declarations in an inlining candidate must be performed
after constructing the Hydrogen environment of the candidate function.
R=fschneider@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/7027028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8144 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-01 13:26:30 +00:00
sandholm@chromium.org
f942c16ee9
Removing white spaces introduced in r8142.
...
Review URL: http://codereview.chromium.org/7025005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8143 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-01 12:24:55 +00:00
sandholm@chromium.org
ec534af392
Ensure strings are never externalized as a side-effect of doing a GC.
...
Review URL: http://codereview.chromium.org/7105016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8142 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-01 11:46:14 +00:00
erik.corry@gmail.com
6d7d3b8d77
Fix compilation on OpenBSD. Patch from Robert Nagy in
...
http://code.google.com/p/v8/issues/detail?id=1420
Review URL: http://codereview.chromium.org/7104024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8141 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-01 11:09:32 +00:00
fschneider@chromium.org
0aa422923c
Eagerly deoptimize on never-executed code-paths.
...
If type-feedback indicates that an expression was never executed in
the non-optimized code, we insert a forced deoptimization right away
to enable re-optimization if we ever hit this path.
With this change we still continue to build the graph. As a next step, we
should remove the dead code after the deoptimize.
I had to remove one assert about the optimization status in a test since
we now immediately deoptimize after exiting the loop that triggers OSR.
Also remove a restriction that control-flow from an inlined function in a
test context always reaches both true- and false-target.
Review URL: http://codereview.chromium.org/7105015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8140 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-01 11:04:40 +00:00
kmillikin@chromium.org
d985af520e
Disable context-allocated const variables.
...
We intended them to be fully disabled for now, but there was a missing
check at initialization time.
R=fschneider@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/7020021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8139 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-01 09:12:22 +00:00
sgjesse@chromium.org
56de6f750a
MIPS: port Fix receiver for calls to strict-mode and builtin functions ....
...
Fix receiver for calls to strict-mode and builtin functions that
are potentially shadowed by eval.
Port r8116 (e8a1e4842) to mips.
BUG=
TEST=
Review URL: http://codereview.chromium.org//7090003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8138 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-01 09:06:46 +00:00
sgjesse@chromium.org
d7f2f83b3b
MIPS:port Reapply change to Pass undefined to JS builtins when called with implicit receiver.
...
Port r8110 (0a6ff3a) to mips.
Some mips work was in original commit. Fixed bug due to Generate_ArgumentsAdaptorTrampoline
using the dedicated CallKind reg (t1) as a temporary.
BUG=
TEST=
Review URL: http://codereview.chromium.org//7027024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8137 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-01 09:05:44 +00:00
sgjesse@chromium.org
dae365948c
MIPS: port Fix a number of IC stubs to correctly set the call kind.
...
Ported r8109 (7ab86acc) to mips.
Original commit message:
Make the call kind and call wrapper arguments explicit to force
developers to make a choice. This would have avoided the bug in the
first case.
BUG=
TEST=
Review URL: http://codereview.chromium.org//7006021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8136 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-01 09:01:57 +00:00
sgjesse@chromium.org
ad55fbc34d
MIPS: port Prevent deopt on double value assignment to typed arrays
...
Ported r8077 (defc4f9b) to mips.
BUG=
TEST=
Review URL: http://codereview.chromium.org//7027023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8135 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-01 08:58:19 +00:00
sgjesse@chromium.org
bbfd202c81
ARM: Be consistent about the condition codes used with CompareObjectType
...
Now the signed comparison condition codes are always used with CompareObjectType. The type is only a byte and ldrb will do sign extension, so signed and unsigned comparison will give the same result. Signed condition codes are easier to read.
R=erik.corry@gmail.com
BUG=none
TEST=none
Review URL: http://codereview.chromium.org//7104019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8134 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-01 08:54:30 +00:00
erik.corry@gmail.com
955e6a2496
Lower heap size limits on systems that are short of virtual memory.
...
Review URL: http://codereview.chromium.org/7020020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8133 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-01 08:49:18 +00:00
svenpanne@chromium.org
15cb93ed62
Ooops, forgot to commit the renamings in Hydrogen for issue 6976028....
...
TBR=danno@chromium.org
Review URL: http://codereview.chromium.org/7105014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8132 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-01 07:11:25 +00:00
ricow@chromium.org
68c20c7f9f
Prepare push to trunk. Now working on version 3.4.2.
...
Review URL: http://codereview.chromium.org/7090002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8129 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-01 05:48:51 +00:00
peter.rybin@gmail.com
8f2274c841
LiveEdit: Optimize compare by stripping common suffix and prefix.
...
Review URL: http://codereview.chromium.org/7087031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8128 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-31 20:58:21 +00:00
cira@chromium.org
ab00b00a87
Removed all references to v8/src from i18n extension code.
...
Removed I18N enum from v8/src/natives.h
Removed use of Vector and natives.h from i18n-extension.cc. Added new
python script that generates i18n-js.cc from i18n.js.
Made all paths absolute pointing to either v8/include or
v8/src/extensions/experimental.
Exported -Iv8 for embedders (-Iv8/include was there already).
Review URL: http://codereview.chromium.org/7077012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8127 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-31 17:21:28 +00:00
rossberg@chromium.org
670f947a5c
Implement set trap for proxies, and revamp class hierarchy in preparation:
...
- Introduce a class JSReceiver, that is a common superclass of JSObject and
JSProxy. Use JSReceiver where appropriate (probably lots of places that we
still have to migrate, but we will find those later with proxy test suite).
- Move appropriate methods to JSReceiver class (SetProperty,
GetPropertyAttribute, Get/SetPrototype, Lookup, and so on).
- Introduce new JSFunctionProxy subclass of JSProxy. Currently only a stub.
- Overhaul enum InstanceType:
* Introduce FIRST/LAST_SPEC_OBJECT_TYPE that ranges over all types that
represent JS objects, and use that consistently to check language types.
* Rename FIRST/LAST_JS_OBJECT_TYPE and FIRST/LAST_FUNCTION_CLASS_TYPE
to FIRST/LAST_[NON]CALLABLE_SPEC_OBJECT_TYPE for clarity.
* Eliminate the overlap over JS_REGEXP_TYPE.
* Also replace FIRST_JS_OBJECT with FIRST_JS_RECEIVER, but only use it where
we exclusively talk about the internal representation type.
* Insert JS_PROXY and JS_FUNCTION_PROXY in the appropriate places.
- Fix all checks concerning classification, especially for functions, to
use the CALLABLE_SPEC_OBJECT range (that includes funciton proxies).
- Handle proxies in SetProperty (that was the easiest part :) ).
- A few simple test cases.
R=kmillikin@chromium.org
Review URL: http://codereview.chromium.org/6992072
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8126 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-31 16:38:40 +00:00
erik.corry@gmail.com
7a1a72c701
Revert 8122 (stub call asserts) while test failures are investigated.
...
Review URL: http://codereview.chromium.org/7050039
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8125 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-31 15:21:25 +00:00
svenpanne@chromium.org
6453056bb6
Reduced the code ping-pong between the full code generator and contexts a bit.
...
* Centralized AND/OR handling, keeping related code together.
* Removed HandleExpression/HandleInNonTestContext and introduced VisitInSameContext instead, making it more obvious what's actually going on.
* Consistently use a new context when visiting the left sub-expression of an AND/OR. Note that the context stacks in the full code generator and crankshaft are still a bit out of sync for the right sub-expression.
Review URL: http://codereview.chromium.org/6976028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8124 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-31 14:37:34 +00:00
vegorov@chromium.org
d71adb6d22
Fix two bugs in LiveRange::SplitAt:
...
- when splitting at the beginning of the UseInterval we need to find an interval preceding it.
- we need to reset cached iteration state after splitting.
BUG=v8:1410
Review URL: http://codereview.chromium.org/7053039
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8123 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-31 13:35:52 +00:00
erik.corry@gmail.com
c5fc4b9099
Add asserts and state tracking to ensure that we do not call
...
into C++ without having a valid stack frame that can be
traversed at GC.
Also add asserts to track that we do not try to generate a stub
while we are generating a stub, since the stub creation code is
not GC safe.
Review URL: http://codereview.chromium.org/7084032
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8122 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-31 12:38:45 +00:00
kmillikin@chromium.org
00f2ff321e
Support optimization of named function literals.
...
Introduce a Hydrogen value for the value denoted by the function name.
R=fschneider@chromium.org ,mnaganov@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/7083024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8121 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-31 11:54:46 +00:00
ager@chromium.org
544191e718
Update apply with arguments optimization for strict mode functions and builtins.
...
Do not convert to object for values for strict-mode functions and
builtins.
R=ricow@chromium.org
BUG=v8:1412
TEST=mjsunit/regress/regress-1412.js
Review URL: http://codereview.chromium.org/7096006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8120 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-31 10:38:41 +00:00
jkummerow@chromium.org
4ba07be98f
Add support for external arrays to d8
...
Review URL: http://codereview.chromium.org/7053038
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8119 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-31 09:42:17 +00:00
svenpanne@chromium.org
dcb558fdf0
Push the general AST id field down from ASTNode to Expression.
...
Almost all uses were below Expression already, only a single use in IfStatement
had to be handled explicitly (probably an oversight from earlier changes?). This
is a small step towards a less ad-hoc handling of IDs in the front end.
Review URL: http://codereview.chromium.org/7054034
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8118 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-31 09:34:37 +00:00
ager@chromium.org
bfa2ef1f11
Fix receiver for calls to strict-mode and builtin functions that are
...
potentially shadowed by eval.
R=sgjesse@chromium.org
TEST=mjsunit/regress/regress-124.js
Review URL: http://codereview.chromium.org/7096004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8116 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-31 07:57:22 +00:00
sgjesse@chromium.org
e497896181
Fix building with profilingsupport=off
...
Using profilingsupport=off is not recommended as it will turn off crankshaft. With this change it will build though.
R=erik.corry@gmail.com
BUG=none
TEST=none
Review URL: http://codereview.chromium.org//7085025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8113 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-30 14:33:23 +00:00
mikhail.naganov@gmail.com
cd67929b0b
Heap profiler: fetch document.URL of global objects.
...
This allows to distinguish DOMWindow objects in browser from each other.
R=vitalyr@chromium.org ,sgjesse@chromium.org
BUG=https://bugs.webkit.org/show_bug.cgi?id=61177
TEST=cctest/test-heap-profiler/DocumentURL
Review URL: http://codereview.chromium.org/7082012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8111 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-30 14:31:47 +00:00
ager@chromium.org
017935408d
Reapply change to Pass undefined to JS builtins when called with
...
implicit receiver.
A couple of corner cases have to be treated specially to not break
everything: eval and getter/setter definitions.
R=fschneider@chromium.org
BUG=v8:1365
TEST=mjsunit/regress/regress-1365.js
Review URL: http://codereview.chromium.org/7085034
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8110 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-30 13:49:22 +00:00
ager@chromium.org
cc4a2d7e76
Fix a number of IC stubs to correctly set the call kind.
...
Make the call kind and call wrapper arguments explicit to force
developers to make a choice. This would have avoided the bug in the
first case.
R=fschneider@chromium.org
TEST=mjsunit/strict-mode-implicit-receiver.js
Review URL: http://codereview.chromium.org/7086029
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8109 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-30 13:23:17 +00:00
fschneider@chromium.org
e0985887bf
Simple support for const variables in Crankshaft.
...
The approach is to handle the common case in the optimizing
compiler and to bailout for the rare corner cases.
This is done by initializing all local const-variables with
the hole value and disallowing any use of the hole value statically.
Review URL: http://codereview.chromium.org/6026006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8104 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-30 11:31:41 +00:00
sandholm@chromium.org
ba229754ea
Fix JSON issue with arrays.
...
Review URL: http://codereview.chromium.org/7089003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8100 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-30 10:47:38 +00:00
svenpanne@chromium.org
683baa1682
Removed dead flags.
...
Review URL: http://codereview.chromium.org/7077028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8097 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-30 09:42:28 +00:00
sandholm@chromium.org
1feea6bbaa
Minor JSON cleanup. Also added comment requested for r8086.
...
Review URL: http://codereview.chromium.org/7086026
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8095 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-30 09:23:17 +00:00
ricow@chromium.org
5fd5471a1b
Prepare push to trunk. Now working on version 3.4.1.
...
Review URL: http://codereview.chromium.org/7087025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8094 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-30 08:43:52 +00:00
ricow@chromium.org
46100d9cef
Allocate normal register for LDoubleToI in DoToInt32 (fixes no-sse3 issue)
...
Review URL: http://codereview.chromium.org/7083021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8093 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-30 07:53:21 +00:00
kmillikin@chromium.org
44964bc90f
Remove unused DummyScope implementation.
...
R=lrn@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/7062020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8092 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-30 07:38:45 +00:00
kmillikin@chromium.org
add593da22
Simplify the Scope API.
...
Eliminate the LocalType enum in favor of a pair of functions, one for var
and const declarations and one for parameters. Move the responsibility for
adding a parameter variable to the Scope's internal data structure into the
Scope and out of the parser.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8091 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-30 07:33:12 +00:00
ricow@chromium.org
7eb6f5c1ba
Correctly set the length of string before creating filler object in the json parser (fixes crbug 84186).
...
Testcase created based on the supplied test case from the bug report, but using json parse directly instead of through the chrome javascript console.
Review URL: http://codereview.chromium.org/7084023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8089 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-30 06:04:36 +00:00
sandholm@chromium.org
0b06fa3dcc
Fix Win compilation issue introduced in r8081.
...
Review URL: http://codereview.chromium.org/7074009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8086 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-26 14:41:11 +00:00
ricow@chromium.org
3f8a191725
Double allocation size for special json strings on every resize (fixes
...
crbug 83877)
The issue was that with the relatively small start and increment size of the string we created a ton of string handles when scanning a large string with special characters (500k+ in this case).
In addition, since we can not be sure the the newly allocated string
is in newspace a check is introduced and if not a filler object is
inserted instead of shrinking.
Review URL: http://codereview.chromium.org/7075009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8082 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-26 14:03:30 +00:00
sandholm@chromium.org
331e6102e6
JSON.stringify improvement. Fast case in C++ for string arrays.
...
Review URL: http://codereview.chromium.org/7077004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8081 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-26 13:58:48 +00:00
sgjesse@chromium.org
5cd77037aa
ARM: Avoid using ldrd/strd with post increment
...
These instructions seems to cause problems in some situations. This reverts parts of r7873.
R=erik.corry@gmail.com
BUG=none
TEST=none
Review URL: http://codereview.chromium.org//6962010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8080 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-26 13:52:14 +00:00
danno@chromium.org
665219b8a7
Fix stray character in last build
...
TBR=kmillikin@chromium.org
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8078 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-26 12:16:13 +00:00
danno@chromium.org
c2394e0a71
Prevent deopt on double value assignment to typed arrays
...
Implement truncation of double and tagged values when assigning to an element of a typed arrays in order to avoid depots.
BUG=1313
TEST=test/mjsunit/external-array.js
Review URL: http://codereview.chromium.org/6961019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8077 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-26 12:07:22 +00:00
ager@chromium.org
c832c467a4
Revert "Pass undefined to JS builtins when called with implicit receiver."
...
Presubmit and failing test.
TBR=lrn@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/7071009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8075 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-26 11:22:29 +00:00
ager@chromium.org
19b718fe73
Pass undefined to JS builtins when called with implicit receiver.
...
A couple of corner cases have to be treated specially to not break
everything: eval and getter/setter definitions.
R=lrn@chromium.org
BUG=v8:1365
TEST=mjsunit/regress/regress-1365.js
Review URL: http://codereview.chromium.org/7068009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8073 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-26 11:07:48 +00:00
kmillikin@chromium.org
68e2d1bfed
Do not allow inlining functions with direct arguments access.
...
Our implementations of arguments without materializing the arguments
object (based on inspecting the stack frame) does not work for inlined
functions. Guard all attempts by disallowing them if possible or else
bailing out of the optimizing compiler.
R=fschneider@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/6976022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8072 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-26 10:56:07 +00:00
sgjesse@chromium.org
64c610727d
MIPS: Added the stop() instruction with same behavior as on Arm simulator.
...
The already working watchpoint break mechanism has been extended to handle "stop" instructions, with text messages.
Explanation (also in constants-mips.h):
On MIPS Simulator breakpoints can have different codes:
- Breaks between 0 and kMaxWatchpointCode are treated as simple watchpoints, the simulator will run through them and print the registers.
- Breaks between kMaxWatchpointCode and kMaxStopCode are treated as stop() instructions (see Assembler::stop()).
- Breaks larger than kMaxStopCode are simple breaks, dropping you into the debugger.
The current values are 31 for kMaxWatchpointCode and 127 for kMaxStopCode.
From the user's point of view this works the same way as the ARM stop instruction except for the break code usage detailed above.
Ported commits: r5723 (3ba78d24)
BUG=
TEST=
Review URL: http://codereview.chromium.org//7062014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8069 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-26 07:46:18 +00:00
lrn@chromium.org
02c4e8bfcb
Make RegExp objects not callable.
...
Review URL: http://codereview.chromium.org/6930006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8068 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-26 07:35:09 +00:00
sgjesse@chromium.org
01395613da
MIPS: port Fix GC-unsafe corner case in bit-not on ARM.
...
Port r8055 to mips.
(5b50df9c)
BUG=
TEST=
Review URL: http://codereview.chromium.org//7075003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8067 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-26 07:02:35 +00:00
cira@chromium.org
46c7ddd9a8
Landing http://codereview.chromium.org/7033038 for jshin.
...
Make 'ignoreCase' work in collator.
BUG=28604
TEST=http://www.i18nl10n.com/chrome/coll.html
Review URL: http://codereview.chromium.org/7008023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8066 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-25 22:18:41 +00:00
vitalyr@chromium.org
b230249a98
Add fast cases for flat comparison to String::Is{Ascii,TwoByte}EqualTo.
...
R=ager@chromium.org
Review URL: http://codereview.chromium.org/7064017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8065 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-25 17:07:05 +00:00
erik.corry@gmail.com
210fed7be8
Untank the build.
...
Review URL: http://codereview.chromium.org/6992061
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8060 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-25 12:40:04 +00:00
erik.corry@gmail.com
e5fc9762f6
Add comment better explaining the calling-stubs-from-stubs issue.
...
Review URL: http://codereview.chromium.org/7031046
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8059 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-25 12:26:15 +00:00
vegorov@chromium.org
65e406ed0d
Add a comment about map collection into MarkCompactCollector::MarkUnmarkedObject.
...
Review URL: http://codereview.chromium.org/6992059
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8056 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-25 10:49:48 +00:00
erik.corry@gmail.com
fbf76fc86a
Fix GC-unsafe corner case in bit-not on ARM
...
Review URL: http://codereview.chromium.org/6987009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8055 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-25 10:35:00 +00:00
ricow@chromium.org
f675db651d
Change calls to undefined property setters to not throw (fixes issue 1355).
...
We currently throw when there is only a getter defined on the
property, but this should only be the case in strict mode.
Review URL: http://codereview.chromium.org/7064027
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8054 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-25 08:37:38 +00:00
danno@chromium.org
2f36b16343
Prepare push to trunk. Now working on version 3.4.0.
...
R=ager@chromium.org
Review URL: http://codereview.chromium.org/6979008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8052 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-25 07:37:14 +00:00
sgjesse@chromium.org
e8918bb7c7
MIPS: Fixed two bugs related to double function calls.
...
These originated from 4dfb7f2e.
This fixes cctest test-api/ConversionNumber in soft-float mode.
BUG=
TEST=
Review URL: http://codereview.chromium.org//7068002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8051 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-25 06:41:39 +00:00
ager@chromium.org
b92ef0be32
MIPS: port Fix calls of strict mode function with an implicit receiver.
...
Port of r8040 to mips.
Original commit message:
Strict mode functions are to get 'undefined' as the receiver when
called with an implicit receiver. Modes are bad! It forces us to have
checks on all function calls.
This change attempts to limit the cost by passing information about
whether or not a call is with an implicit or explicit receiver in ecx
as part of the calling convention. The cost is setting ecx on all
calls and checking ecx on entry to strict mode functions.
Implicit/explicit receiver state has to be maintained by ICs. Various
stubs have to not clobber ecx or save and restore it.
CallFunction stub needs to check if the receiver is implicit when it
doesn't know from the context.
BUG=
TEST=
Review URL: http://codereview.chromium.org/6992051
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8050 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-25 06:04:01 +00:00
danno@chromium.org
2489594d71
Migrate flag from bit_field2 to bit_field3
...
R=ager@chromium.org
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/7064029
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8049 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-24 21:07:55 +00:00
whesse@chromium.org
cc14935ddf
Ensure that external pixel arrays use a byte register in Crankshaft.
...
BUG=v8:1406
TEST=fast/canvas/canvas-putImageData.html
Review URL: http://codereview.chromium.org/7067028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8048 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-24 16:23:22 +00:00
whesse@chromium.org
ce77e9499d
Remove some dead code from full-codegen on all platforms.
...
BUG=
TEST=
Review URL: http://codereview.chromium.org/6966033
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8047 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-24 15:11:48 +00:00
lrn@chromium.org
b97da90453
Add tests for function statements in strict mode.
...
Small fixes.
Added test for const declaration in strict mode.
TEST=preparser/strict-function-statement
Review URL: http://codereview.chromium.org/6990056
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8041 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-24 14:02:59 +00:00
ager@chromium.org
6f775f2fb0
Fix calls of strict mode function with an implicit receiver.
...
Only IA32 version for now. I'll start porting.
Strict mode functions are to get 'undefined' as the receiver when
called with an implicit receiver. Modes are bad! It forces us to have
checks on all function calls.
This change attempts to limit the cost by passing information about
whether or not a call is with an implicit or explicit receiver in ecx
as part of the calling convention. The cost is setting ecx on all
calls and checking ecx on entry to strict mode functions.
Implicit/explicit receiver state has to be maintained by ICs. Various
stubs have to not clobber ecx or save and restore it.
CallFunction stub needs to check if the receiver is implicit when it
doesn't know from the context.
Review URL: http://codereview.chromium.org/7039036
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8040 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-24 14:01:36 +00:00
whesse@chromium.org
583afefab5
Modify use of RelocInfo::CODE_TARGET_WITH_ID in full-codegen to make it the same on all platforms.
...
BUG=
TEST=
Review URL: http://codereview.chromium.org/7063021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8039 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-24 13:48:55 +00:00
sgjesse@chromium.org
eff2946b9b
Handle changes to the Object prototype in fast handling of arrays
...
R=ager@chromium.org
BUG=v8:1403
TEST=test/mjsunit/regress/regress-1403.js
Review URL: http://codereview.chromium.org//7067019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8032 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-24 12:28:10 +00:00
fschneider@chromium.org
5552dbccdd
Rename TypeRecording...Stub into ...Stub.
...
There is no need for this long name.
Review URL: http://codereview.chromium.org/7063017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8031 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-24 12:20:16 +00:00
ricow@chromium.org
3c7e1d7015
Create stand-alone json parser (including scanner).
...
The current json parser and scanner inherits fromt he normal scanners and parsers,
which are more complicated than we need for parsing json.
The supplied scanner works directly on the string supplied and has a
fast case mode for scanning only ascii characters (it will simply
create a substring or a symbol directly from the existing string). To
allow for creating symbols from a substring I have added a
SubStringAsciiSymbolKey that creates the hash based from our string
without extracting the sub-string. In case we need to add the symbol
it simply creates the symbol directly from the characters inside the
given string.
Review URL: http://codereview.chromium.org/7039037
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8029 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-24 12:16:23 +00:00
kmillikin@chromium.org
0e76bfeae7
Fix a bug in deoptimization on x64.
...
When deoptimizing to just after an ignored (because of a duplicate
property name) object literal property initializer, we incorrectly saw
the value of the initializer expression on the stack in the
unoptimized code. The bug affected x64 only.
R=fschneider@chromium.org
BUG=v8:1404
Review URL: http://codereview.chromium.org/7066015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8028 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-24 12:12:41 +00:00
ricow@chromium.org
ab67432ed0
Change strict mode poison pill to be the samme type error function (fixes issue 1387).
...
We are now following the spec, and with regards to the error message we are following firefox (webkit still has different type errors in their nightly)
Review URL: http://codereview.chromium.org/7067017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8026 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-24 11:07:06 +00:00
danno@chromium.org
59a7ce37a6
Fix poliarty of CheckMap smi check on ia32
...
R=karlklose@chromium.org
BUG=none
TEST=existing tests
Review URL: http://codereview.chromium.org/7067018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8025 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-24 08:59:51 +00:00
fschneider@chromium.org
a3853feed2
Remove wrong assert to fix a debug crash with arguments object.
...
We don't need to assert the existence of a length-property of the
arguments object because it is not a JSArray, but just a normal JSObject.
BUG=v8:1227
Review URL: http://codereview.chromium.org/7064020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8024 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-24 08:38:42 +00:00
sgjesse@chromium.org
fbd106d9cd
MIPS: arch-independent changes to support mips.
...
This change supports all non-crankshaft features except serialization.
This must be built after the changes in http://codereview.chromium.org/6966031
are landed.
BUG=
TEST=
Review URL: http://codereview.chromium.org//7039058
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8023 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-24 07:56:20 +00:00
sgjesse@chromium.org
9891a057e1
MIPS: Update for 23-May commits, and a few older ones.
...
Make mips-specifc changes for r7999, r8001, r8002.
Also bring in changes for older commits 7203, 7279, 7693, 7715, 7788.
Mips changes for 7715 (Arm: Support hardfloat in SCons build), and
7693 (Implement hardfloat calling convention in macro assembler and simulator)
resulted in changes to SConstruct.
BUG=
TEST=
Review URL: http://codereview.chromium.org//6966031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8022 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-24 07:23:32 +00:00
vitalyr@chromium.org
179702df03
Inline more zone stuff.
...
R=ager@chromium.org
Review URL: http://codereview.chromium.org/7066004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8009 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-23 22:23:50 +00:00
karlklose@chromium.org
b082e6cc73
Remove stub call in non-VFP3 code path of external array load.
...
KeyedLoadStubCompiler::GenerateLoadExternalArray is tail-calling a stub, which it is not allowed to, because its major key is higher than InstanceOf. Instead of changing the major key I decided to provide an inline implementation.
TEST=test-api/ExternalArrays with --noenable-vfp3
R=danno@chromium.org
Review URL: http://codereview.chromium.org/7060007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8002 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-23 16:17:40 +00:00
danno@chromium.org
70d5e6d582
Add bit_field3 to Map objects
...
Reuse instance_descriptor field in the map to store additional flags when there are no descriptors. When descriptors get added to the map, move the flags to the DescriptorArray and access through indirection.
Review URL: http://codereview.chromium.org/7033024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8001 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-23 15:59:38 +00:00
whesse@chromium.org
d88dbf27f5
Avoid calling ToObject on JSFunction receiver arguments for Function.call and Function.apply.
...
BUG=
TEST=
Review URL: http://codereview.chromium.org/7062007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8000 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-23 15:17:10 +00:00
danno@chromium.org
b21987203e
Ensure SMI check for receiver in external array store stub for ARM.
...
R=ager@chromium.org
BUG=none
TEST=test/mjsunit/external-array.js
Review URL: http://codereview.chromium.org/7058011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7999 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-23 15:04:32 +00:00
danno@chromium.org
780df33019
SMI checks for receiver in KeyedLoad/Store (done right this time)
...
R=ager@chromium.org
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/7059013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7998 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-23 13:42:33 +00:00
vitalyr@chromium.org
3c689b33e8
Use placement new for ZoneLists in the parser.
...
Review URL: http://codereview.chromium.org/7059012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7994 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-23 13:00:11 +00:00
vitalyr@chromium.org
69bc282fd6
Isolates cleanup: get rid of some ugly macros.
...
Review URL: http://codereview.chromium.org/7062003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7993 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-23 12:59:02 +00:00
sgjesse@chromium.org
0e0b1b2da9
Optimise the deoptimisation check to improve performance on modern ARM cores.
...
BUG=none
TEST=none
Committed: http://code.google.com/p/v8/source/detail?r=7909
Reverted in r7916.
Review URL: http://codereview.chromium.org//7021007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7991 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-23 12:48:17 +00:00
danno@chromium.org
a86e0b7708
Add missing SMI checks to fix reliability bots
...
R=ager@chromium.org
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/6974008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7989 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-23 11:40:36 +00:00
sgjesse@chromium.org
a1bcafab69
Improve bit tests on IA32.
...
Bit tests with a memory operand should be avoided on Intel processors.
On Atom bts with a memory operand has 10~11 cycles latency and on Core 2
it has 5~6 cycles latency, and also produces multiple uops.
If the bit base operand is a register the latency is 1 cycle instead.
This CL improves several cases from Kraken 1.1 benchmark on Atom. For example,
12% for imaging-desaturate, 8% for audio-fft, and 5% for audio-beat-detection.
Review URL: http://codereview.chromium.org//7048003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7987 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-23 10:47:43 +00:00
kasperl@chromium.org
e8277a0ab5
Changed d8 to print exception stack traces like samples/shell.cc.
...
Review URL: http://codereview.chromium.org/7060006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7986 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-23 10:41:02 +00:00
lrn@chromium.org
b253dd8927
Create template system for strict-mode tests.
...
This makes it possible to get total coverage without creating thousands
of individual test files.
Review URL: http://codereview.chromium.org/7061008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7985 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-23 10:35:30 +00:00
rossberg@chromium.org
b5223ab7a6
Fix object visitor.
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7984 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-23 09:11:24 +00:00
ager@chromium.org
5765e8a9c0
Experimental i18n extension breaks shared library build. Revert recent
...
changes to unblock V8 release.
Revert "Adding DateTimeFormat class to i18n API with following methods:"
Revert "Some internal methods are requested when v8 is built as DLL (V8_SHARED), and"
R=sgjesse@chromium.org
Review URL: http://codereview.chromium.org/7060005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7981 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-23 08:35:46 +00:00
sgjesse@chromium.org
f19fb45510
MIPS: Minor fixes to simulator and builtins-mips.
...
Updated to include fixes to several mips arch-specific files, corresponding to recent changes in r7944, r7935, r7926, r7914, r7910, r7895, and parts of r7423, which had previously been missed for mips. Rebased on r7964.
The simulator changes were missed on r7893 for code-stubs-mips,
where the DirectCEntry stuff was added.
There are also a couple small changes to builtins-mips following
r7879 for the other architectures.
BUG=
TEST=
Review URL: http://codereview.chromium.org//7042031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7977 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-23 07:12:58 +00:00
svenpanne@chromium.org
8ea947e64b
Fixed pretty printing of typeof/delete/void expressions. Put spaces around binary operations and comparisons to improve readability.
...
Review URL: http://codereview.chromium.org/7055008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7976 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-23 07:00:54 +00:00
ager@chromium.org
fe6bdabc07
Some internal methods are requested when v8 is built as DLL (V8_SHARED), and
...
they are not available.
Make them no-op (or better yet part of public API).
TEST = Build Chromium with V8_SHARED
Review URL: http://codereview.chromium.org/7004051
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7973 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-23 06:14:32 +00:00
ager@chromium.org
e4509a59b7
Prepare push to trunk. Now working on version 3.3.10.
...
R=erik.corry@gmail.com
Review URL: http://codereview.chromium.org/7059006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7971 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-23 06:00:45 +00:00
vitalyr@chromium.org
36195e73a7
ll_prof: Add function optimization status markers.
...
Review URL: http://codereview.chromium.org/7056012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7970 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-20 15:45:06 +00:00
mikhail.naganov@gmail.com
dd2c990178
Remove redundant 'running' checks for ProfilerEventsProcessor in tests.
...
A follow up to r7949
R=vitalyr@chromium.org
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/7040014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7969 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-20 15:11:00 +00:00
svenpanne@chromium.org
969a909e3a
Refactoring only: Simplified LChunkBuilder:DoTest a bit, making it a simple if-then-else cascade.
...
Review URL: http://codereview.chromium.org/7055006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7968 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-20 11:49:52 +00:00
cira@chromium.org
11cc4dcfc6
Adding DateTimeFormat class to i18n API with following methods:
...
- format
- getWeekdays
- getMonths
- get Eras
- getAmPm
TEST=Visit i18n.kaziprst.org/datetimeformat.html
Review URL: http://codereview.chromium.org/7014019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7967 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-19 21:12:47 +00:00
kmillikin@chromium.org
86bd8a6c40
Allocate fewer handles in the TypeFeedbackOracle.
...
R=vegorov@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/7047009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7964 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-19 13:26:47 +00:00
kmillikin@chromium.org
47157e8a56
When inlining fails, disable optimization of the proper function.
...
Also, refactor disabling of optimization to make it easier to ensure
that both SharedFunctionInfo and Code get disabled.
R=whesse@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/7033020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7963 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-19 13:15:57 +00:00
fschneider@chromium.org
742a001c00
Also skip unary op IC when iterating over break locations in the debugger.
...
Review URL: http://codereview.chromium.org/7040002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7962 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-19 13:14:12 +00:00
whesse@chromium.org
7878391841
Refactor TraceInlining method of hydrogen so it works correctly.
...
Fix TraceInline.
BUG=
TEST=
Review URL: http://codereview.chromium.org/7049005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7961 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-19 12:53:50 +00:00
rossberg@chromium.org
abd77ad439
Rename Proxy class to Foreign, to avoid confusion with Harmony proxies.
...
Also fix grokdump, which was off by one after intro of JSProxy type.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7959 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-19 11:47:34 +00:00
lrn@chromium.org
eea59292e6
Avoid conflict between method and type name.
...
Make builder happy.
Review URL: http://codereview.chromium.org/7046004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7954 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-19 09:22:32 +00:00
lrn@chromium.org
7db97de8e0
Added preparser strict-mode tests.
...
Now tests for use of eval, arguments, reserved words and with statement.
Review URL: http://codereview.chromium.org/7037024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7951 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-19 09:01:46 +00:00
mikhail.naganov@gmail.com
e7484dbd01
Fix bug with long stack traces truncation in DevTools CPU profiler.
...
R=sgjesse@chromium.org ,vitalyr@chromium.org
BUG=1398
TEST=cctest/test-cpu-profiler/Issue1398
Review URL: http://codereview.chromium.org/7046001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7949 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-19 08:25:38 +00:00
ager@chromium.org
98778dc802
Remove execScript from V8. No longer present i neither Firefox nor Safari.
...
R=ricow@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/7046002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7948 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-19 08:10:27 +00:00
dslomov@chromium.org
c5c57d722a
Put 7942 "Per-isolate embedder-specific data" back
...
TBR=
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7947 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-18 23:26:38 +00:00
dslomov@chromium.org
3d5d169275
Revert "Per-isolate embedder-specific data"
...
This reverts commit 42f5dc01fb9adbf55242da9f6515e9a37132217b.
Checking if this helps webkit-tests
TBR=dslomov@chromium.org
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7946 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-18 22:35:41 +00:00
fschneider@chromium.org
932390fd2d
Fix compilation warning on some C++ compilers.
...
TBR=
Review URL: http://codereview.chromium.org/7034030
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7945 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-18 17:43:20 +00:00
fschneider@chromium.org
f2cb08f1c2
Fix handling of -0 in the unary-op IC and avoid repeated patching/transitions.
...
When the stub return a heap number we do a state transition to
a version HEAP_NUMBER that can handle -0.
There is room for further improvement in the typefeedback for the
case of -0. This change however does not address this and only fixes
the acute issue.
Review URL: http://codereview.chromium.org/7037025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7944 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-18 17:32:36 +00:00
vitalyr@chromium.org
85edb5f96b
Make GVN side effect analysis more precise.
...
When descending the dominator tree we used to collect side effects from all blocks between the dominator and the dominated blocks in the block ordering. This could include blocks that do not appear on paths from the dominator to the dominated and unnecessarily removed available values from the GVN map.
Review URL: http://codereview.chromium.org/7036010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7943 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-18 17:18:35 +00:00
dslomov@chromium.org
469c55f058
Per-isolate embedder-specific data
...
BUG=
TEST=
Review URL: http://codereview.chromium.org/6975020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7942 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-18 16:20:45 +00:00
vitalyr@chromium.org
35211e959e
Assert that independent handles do not participate in grouping.
...
Review URL: http://codereview.chromium.org/7044007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7941 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-18 15:28:43 +00:00
whesse@chromium.org
a32540e762
Add code to ia32 TypeRecordingBinaryOpStub to handle SHR Smi overflow.
...
BUG=v8:1395
TEST=
Review URL: http://codereview.chromium.org/7039013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7937 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-18 14:53:02 +00:00
rossberg@chromium.org
30ecaa2f6c
Move derived get trap from builtins to global context.
...
Review URL: http://codereview.chromium.org/7017008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7936 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-18 14:00:34 +00:00
danno@chromium.org
123500999f
Reland 7917:
...
Better support for 'polymorphic' JS and external arrays
Allow keyed store/load stubs to switch between external array and fast JS arrays without forcing a state transition to the generic stub.
There CL consists of two pieces of functionality. First, code stubs for fast element arrays don't immediately transition to the MEGAMORPHIC state when there's a map mismatch. Second, two ICs are cached per map for fast elements, the MONOMORPHIC version, and a new MEGAMORPHIC version that handles two or more different maps and dispatches to shared stubs to perform the array operation.
Review URL: http://codereview.chromium.org/7036016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7935 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-18 13:17:29 +00:00
vegorov@chromium.org
1ff163b219
Revert accidental change from r7795 that was causing a bug fixed in r7790 to reappear.
...
Review URL: http://codereview.chromium.org/6968010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7931 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-18 12:26:04 +00:00
lrn@chromium.org
9307ce2fcf
Fix incorrect coercion of other failures to Failure::Exception in ReThrow.
...
TEST=cctest/test-api/OutOfMemoryNested
Review URL: http://codereview.chromium.org/7029028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7930 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-18 12:22:19 +00:00
whesse@chromium.org
f40c463526
Fix bug 1396: Optimized calls to API functions assumed that the receiver was a JSObject, failed when compiling stub otherwise.
...
BUG=v8:1396
Review URL: http://codereview.chromium.org/7045002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7929 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-18 12:20:36 +00:00
fschneider@chromium.org
66911961cf
Fix bug in optimized compiler's switch-statement.
...
In the case where the default-clause occurs as the first clause,
the case-blocks were not wired up correctly.
BUG=v8:1394
TEST=mjsunit/compiler/regress-1394.js
Review URL: http://codereview.chromium.org/7037023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7927 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-18 11:06:07 +00:00
svenpanne@chromium.org
f39b0dfccb
Handle all kind of arguments in the ToBooleanStub. While this is not very thrilling in itself, it is one of several steps to add type recording to this stub. Removed a duplicate check for null in the ARM stub and made a tiny simplification, removing a sub instruction.
...
As a side note, this change has some positive impact on the performace, e.g. imaging-darkroom is 8.3% faster and ws-ieee754conv is even 19.9% faster. No idea why the speedup is so big in some cases, but never look a gift horse in the mouth... ;-)
Review URL: http://codereview.chromium.org/7042004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7926 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-18 10:40:01 +00:00
vitalyr@chromium.org
2cb0c0a957
Remove NULL temp operand from ia32 LStoreKeyedSpecializedArrayElement.
...
Review URL: http://codereview.chromium.org/7042006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7924 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-18 09:19:14 +00:00
kmillikin@chromium.org
b5b5fa22e1
Prepare push to trunk. Now working on version 3.3.9.
...
Review URL: http://codereview.chromium.org/7042005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7922 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-18 08:49:07 +00:00
lrn@chromium.org
6932196aa8
Fix push of untagged value in type-recording unary op stub.
...
Review URL: http://codereview.chromium.org/7037007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7919 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-18 07:40:51 +00:00
danno@chromium.org
83c84a43e8
Revert 7917
...
TBR=danno@chromium.org
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7918 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-17 18:47:10 +00:00
danno@chromium.org
5a9b2b3c5f
Better support for 'polymorphic' JS and external arrays
...
Allow keyed store/load stubs to switch between external array and fast JS arrays without forcing a state transition to the generic stub.
There CL consists of two pieces of functionality. First, code stubs for fast element arrays don't immediately transition to the MEGAMORPHIC state when there's a map mismatch. Second, two ICs are cached per map for fast elements, the MONOMORPHIC version, and a new MEGAMORPHIC version that handles two or more different maps. Currently, the only array types supported by the MEGAMORPHIC stub are fast elements for objects and JSArrays.
BUG=
TEST=
Review URL: http://codereview.chromium.org/6894003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7917 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-17 17:29:13 +00:00
sgjesse@chromium.org
46aeea9d3a
Revert r7909
...
r7909: Optimise the deoptimisation check to improve performance on modern ARM cores.
Assert failure on mozilla/ecma/Date/15.9.3.8-2 and mozilla/ecma/Date/15.9.3.8-4.
R=ricow@chromium.org
Review URL: http://codereview.chromium.org//7037006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7916 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-17 12:43:14 +00:00
vegorov@chromium.org
925107046e
Extend Handle API with MarkIndependent.
...
Garbage collector is free to ignore object groups for independent handles and can collect then in minor collections.
Review URL: http://codereview.chromium.org/7031005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7915 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-17 12:18:19 +00:00
danno@chromium.org
ecc25bfb47
Add enumeration to specify if smi check needed
...
R==ager@chromium.org
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/7039004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7914 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-17 12:05:06 +00:00
whesse@chromium.org
0eca2b4fc1
Fix error in postfix ++ in Crankshaft.
...
Add HForceRepresentation, to represent the implicit ToNumber applied to the input of a count operation.
BUG=v8:1389
TEST=
Review URL: http://codereview.chromium.org/7033008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7913 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-17 11:41:59 +00:00
fschneider@chromium.org
e3fd7c450e
Fix presubmit errors.
...
TBR=whesse@chromium.org
Review URL: http://codereview.chromium.org/7017011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7912 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-17 11:24:38 +00:00
fschneider@chromium.org
7d446f7f4c
Fix bug restoring of JS entry sp so to fix profiler-related valgrind issues.
...
The profiler did not correctly identify when there was a JS frame
on the stack after an exception was thrown.
I also refactored the code to use PopTryHandler macro-instructions on all platforms
BUG=73722
TEST=No more valgrind errors related to v8::internal::StackFrameIterator.
Review URL: http://codereview.chromium.org/7019010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7910 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-17 11:11:12 +00:00
sgjesse@chromium.org
9bddc8e0d8
Optimise the deoptimisation check to improve performance on modern ARM cores.
...
BUG=none
TEST=none
Review URL: http://codereview.chromium.org//7021007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7909 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-17 10:52:51 +00:00
sgjesse@chromium.org
17c4dc86f0
MIPS: Remove peeophole optimizations from assembler.
...
Following r7854.
BUG=
TEST=
Review URL: http://codereview.chromium.org//7037004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7908 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-17 10:34:02 +00:00
sgjesse@chromium.org
f801756bf8
Submit regexp-macro-assembler-mips.cc.
...
Also includes minor changes to regexp-macro-assembler.h.
Builds, but won't run until mips port submission is complete. Has
been tested externally.
BUG=
TEST=
Review URL: http://codereview.chromium.org//7038004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7907 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-17 10:30:09 +00:00
sgjesse@chromium.org
d1b03ba608
Submit full-codegen-mips.cc.
...
Includes an arch-independent change for FullCodeGenerator::Split()
prototype for mips, which requires two extra parameters.
Compiles, does not run yet. Tested externally.
BUG=
TEST=
Review URL: http://codereview.chromium.org//7019004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7906 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-17 10:24:44 +00:00
sgjesse@chromium.org
35727e4507
Submit stub-cache-mips.cc.
...
Compiles, but not testable until all of mips port is in place. It
has been tested externally.
BUG=
TEST=
Review URL: http://codereview.chromium.org//7038002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7905 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-17 10:07:42 +00:00
danno@chromium.org
7185ec6ca8
Remaining (forgotten) feedback for pixel array deopt fix
...
TBR=kmillikin@chromium.org
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/7019008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7903 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-17 07:22:01 +00:00
rossberg@chromium.org
05fd779dd3
Implement get trap for proxies.
...
TODO: reflective Object methods not handled yet.
BUG=
TEST=
Review URL: http://codereview.chromium.org/7035007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7902 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-16 16:33:58 +00:00
danno@chromium.org
daa1be1226
Support conversion of clamped double values for pixel arrays in Crankshaft.
...
BUG=1313
TEST=test/mjsunit/external-array.js
Review URL: http://codereview.chromium.org/7014033
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7901 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-16 14:10:56 +00:00
vegorov@chromium.org
fbcc2ae6f0
Prepare push to trunk. Now working on version 3.3.8.
...
Review URL: http://codereview.chromium.org/7030012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7896 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-16 11:28:23 +00:00
vegorov@chromium.org
850b106400
Extend GCMole with poor man's data flow analysis to catch dead raw pointer vars.
...
Fix various places in the code found by improved GCMole.
Review URL: http://codereview.chromium.org/6973063
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7895 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-16 09:06:16 +00:00
sgjesse@chromium.org
e90632f417
Submit debug-mips.cc.
...
It compiles, but is not testable until the rest of the mips port
is in place. This has been tested externally.
BUG=
TEST=
Review URL: http://codereview.chromium.org//7032003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7894 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-16 08:59:56 +00:00
sgjesse@chromium.org
7510bffc4b
Submit code-stubs-mips.cc.
...
This submission required a small change to arch-indep code to declare
code stub DirectCEntry for mips.
It also required updates to macro-assembler-mips.cc & h and frames-mips.h.
I also made a small change to frames-mips.cc.
This code submission will compile, but is not testable until the majority
of the mips port is in place. It has been tested externally.
BUG=
TEST=
Review URL: http://codereview.chromium.org//7034008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7893 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-16 08:38:19 +00:00
sgjesse@chromium.org
230a56abda
Limit the number of local variables in a function
...
Review URL: http://codereview.chromium.org//7003030
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7892 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-16 08:27:52 +00:00
svenpanne@chromium.org
fe2074f580
Removed a "feature envy" bad smell: Moved AssumeRepresentation method to where
...
it belongs.
Review URL: http://codereview.chromium.org/7015039
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7890 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-13 13:29:02 +00:00
erik.corry@gmail.com
cfd6e000ea
Fix uninitialized variable recording how much regexp code
...
has been generated.
Review URL: http://codereview.chromium.org/7015040
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7888 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-13 11:10:18 +00:00
rossberg@chromium.org
e14402b1df
A first skeleton for introducing Harmony proxies.
...
1) Add new type JSProxy for representing proxy objects.
Currently devoid of functionality, i.e., all properties are undefined.
2) Some rudimentary global $Proxy functions to create proxies.
Next step: Hook up getProperty and getOwnProperty handlers. Will probably
require introducing a new LookupResult type, which is a mixture of
INTERCEPTOR (handles any property) and CALLBACK (calls back to JS).
Can we unify this somehow?
TODO: Should probably rename existing Proxy type to something like
"Foreign", to avoid confusion.
Review URL: http://codereview.chromium.org/6932068
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7887 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-13 10:58:25 +00:00
svenpanne@chromium.org
edac3d93c2
Remove more dead code.
...
Review URL: http://codereview.chromium.org/7013045
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7885 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-13 09:25:05 +00:00
vitalyr@chromium.org
73c809bb0e
Isolates cleanup: move top.cc to isolate.cc.
...
Review URL: http://codereview.chromium.org/6969042
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7884 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-13 08:54:16 +00:00
svenpanne@chromium.org
ca5dad94a7
Removed dead code (ingenious 3-bit representation of types)
...
Review URL: http://codereview.chromium.org/6973053
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7883 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-13 08:21:50 +00:00
svenpanne@chromium.org
78f4dd1208
Use type feedback for unary minus, improving the performance on e.g. 3d-cube by
...
7.2% and math-cordic by 5.7%.
Review URL: http://codereview.chromium.org/7013025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7882 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-13 08:21:35 +00:00
sgjesse@chromium.org
2838a3c78b
Submit builtins-mips.cc.
...
This code submission will compile, but is not testable until the majority
of the mips port is in place. This has been tested externally.
BUG=
TEST=
Review URL: http://codereview.chromium.org//7013031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7880 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-13 07:27:46 +00:00
ricow@chromium.org
964dbff40d
Only send null or undefined as receiver for es5 natives, not generally
...
for builtin functions.
Review URL: http://codereview.chromium.org/7012012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7879 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-13 07:26:44 +00:00
vitalyr@chromium.org
658e323e87
Micro-optimize passing of args to HasLocalProperty.
...
Review URL: http://codereview.chromium.org/7018001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7878 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-12 16:19:03 +00:00
fschneider@chromium.org
5f29f9bd8e
Don't use environment values at certain deoptimize-instructions.
...
If a HDeoptimize does not cut away parts of the control-flow-graph
we don't need to insert uses to correctly elimiate dead phis since
the full function is visible to the optimizing compiler.
This is a small improvement of the change r7221 which fixed a problem
when deoptimizing on never executed case-clauses.
Review URL: http://codereview.chromium.org/7012010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7877 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-12 14:56:56 +00:00
sgjesse@chromium.org
58161ce6ed
Introduce ic-mips.cc.
...
This code submission will compile, but is not testable until the majority
of the mips port is in place. This has been tested externally.
BUG=
TEST=
Review URL: http://codereview.chromium.org//6973024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7876 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-12 14:48:20 +00:00
karlklose@chromium.org
b606195012
ARM: Fix disasm for strh, vabs, vneg. Add load/store tests.
...
Patch from ARM Ltd.
BUG=none
TEST=added to test/cctest/test-disasm-arm.cc
Original review at http://codereview.chromium.org/7013024/ .
Review URL: http://codereview.chromium.org/7013027
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7875 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-12 14:44:49 +00:00
svenpanne@chromium.org
a3afc9a896
Made the output of the --trace-representation flag a bit more informative and
...
centralized its handling.
Review URL: http://codereview.chromium.org/6969034
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7874 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-12 13:36:49 +00:00
sgjesse@chromium.org
b9c771c106
ARM: Reduce amount of code generated for context save on deopt.
...
BUG=none
TEST=none
Review URL: http://codereview.chromium.org//6930038
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7873 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-12 13:33:14 +00:00
ager@chromium.org
89278730bb
Make the code flushing candidate field explicit in code objects.
...
This way it is counted and the rounding of the size will just work
without extra tweaking if you want to add an extra field to code
objects.
R=vegorov@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/6969037
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7872 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-12 13:13:00 +00:00
vitalyr@chromium.org
bc52ed0850
Extend the fast case of HasLocalProperty.
...
Review URL: http://codereview.chromium.org/7016016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7871 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-12 12:48:10 +00:00
svenpanne@chromium.org
db563ed204
Fixed TypeFeedbackOracle for unary operations: Record code for the corresponding
...
type recording IC.
Review URL: http://codereview.chromium.org/6973025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7870 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-12 08:54:13 +00:00
sgjesse@chromium.org
4e18d50834
Add constant splitting for user controlled constants in the full compiler
...
This is IA32 only for now.
Added a random value to each assembler instance (JIT cookie) to be used for constant splitting. Added safe versions of setting a register with an immediate value and for pushing an immediate value. Used these functions where user controlled immediate values could be emitted in the code stream. I also used it for immediates which are an argument number even though the number of formal arguments is currently limited to 16k.
I found no compares directly with user controlled constants.
I am not sure whether the test is that useful, but it might catch some changes missing constant splitting.
Review URL: http://codereview.chromium.org//7005031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7868 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-11 14:16:24 +00:00
vitalyr@chromium.org
26bf1dfd4a
Kill some dead code.
...
Review URL: http://codereview.chromium.org/6995048
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7867 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-11 13:45:30 +00:00
fschneider@chromium.org
48077e89e9
Remove support for branch hints from the IA32 and X64 assembler.
...
They were not on by default and should not be needed on modern
platforms.
Review URL: http://codereview.chromium.org/7001025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7866 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-11 13:26:07 +00:00