ager@chromium.org [Mon, 19 Jul 2010 09:51:33 +0000 (09:51 +0000)]
Landing for hans@chromium.org.
TYPE_CHECK in v8.h should assign to volatile qualified null-pointer.
Unless the pointer is volatile qualified, Clang will warn that LLVM
removes the assignment during optimization. This is not a problem as
that code should never execute, but the warning is treated as an error
when building Chromium, and thus stops the build.
Code review URL: http://codereview.chromium.org/3005010/show
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5093
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Mon, 19 Jul 2010 07:33:05 +0000 (07:33 +0000)]
Prepare push to trunk. Now working on version 2.3.2.
Review URL: http://codereview.chromium.org/2811055
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5090
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Mon, 19 Jul 2010 06:29:30 +0000 (06:29 +0000)]
Reorder SharedFunctionInfo setup in lazy compile, quick fix for crbug.com/49099
This fixes issue 49099 (http://crbug.com/49099) that makes chromium
crash if a gc is triggered by setting the scopeinfo in CompileLazy. If
this gc triggers code flushing the compiled function could be flushed,
causing the ASSERT(shared->is_compiled()) to fail. By reordering the
two methods we make sure that no allocation happens before the end of
the method.
Review URL: http://codereview.chromium.org/3035006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5089
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Fri, 16 Jul 2010 11:21:08 +0000 (11:21 +0000)]
Refactor type checks in v8natives.js and runtime.js.
This includes adding a new inline IsSpecObject method to the code
generator. The old approach was somehow ineffecient since we would
call both IsObject, IsUndetectable and IsFunction to determine if
something was an object according to the spec. This change introduces
a new macro that determines if something is an object according to the
spec (and this does not include null).
This change also corrects a few places where undetectable objects was
not allowed even when they should be (priorly they would use only
IS_SPEC_OBJECT_OR_NULL, which would return false on an undetectable
object, the new IS_SPEC_OBJECT returns true on an undetectable object.
Review URL: http://codereview.chromium.org/2877018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5087
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
serya@chromium.org [Fri, 16 Jul 2010 10:07:57 +0000 (10:07 +0000)]
StringDictionary::FindEntry optimized for symbol strings.
Review URL: http://codereview.chromium.org/3020003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5086
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Fri, 16 Jul 2010 08:20:39 +0000 (08:20 +0000)]
Fix compilation errors on X64. Error from r5080 is constructor Operand(register) with too few arguments, while constructing a dummy return value in unreachable code to avoid compiler errors. Also added explicit cast from intptr_t to int in profile-generator.cc to avoid compiler warnings, introduced in r5078.
Review URL: http://codereview.chromium.org/3030002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5084
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Thu, 15 Jul 2010 15:41:05 +0000 (15:41 +0000)]
Fix TestHeapEntryIdsAndGC test. The assert was wrong.
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/2861051
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5082
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Thu, 15 Jul 2010 15:01:42 +0000 (15:01 +0000)]
Fix presubmit errors in test-heap-profiler.cc
I tried adding CheckNonEqualsHelper for int64_t, but this causes
another avalanche of function resolving ambuguities. So, I ended
up fooling linter.
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/3024001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5081
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Thu, 15 Jul 2010 14:31:49 +0000 (14:31 +0000)]
Remove unnecessary formatting differences between ia32 and x64 code generators. Mainly just typographical changes.
Review URL: http://codereview.chromium.org/3023001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5080
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Thu, 15 Jul 2010 14:28:52 +0000 (14:28 +0000)]
Fix compile errors on Linux x64 and Windows.
Will fix test-heap-profiler in the next change.
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/2877019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5079
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Thu, 15 Jul 2010 13:21:50 +0000 (13:21 +0000)]
Heap profiler: implement diffing of snapshots.
To trace objects between snapshots, an external map of object tags is
maintained. After the first heap snapshot has been taken, the map is
updated by reporting object moves from the GC. If no snapshots were
taken, there is no overhead (except for flag checking).
I considered graph comparison algorithms that doesn't require using
object tags, but they are all of a high computational complexity, and
will still fail to detect object moves properly, even for trivial
cases, so using tags looks like unavoidable.
Review URL: http://codereview.chromium.org/3020002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5078
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Thu, 15 Jul 2010 10:34:08 +0000 (10:34 +0000)]
Avoid a smi check when comparing an unknown to a constant smi for equality on ia32 and x64 platforms.
Review URL: http://codereview.chromium.org/2897013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5077
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Thu, 15 Jul 2010 10:31:30 +0000 (10:31 +0000)]
Fix compilation and linking with V8_INTERPRETED_REGEXP flag.
Review URL: http://codereview.chromium.org/2836051
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5076
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Thu, 15 Jul 2010 08:50:01 +0000 (08:50 +0000)]
Prepare push to trunk. Now working on version 2.3.1.
Review URL: http://codereview.chromium.org/2805081
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5073
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Thu, 15 Jul 2010 07:51:14 +0000 (07:51 +0000)]
Implement ES5 Object.seal and Object.isSealed.
This change adds the ES5 Object.seal 15.2.3.8 and Object.isSealed 15.2.3.11 methods.
Review URL: http://codereview.chromium.org/2993006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5072
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
serya@chromium.org [Thu, 15 Jul 2010 06:17:45 +0000 (06:17 +0000)]
Fix GenerateNegativeLookup to work with non-symbols as a dictionary key.
Review URL: http://codereview.chromium.org/2928009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5071
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Wed, 14 Jul 2010 13:22:47 +0000 (13:22 +0000)]
Fix error in x64 fast smi loops, change 4998.
Review URL: http://codereview.chromium.org/2925012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5069
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Wed, 14 Jul 2010 13:15:43 +0000 (13:15 +0000)]
Fix bug in Object.isFrozen which always classifies non-extensible objects as frozen.
Since out internal representation of a property descriptor does not have configurable and writable
attributes Object.isFrozen returns true whenever an object is not extensible.
This change makes use of the right method calls on our internal representation (isWritable() and
isConfigurable()). Tests added directly to the mjsunit test.
Review URL: http://codereview.chromium.org/2904015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5068
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kaznacheev@chromium.org [Wed, 14 Jul 2010 11:18:09 +0000 (11:18 +0000)]
Create a separate class to encapsulate ScopeInfo serialization.
The static ScopeInfo members moved into this class.
The new class is named ScopeInfoObject which I am not proud of,
better ideas are very welcome.
Also got rid of the sentinels in the serialized scope info which saves 3 words per function
and is not slower.
Review URL: http://codereview.chromium.org/2908009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5067
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Wed, 14 Jul 2010 09:45:08 +0000 (09:45 +0000)]
Remove check for heap allocated locals from code flushing.
Since bleeding edge revision 5056 we no longer need to check that
there are no heap allocated locals in the scope info, since these will
be preserved after the scope info was moved to the SharedFunctionInfo
class.
Review URL: http://codereview.chromium.org/2931016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5066
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Wed, 14 Jul 2010 08:23:35 +0000 (08:23 +0000)]
Debugger: introduce parametrized debug break, the parameter is passed
back to EventListener to be able to dynamically specify behavior
on asynchronously enforced VM breakouts.
Review URL: http://codereview.chromium.org/2962007/show
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5063
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Tue, 13 Jul 2010 20:54:06 +0000 (20:54 +0000)]
Landing for Rodolph Perfetta.
Allow compareStub on ARM to take register in reverse order optionally.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/2850046/show
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5059
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Tue, 13 Jul 2010 20:24:16 +0000 (20:24 +0000)]
Prepare push to trunk. Now working on version 2.3.0.
Review URL: http://codereview.chromium.org/2981005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5058
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kaznacheev@chromium.org [Tue, 13 Jul 2010 13:06:33 +0000 (13:06 +0000)]
Move serialized scope info from Code object to SharedFunctionInfo.
The scope info is now stored in a FixedArray referenced from SharedFunctionInfo.
Review URL: http://codereview.chromium.org/2918001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5056
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Tue, 13 Jul 2010 12:58:02 +0000 (12:58 +0000)]
Add ES5 Object.freeze and Object.isFrozen methods.
This change adds ES5 15.2.3.9 Object.freeze and
15.2.3.12 Object.isFrozen
Review URL: http://codereview.chromium.org/2944016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5055
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Tue, 13 Jul 2010 11:38:30 +0000 (11:38 +0000)]
Fix presubmit.
Review URL: http://codereview.chromium.org/2974008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5053
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Tue, 13 Jul 2010 11:31:47 +0000 (11:31 +0000)]
Fix memory leaks in test-api.cc to make valgrind happy.
The memory leaks are all from the tests, not actually in V8.
I will put a nightly valgrind run on the fuzzer.
Review URL: http://codereview.chromium.org/2944015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5052
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Tue, 13 Jul 2010 10:57:45 +0000 (10:57 +0000)]
Fix JSON.parse typo which causes the input not to be string converted.
Review URL: http://codereview.chromium.org/2981004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5051
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Tue, 13 Jul 2010 10:29:31 +0000 (10:29 +0000)]
Fix preparsing from a source string that is not external.
This fixes issue 775.
Review URL: http://codereview.chromium.org/2959007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5050
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
serya@chromium.org [Tue, 13 Jul 2010 10:02:11 +0000 (10:02 +0000)]
Simplifying GenerateDictionaryNegativeLookup by making the 'extra' parameter mandatory.
Review URL: http://codereview.chromium.org/2982001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5049
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Tue, 13 Jul 2010 08:55:06 +0000 (08:55 +0000)]
Fix compilation error on 64-bit MacOS V8 compilation. ASSERT_EQ macro needs unambiguous similar integer types as arguments.
Review URL: http://codereview.chromium.org/2982005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5048
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Tue, 13 Jul 2010 08:05:10 +0000 (08:05 +0000)]
Virtually dispatched scavengers
Use virtually dispatched specialized scavengers instead of single generic ScavengeObjectSlow implementation.
Rollback of r5041 with assertion checking callback alignment removed. Map space is iterated in a special fashion during scavenges so special callback alignment is not required.
Review URL: http://codereview.chromium.org/2950003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5047
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Mon, 12 Jul 2010 16:57:07 +0000 (16:57 +0000)]
Revert revisions 5041 and 5042 introducing virtual scavenge
behavior. It breaks debug builds with snapshots on my machine.
TBR=vegorov@chromium.org
Review URL: http://codereview.chromium.org/2983001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5046
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Mon, 12 Jul 2010 15:29:25 +0000 (15:29 +0000)]
Remove the special error message for overflows when using
Function.prototype.apply. This avoids having more than one error
message for stack overflow situations which makes testing a pain.
Review URL: http://codereview.chromium.org/2967003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5045
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
serya@chromium.org [Mon, 12 Jul 2010 13:23:42 +0000 (13:23 +0000)]
Port prototype-call-stubs for normal objects (codereview.chromium.org/2801018).
Review URL: http://codereview.chromium.org/2860049
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5044
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yurys@chromium.org [Mon, 12 Jul 2010 13:17:27 +0000 (13:17 +0000)]
Allow to capture stack trace for uncaught exceptions
Review URL: http://codereview.chromium.org/2961003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5043
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Mon, 12 Jul 2010 13:11:42 +0000 (13:11 +0000)]
Fix Win64 build problem introduced by r5041.
Review URL: http://codereview.chromium.org/2893009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5042
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Mon, 12 Jul 2010 12:47:09 +0000 (12:47 +0000)]
Use virtually dispatched specialized scavengers instead of single generic ScavengeObjectSlow implementation.
Review URL: http://codereview.chromium.org/2895008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5041
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Fri, 9 Jul 2010 13:20:12 +0000 (13:20 +0000)]
Code cleanup: reorder functions in codegen-x64.cc to agree with the order in codegen-ia32.cc. If svn blame shows this change, run svn blame on the previous version of the file to find the actual author of the lines.
Review URL: http://codereview.chromium.org/2955004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5040
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Thu, 8 Jul 2010 13:50:13 +0000 (13:50 +0000)]
Second half of number alloc change accidentally omitted from
last change.
Review URL: http://codereview.chromium.org/2919001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5039
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Thu, 8 Jul 2010 13:16:51 +0000 (13:16 +0000)]
Add number allocation call to runtime.cc instead of misusing
UnaryMinus.
Review URL: http://codereview.chromium.org/2899004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5038
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Thu, 8 Jul 2010 12:38:02 +0000 (12:38 +0000)]
ARM: Add support for the VFP mov literal instruction and mov
between single VFP registers. Math.pow implementation has
been updated with the new instructions. This is a commit
of http://codereview.chromium.org/2813046/show for Rodolph
Perfetta.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5037
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Thu, 8 Jul 2010 08:12:17 +0000 (08:12 +0000)]
Add ReleaseStore function on OpenBSD.
Review URL: http://codereview.chromium.org/2916001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5036
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Thu, 8 Jul 2010 08:00:38 +0000 (08:00 +0000)]
Fix concurrent access to VMState::current_state_.
The main fix is for current_state() and external_callback() accessors.
I also applied memory access ordering on current_state_ modification,
mainly to reflect the fact that it is being shared among VM and profiler
sampler threads.
BUG=361
Review URL: http://codereview.chromium.org/2852047
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5035
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Wed, 7 Jul 2010 12:09:22 +0000 (12:09 +0000)]
Prepare push to trunk. We are now working on version 2.2.24.
Review URL: http://codereview.chromium.org/2887011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5032
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Wed, 7 Jul 2010 11:31:33 +0000 (11:31 +0000)]
Test for correct exception message in invalid preparse data test in test-api.cc
Review URL: http://codereview.chromium.org/2829049
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5031
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Wed, 7 Jul 2010 10:28:22 +0000 (10:28 +0000)]
Prevent invalid pre-parsing data passed in through the API from crashing V8.
Review URL: http://codereview.chromium.org/2876046
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5030
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kaznacheev@chromium.org [Tue, 6 Jul 2010 13:48:51 +0000 (13:48 +0000)]
Fix crash introduced in r5019.
Note to self: never leave uninitialized objects in the code space.
Review URL: http://codereview.chromium.org/2800044
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5029
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Tue, 6 Jul 2010 13:43:21 +0000 (13:43 +0000)]
Make lint happy.
Review URL: http://codereview.chromium.org/2832051
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5028
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Tue, 6 Jul 2010 12:57:46 +0000 (12:57 +0000)]
Remove some extra calls in date.js.
A few hot Date.prototype functions used to be implemented as
DateGetFoo calling GetFooFrom(this), and other callers of GetFooFrom
did repeated date value extraction. In this change GetFooFrom
functions were inlined into the functions on the prototype and the
other callers switched to using date values directly.
Review URL: http://codereview.chromium.org/2841041
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5027
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Tue, 6 Jul 2010 12:56:55 +0000 (12:56 +0000)]
Simplify the transitions in the Binary Op ICs. Now a single call
to the runtime will both patch in the more specialized binary op
stub and calculate the answer. This eliminates the need to call
both the rest of the binary op and the patching runtime call. The
runtime routines are altered to be more agressive in returning
Smis so we don't get spurious heap numbers as inputs to binary ops
while we are patching the binary op ICs.
Review URL: http://codereview.chromium.org/2843049
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5026
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Tue, 6 Jul 2010 12:22:19 +0000 (12:22 +0000)]
Fix crash: handle all flat string types in regexp replace.
Review URL: http://codereview.chromium.org/2868046
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5025
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
podivilov@chromium.org [Tue, 6 Jul 2010 12:10:49 +0000 (12:10 +0000)]
Do not create handle in BreakLocationIterator::ClearDebugBreakAtIC
Debug::HandleWeakDebugInfo weak callback is crashed when there is no handle scopes on the stack.
Review URL: http://codereview.chromium.org/2835035
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5024
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Tue, 6 Jul 2010 07:31:35 +0000 (07:31 +0000)]
Convert Unicode code points outside the basic multilingual plane to the replacement character.
Previous behavior was to silently truncate the value to 16 bits.
Review URL: http://codereview.chromium.org/2832050
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5023
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Mon, 5 Jul 2010 14:28:37 +0000 (14:28 +0000)]
JS2C tweaks:
o Only substitute constant values for full-words and not for
accidental partial matches.
o Keep the order of macros as in macros.py and allow depending on the
previous macros. We used to allow depending on macros that
happened to sort after the current one in the dictionary.
Review URL: http://codereview.chromium.org/2800042
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5022
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Mon, 5 Jul 2010 12:49:00 +0000 (12:49 +0000)]
RegExp replace with empty string optimization by Sandholm.
Review URL: http://codereview.chromium.org/2809048
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5021
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kaznacheev@chromium.org [Mon, 5 Jul 2010 11:45:11 +0000 (11:45 +0000)]
Extracting relocation info from the code object.
It is now stored in a ByteArray referenced from the code object header.
Review URL: http://codereview.chromium.org/2812041
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5020
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Mon, 5 Jul 2010 11:03:16 +0000 (11:03 +0000)]
Specialize GenericUnaryStub so that it knows whether it needs to
take negative zero into account.
Review URL: http://codereview.chromium.org/2850043
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5018
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Mon, 5 Jul 2010 10:33:20 +0000 (10:33 +0000)]
Prepare push to trunk. Now working on version 2.2.23.
Review URL: http://codereview.chromium.org/2827046
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5016
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
peter.rybin@gmail.com [Fri, 2 Jul 2010 20:46:04 +0000 (20:46 +0000)]
Describe LiveEdit changes and support preview mode
Review URL: http://codereview.chromium.org/2883020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5015
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Fri, 2 Jul 2010 20:24:40 +0000 (20:24 +0000)]
Make ignore-negative-zeros analysis a little sharper.
Review URL: http://codereview.chromium.org/2799048
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5014
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Fri, 2 Jul 2010 20:09:33 +0000 (20:09 +0000)]
Fix bug in date code (issue 736) where -0 was not mapped to 0. This caused the
runtime system to throw an exception because it expected smi arguments.
Review URL: http://codereview.chromium.org/2848038
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5013
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Fri, 2 Jul 2010 20:03:07 +0000 (20:03 +0000)]
ARM: Use VFP for non-Smi bitops results. This is basically Rodolph
Perfettas change from http://codereview.chromium.org/2829032 with
a tiny tweak to the unsigned shift right case.
Review URL: http://codereview.chromium.org/2861043
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5012
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Fri, 2 Jul 2010 14:36:34 +0000 (14:36 +0000)]
Add ES5 Object.isExtensible and Object.preventExtensions.
Review URL: http://codereview.chromium.org/2819034
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5011
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
serya@chromium.org [Fri, 2 Jul 2010 14:15:04 +0000 (14:15 +0000)]
This change allows generating call-stubs for objects with normal (non-fast) objects in the prototype chain. StubCompiler::CheckPrototypes does ne
If the top level object is a normal object the stub is stored in its prototype map.
Lookup result of type NORMAL is not covered (since the normal stub currently doesn't check the prototype chain).
Review URL: http://codereview.chromium.org/2801018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5010
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Fri, 2 Jul 2010 14:09:35 +0000 (14:09 +0000)]
X64: Added register holding Smi::FromInt(1).
Don't use r15 for anything any more.
Review URL: http://codereview.chromium.org/2885018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5009
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Fri, 2 Jul 2010 11:27:57 +0000 (11:27 +0000)]
Use the number of in-object properties when deciding how many fast
properties to allow on an object. If there are many in-object
properties it is unlikely that the object is used as a dictionary and
we allow more map transitions to keep such objects in fast case.
Review URL: http://codereview.chromium.org/2818041
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5008
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Fri, 2 Jul 2010 08:42:22 +0000 (08:42 +0000)]
Simplify ToBoolean if we know we have a Smi.
Review URL: http://codereview.chromium.org/2808039
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5007
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Fri, 2 Jul 2010 07:39:42 +0000 (07:39 +0000)]
Landing for victorw@chromium.org.
Fix issues so v8 could be built as a DLL.
-. get rid of all the compiler warning by moving dllexport/dllimport
to the individual members for classes which have inline members.
-. update v8 gyp to build v8.dll for chromium multi-dll version (win
and component==shared_library)
Note: most of the code are contributed by sjesse.
Code review URL: http://codereview.chromium.org/2882009/show
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5006
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Thu, 1 Jul 2010 16:00:51 +0000 (16:00 +0000)]
Fix problem in r4998. Initialize target of break and continue in fast smi loop on X64.
Review URL: http://codereview.chromium.org/2830033
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5001
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Thu, 1 Jul 2010 15:18:07 +0000 (15:18 +0000)]
Let relational comparison operators quickly compare a string with itself.
Review URL: http://codereview.chromium.org/2802028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5000
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Thu, 1 Jul 2010 15:06:24 +0000 (15:06 +0000)]
ARM: Don't emit a write barrier for an inlined keyed load
if the right hand side is a literal like true, false, etc.
Also if the value is not a likely Smi we inline the newspace
check.
Review URL: http://codereview.chromium.org/2833048
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4999
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Thu, 1 Jul 2010 13:19:32 +0000 (13:19 +0000)]
X64: Made simpler version of fast-smi-loop code.
It avoids the overflow check on the increment.
Review URL: http://codereview.chromium.org/2835030
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4998
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
podivilov@chromium.org [Thu, 1 Jul 2010 11:48:45 +0000 (11:48 +0000)]
Clear function breakpoints in Debug::HandleWeakDebugInfo callback.
When removing debug_info from SharedFunctionInfo, clear all breakpoints associated with that debug_info.
This is needed because function will live in heap until next gc, and therefore can be found
by Runtime::FindSharedFunctionInfoInScript.
Review URL: http://codereview.chromium.org/2848032
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4997
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
peter.rybin@gmail.com [Wed, 30 Jun 2010 17:29:00 +0000 (17:29 +0000)]
LiveEdit: Support debug break slots in frame dropping implementation
Review URL: http://codereview.chromium.org/2844030
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4995
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 30 Jun 2010 15:19:06 +0000 (15:19 +0000)]
ARM: Correctness fix to Math.pow optimization
The change in r4990 contained a bug in Math.pow when then exponent was a large negative smi. In that case calculating 1/Math.pow(x,-y) did not provide the correct result as Math.pow(x,-y) would overflow ti infinity. This was caught by Sputnik test S8.5_A13_T1.
Review URL: http://codereview.chromium.org/2815039
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4994
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 30 Jun 2010 13:39:03 +0000 (13:39 +0000)]
ARM: Fix GC bug with previous change
The change in r4990 contained a bug in Math.pow. One of the arguments for the call to runtime where clobbered if allocation of the heap number for the result failed.
Caught by a couple of Mozilla tests which does a lot of calls to Math.pow.
Fix presubmit error in x64.
Review URL: http://codereview.chromium.org/2847037
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4993
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Wed, 30 Jun 2010 13:24:47 +0000 (13:24 +0000)]
Decide that different detectable objects are not equal without calling runtime, on all platforms.
Review URL: http://codereview.chromium.org/2805046
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4992
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Wed, 30 Jun 2010 12:27:49 +0000 (12:27 +0000)]
Implement IC for storing to dictionary case objects.
The IC stub is completely generic, so there will only be one such stub
in the system.
Added a new overloaded version of the macro assembler RecordWrite
method for cases where we have the address we store to computed up
front.
Review URL: http://codereview.chromium.org/2804029
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4991
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 30 Jun 2010 12:22:15 +0000 (12:22 +0000)]
ARM: Special code for raising to the power of an integer
When calculating Math.pow where the exponent is a smi use a simple loop to calculate the result.
Added support for the vmov instruction moving from one doubleword extension register to another.
Added some Math.pow tests which partially covers what is in the Sputnik tests.
Review URL: http://codereview.chromium.org/2804033
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4990
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Wed, 30 Jun 2010 08:57:23 +0000 (08:57 +0000)]
Prepare push to trunk. We are now working on version 2.2.22.
Review URL: http://codereview.chromium.org/2886005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4987
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 30 Jun 2010 08:46:19 +0000 (08:46 +0000)]
ARM: Fix disassembly of double registers
Added a few disassembler tests for vadd, vsub, vmul and vdiv.
Review URL: http://codereview.chromium.org/2823036
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4986
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Wed, 30 Jun 2010 07:40:40 +0000 (07:40 +0000)]
Fix Chromium issue 47824.
In rare cases a two-byte string was mistaken for an ascii-string.
Review URL: http://codereview.chromium.org/2858033
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4985
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Wed, 30 Jun 2010 06:51:38 +0000 (06:51 +0000)]
Update the mozilla tests to the newest version.
This includes an update to the test expectations, and a new bug found
when investigating the new failures introduced by the updated tests
(http://code.google.com/p/v8/issues/detail?id=762)
Review URL: http://codereview.chromium.org/2838030
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4984
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Tue, 29 Jun 2010 14:15:34 +0000 (14:15 +0000)]
X64: Make the ToBoolean inline code do even less if the value is known to be a smi.
Review URL: http://codereview.chromium.org/2834028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4978
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Tue, 29 Jun 2010 14:03:11 +0000 (14:03 +0000)]
X64: A number of small tweaks.
Fix bug in disassembler output (using non-generic registers for memory operands in some cases).
Fix bug in movsxbq and make REX optional in movzx?q.
Review URL: http://codereview.chromium.org/2834027
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4977
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Tue, 29 Jun 2010 13:48:20 +0000 (13:48 +0000)]
Type info: fix three bit representation of smi type.
Review URL: http://codereview.chromium.org/2802022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4976
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Tue, 29 Jun 2010 11:30:34 +0000 (11:30 +0000)]
tools/stats-viewer.py: add counter filter.
Review URL: http://codereview.chromium.org/2838028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4975
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 29 Jun 2010 09:40:36 +0000 (09:40 +0000)]
ARM: Use the vsqrt instruction when available
vsqrt is used to calculate Math.sqrt(x), Math.pow(x, 0.5) and Math.pow(x, -0.5). Code size doesn't matter, as %_MathSqrt and %_MathPow are only called in one place each.
Review URL: http://codereview.chromium.org/2885002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4974
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Tue, 29 Jun 2010 09:00:20 +0000 (09:00 +0000)]
Even more cleanup of es5 test expectations.
Removed expectations for tests that was removed in the latest
revision. Also changed FAIL_OK to FAIL for test that we should
implement but currently don't (thanks to lasse for noticing this).
Review URL: http://codereview.chromium.org/2827033
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4973
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Tue, 29 Jun 2010 07:22:40 +0000 (07:22 +0000)]
Update JSON.stringify to floor the space parameter (fixes issue 753).
Review URL: http://codereview.chromium.org/2877004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4972
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Tue, 29 Jun 2010 06:47:19 +0000 (06:47 +0000)]
Ensure that ToPrimitive is called on all objects involved in comparisons <, <=, >, >=. Ensures that ToPrimitive is called when comparing an object to undefined. Fixes bugs on all platforms.
Review URL: http://codereview.chromium.org/2834022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4971
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Tue, 29 Jun 2010 05:56:15 +0000 (05:56 +0000)]
Update the ES5 conformance tests to the latest version and fix test
expectations.
We are currently using a rather old version of the ES5 conformance
tests and there has been a range of bug fixes in the test set. This
change brings us up to date.
In addition, our current test expectations discards the all chapters
but chapter 15. I have enabled the other chapters, cleaned up the
tests that we no longer fail on, and filed bugs for tests that we fail on.
It seems some of the bugs on the es5 conformance bug-tracker has been
fixed but not marked fixed. I will file bugs for the newly discovered
test bugs.
Review URL: http://codereview.chromium.org/2840023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4970
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Mon, 28 Jun 2010 12:28:37 +0000 (12:28 +0000)]
Update the V8 benchmark suite with the following fixes:
*) Fix a couple of typos in DeltaBlue.
*) Make sure Splay doesn't always remove the node just added.
*) Run all benchmarks for at least 32 times (and warm up).
Review URL: http://codereview.chromium.org/2836031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4966
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
podivilov@chromium.org [Mon, 28 Jun 2010 12:09:29 +0000 (12:09 +0000)]
Provide actual breakpoints locations in response to setBreakpoint and listBreakpoints requests.
Review URL: http://codereview.chromium.org/2799037
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4965
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Mon, 28 Jun 2010 11:47:23 +0000 (11:47 +0000)]
Do integer mod via sum-of-digits technique. This benefits the date
code.
Review URL: http://codereview.chromium.org/2876011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4964
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Mon, 28 Jun 2010 11:17:55 +0000 (11:17 +0000)]
Prepare push to trunk. We are now working on version 2.2.21.
Review URL: http://codereview.chromium.org/2882002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4961
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Mon, 28 Jun 2010 10:54:07 +0000 (10:54 +0000)]
Remove not-both-smis optimization on FloatingPointHelper::LoadNumbersAsIntegers on X64 platform.
Review URL: http://codereview.chromium.org/2861031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4960
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yurys@chromium.org [Mon, 28 Jun 2010 09:25:09 +0000 (09:25 +0000)]
Fix 15.2.3.4 es5conform test
TBR=mnaganov,sgjesse
Review URL: http://codereview.chromium.org/2832029
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4959
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yurys@chromium.org [Mon, 28 Jun 2010 08:31:31 +0000 (08:31 +0000)]
Object.getOwnPropertyNames should be free of duplicates
BUG=41243
Review URL: http://codereview.chromium.org/2825026
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4958
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00