mstarzinger@chromium.org [Thu, 1 Mar 2012 11:10:28 +0000 (11:10 +0000)]
Implement inlined object allocation in Crankshaft.
Generates inlined code for object allocation specific to the initial map
of the given constructor function. Also forces completion of inobject
slack tracking while crankshafting to finalize instance size of these
objects.
R=vegorov@chromium.org
TEST=mjsunit/compiler/alloc-object
Review URL: https://chromiumcodereview.appspot.com/
9370019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10881
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Wed, 29 Feb 2012 15:41:07 +0000 (15:41 +0000)]
Prepare push to trunk. Now working on version 3.9.14.
R=jkummerow@chromium.org
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/
9535010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10874
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Wed, 29 Feb 2012 15:08:02 +0000 (15:08 +0000)]
Profiler experiments: prevent self-optimization for V8 Extensions
Review URL: https://chromiumcodereview.appspot.com/
9535006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10873
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Wed, 29 Feb 2012 14:38:54 +0000 (14:38 +0000)]
Fix stub cache on ARM, broken in 10864.
Review URL: https://chromiumcodereview.appspot.com/
9539010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10872
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Wed, 29 Feb 2012 14:25:24 +0000 (14:25 +0000)]
Inline one level of recursive call of WriteToFlat for the common case of cons string list.
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/
9536011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10871
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Wed, 29 Feb 2012 13:41:18 +0000 (13:41 +0000)]
Eliminate overflow check after integer add and sub operation if result is truncated to int32.
Review URL: https://chromiumcodereview.appspot.com/
9286002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10870
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Wed, 29 Feb 2012 13:31:10 +0000 (13:31 +0000)]
Change test262 test expectations regarding inaccurate Math functions.
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/
9533007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10869
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Wed, 29 Feb 2012 13:29:17 +0000 (13:29 +0000)]
Revert "Handle CALLBACKS correctly in IsProperty functions."
This reverts r10847.
Review URL: https://chromiumcodereview.appspot.com/
9536010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10868
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Wed, 29 Feb 2012 12:49:44 +0000 (12:49 +0000)]
Rewrite test CHECK to work on all platforms, including MIPS
R=jkummerow@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
9536005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10867
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Wed, 29 Feb 2012 12:12:52 +0000 (12:12 +0000)]
AST extensions and parsing for import & export declarations.
R=jkummerow@chromium.org
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/
9496003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10866
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Wed, 29 Feb 2012 12:05:58 +0000 (12:05 +0000)]
MIPS: Support fast case for-in in Crankshaft.
Port r10794 (
654fe910).
Original commit message:
Only JSObject enumerables with enum cache (fast case properties, no interceptors, no enumerable properties on the prototype) are supported.
HLoadKeyedGeneric with keys produced by for-in enumeration are recognized and rewritten into direct property load by index. For this enum-cache was extended to store property indices in a separate array (see handles.cc).
New hydrogen instructions:
- HForInPrepareMap: checks for-in fast case preconditions and returns map that contains enum-cache;
- HForInCacheArray: extracts enum-cache array from the map;
- HCheckMapValue: map check with HValue map instead of immediate;
- HLoadFieldByIndex: load fast property by it's index, positive indexes denote in-object properties, negative - out of object properties;
Changed hydrogen instructions:
- HLoadKeyedFastElement: added hole check suppression for loads from internal FixedArrays that are knows to have no holes inside.
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/
9453009
Patch from Daniel Kalmar <kalmard@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10865
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Wed, 29 Feb 2012 10:45:59 +0000 (10:45 +0000)]
Fix secondary stub cache and add a test for the stub cache lookups.
Review URL: https://chromiumcodereview.appspot.com/
9496010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10864
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Wed, 29 Feb 2012 09:53:59 +0000 (09:53 +0000)]
MIPS: Pass zone explicitly to zone-allocation on x64 and ARM.
Port r10857 (
87e52e7).
Original commit message:
This is a very mechanical change to reduce the number of calls to
Isolate::Current that come with every plain new-allocation.
BUG=
TEST=
Patch from Daniel Kalmar <kalmard@homejinni.com>.
Review URL: https://chromiumcodereview.appspot.com/
9511003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10863
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Wed, 29 Feb 2012 09:48:03 +0000 (09:48 +0000)]
MIPS: Implement inlining of constructor calls.
Port r10849 (
b0fe79c).
Also included: Fixed a bug in GenerateRecordCallTarget.
This bug prevented certain functions from being registered as Monomorphic
and thus prevented them from being inlined using the new system (
b0fe79c).
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/
9511002
Patch from Daniel Kalmar <kalmard@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10862
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Tue, 28 Feb 2012 18:26:04 +0000 (18:26 +0000)]
Do not call memset() to initialize StubCache.
Review URL: https://chromiumcodereview.appspot.com/
9464054
Patch from Iliyan Malchev <malchev@google.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10861
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Tue, 28 Feb 2012 15:32:58 +0000 (15:32 +0000)]
Explicitly use a Zone when allocating Range.
This CL is a step towards removing ZoneObject's new operator without a Zone
parameter, which uses Isolate::Current. For e.g. the bulletben benchmark, this
CL reduces the number of calls to this new operator by roughly 120k, but we are
still left with 780k calls from other sites...
Review URL: https://chromiumcodereview.appspot.com/
9487010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10860
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Tue, 28 Feb 2012 15:32:06 +0000 (15:32 +0000)]
Thread isolate through Property constructor, avoiding Isolate::Current.
This removes roughly 5k invocations of Isolate::Current from the string-tagcloud
benchmark.
Review URL: https://chromiumcodereview.appspot.com/
9490009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10859
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Tue, 28 Feb 2012 12:59:00 +0000 (12:59 +0000)]
Add code kind check before preparing for OSR.
BUG=v8:1900, 115073
Review URL: https://chromiumcodereview.appspot.com/
9495005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10858
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Tue, 28 Feb 2012 10:53:13 +0000 (10:53 +0000)]
Pass zone explicitly to zone-allocation on x64 and ARM.
This is a very mechanical change to reduce the number of calls to
Isolate::Current that come with every plain new-allocation.
BUG=v8:1802
Review URL: https://chromiumcodereview.appspot.com/
9491004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10857
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Tue, 28 Feb 2012 10:32:02 +0000 (10:32 +0000)]
Thread the current isolate through a few places, avoiding Isolate::Current().
This removes approx. 12k calls of Isolate::Current() in string-tagcloud.
Review URL: https://chromiumcodereview.appspot.com/
9490004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10856
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Tue, 28 Feb 2012 10:20:57 +0000 (10:20 +0000)]
Port string construct stub to x64.
R=yangguo@chromium.org
BUG=v8:849
Review URL: https://chromiumcodereview.appspot.com/
9491005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10855
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Tue, 28 Feb 2012 10:12:39 +0000 (10:12 +0000)]
Further refactoring of declarations in the AST:
Define modules as module declarations.
Separate function declarations from var declarations.
R=jkummerow@chromium.org
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/
9460064
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10854
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Tue, 28 Feb 2012 09:45:17 +0000 (09:45 +0000)]
Prepare push to trunk. Now working on version 3.9.13.
R=yangguo@chromium.org
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/
9495004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10851
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Tue, 28 Feb 2012 09:38:16 +0000 (09:38 +0000)]
Fix presubmit errors in previous revision.
R=ulan@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
9495003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10850
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Tue, 28 Feb 2012 09:05:55 +0000 (09:05 +0000)]
Implement inlining of constructor calls.
R=vegorov@chromium.org,kmillikin@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
9304001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10849
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Tue, 28 Feb 2012 08:32:44 +0000 (08:32 +0000)]
Fix the negative lookup stub to handle deleted entries in a
dictionary. This fixes http://code.google.com/p/v8/issues/detail?id=1964
"Closure-uri benchmark is sensitive to hash seed".
Review URL: https://chromiumcodereview.appspot.com/
9463012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10848
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Tue, 28 Feb 2012 07:16:50 +0000 (07:16 +0000)]
Handle CALLBACKS correctly in IsProperty functions.
With transitions in AccessorPairs, it is not enough to look at the PropertyType
alone to decide whether we look at a property or not: For objects with
JavaScript accessors, we have to look into the AccessorPair itself and see if
one of its 2 parts is actually a JavaScript accessor. Therefore, a predicate
with a PropertyType argument alone doesn't make sense anymore, we might need the
associated value, too.
Things are complicated by the fact that the holder in a LookupResult can be
NULL, so we must be careful to retrieve its value only when it is really
needed. To achieve the needed call-by-name semantics, a new Entry is introduced,
which is basically a closure over a DescriptorArray and an index into this array
(C++0x to the rescue!). GCC is clever enough to inline this class, so we pay no
runtime penalty for this abstraction.
It's all a bit ugly, but this is caused by the current structure of Descriptor,
DescriptorArray and LookupResult: Things would be much easier if DescriptorArray
were, well, an array of Descriptors, and LookupResult were a 'Maybe Descriptor'
(in Haskell-terms).
Review URL: https://chromiumcodereview.appspot.com/
9466047
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10847
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Mon, 27 Feb 2012 15:42:36 +0000 (15:42 +0000)]
Remove now unused CalculateExactRetainedSize function & co.
This patch changes the signature of the v8::HeapGraphNode::GetRetainedSize method, but it's not used in Chromium, and it should be easy for other clients (if any) to adjust to this change.
BUG=none
TEST=none
Review URL: https://chromiumcodereview.appspot.com/
9466014
Patch from Alexei Filippov <alexeif@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10846
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Mon, 27 Feb 2012 15:15:53 +0000 (15:15 +0000)]
Adds a new API where the host can supply a callback function. The callback function can resolve the location of a return address on stack to the location where a return-address rewriting profiler stashed the original return address.
Review URL: https://chromiumcodereview.appspot.com/
9401019
Patch from Sigurður Ásgeirsson <siggi@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10845
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Mon, 27 Feb 2012 14:37:27 +0000 (14:37 +0000)]
When compiling for-in pass correct context value to the increment instruction.
Additionally force increment instruction to use int32 representation.
R=fschneider@google.com
BUG=http://crbug.com/115646
TEST=test/mjsunit/compiler/optimized-for-in.js
Review URL: https://chromiumcodereview.appspot.com/
9463052
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10844
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Mon, 27 Feb 2012 14:24:08 +0000 (14:24 +0000)]
MIPS: Profiler experiments: Fix debugger in the presence of self-optimization headers
Port r10834 (
0ce8cc524).
Note: this commit is a simple fix-up for FullCodeGenerator::self_optimization_header_size().
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/
9466050
Patch from Daniel Kalmar <kalmard@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10843
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Mon, 27 Feb 2012 11:52:08 +0000 (11:52 +0000)]
Update break points set with partial file name after compile.
BUG=v8:1853
Review URL: https://chromiumcodereview.appspot.com/
9460059
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10842
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Mon, 27 Feb 2012 11:44:53 +0000 (11:44 +0000)]
Prepare push to trunk. Now working on version 3.9.12.
R=ulan@chromium.org
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/
9455087
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10839
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Mon, 27 Feb 2012 10:43:57 +0000 (10:43 +0000)]
Disable for-in support in Crankshaft while crashes and regressions are being investigated.
R=yangguo@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
9463049
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10838
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Mon, 27 Feb 2012 08:45:39 +0000 (08:45 +0000)]
Profiler experiments: fix snapshotting with count-based interrupts
Review URL: https://chromiumcodereview.appspot.com/
9447098
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10837
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Mon, 27 Feb 2012 08:11:04 +0000 (08:11 +0000)]
Profiler experiments: Don't add self-optimization headers to functions that can't be optimized anyway
Review URL: https://chromiumcodereview.appspot.com/
9460058
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10836
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Mon, 27 Feb 2012 08:08:14 +0000 (08:08 +0000)]
Profiler experiments: be more careful when accessing TypeFeedbackInfo
Review URL: https://chromiumcodereview.appspot.com/
9471008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10835
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Mon, 27 Feb 2012 07:49:14 +0000 (07:49 +0000)]
Profiler experiments: Fix debugger in the presence of self-optimization headers
Review URL: https://chromiumcodereview.appspot.com/
9466012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10834
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Fri, 24 Feb 2012 16:01:22 +0000 (16:01 +0000)]
Remove obsolete test262 test cases from status file.
R=rossberg@chromium.org
TEST=test262/S15.10.2.11_A1_T?
Review URL: https://chromiumcodereview.appspot.com/
9466010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10833
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Fri, 24 Feb 2012 15:53:09 +0000 (15:53 +0000)]
Make 'module' a context-sensitive keyword.
Baseline: http://codereview.chromium.org/
9401008/
R=lrn@chromium.org,mstarzinger@chromium.org
BUG=v8:1957
TEST=mjsunit/harmony/module-parsing
Review URL: https://chromiumcodereview.appspot.com/
9422001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10832
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Fri, 24 Feb 2012 15:46:45 +0000 (15:46 +0000)]
Tune snapshot taking progress indicator.
As of dominators and retained sizes calculation take quite small time now
comparing to the main passes, it is worth to exclude these from progress
indicator. Now the indicator smoothly runs to 100%, while previously
it ran to 50% and then instantly jumped to 100%.
BUG=none
TEST=none
Review URL: https://chromiumcodereview.appspot.com/
9465010
Patch from Alexei Filippov <alexeif@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10831
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Fri, 24 Feb 2012 14:39:17 +0000 (14:39 +0000)]
Prepare push to trunk. Now working on version 3.9.11.
R=jkummerow@chromium.org
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/
9455059
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10828
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Fri, 24 Feb 2012 14:34:01 +0000 (14:34 +0000)]
Fix redefining of attributes on aliased arguments.
This allows elements of the non-strict arguments object to be redefined
with custom attributes and still maintain an alias into the context.
Such a slow alias is maintained by placing a special marker into the
dictionary backing store of the arguments object.
R=rossberg@chromium.org
BUG=v8:1772
TEST=test262,mjsunit/object-define-property
Review URL: https://chromiumcodereview.appspot.com/
9460004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10827
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Fri, 24 Feb 2012 14:01:34 +0000 (14:01 +0000)]
Fix strict mode in d8.js.
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/
9463010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10826
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Fri, 24 Feb 2012 13:32:58 +0000 (13:32 +0000)]
Revert "Tune snapshot taking progress indicator."
This reverts commit
630437a0239ce4de029ea367083cb12a8099506c.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10825
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Fri, 24 Feb 2012 13:04:16 +0000 (13:04 +0000)]
Simplified return values a bit when defining accessors.
Review URL: https://chromiumcodereview.appspot.com/
9467005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10824
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Fri, 24 Feb 2012 12:52:35 +0000 (12:52 +0000)]
Tune snapshot taking progress indicator.
As of dominators and retained sizes calculation take quite small time now
comparing to the main passes, it is worth to exclude these from progress
indicator. Now the indicator smoothly runs to 100%, while previously
it ran to 50% and then instantly jumped to 100%.
BUG=none
TEST=none
Review URL: https://chromiumcodereview.appspot.com/
9463008
Patch from Alexei Filippov <alexeif@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10823
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Fri, 24 Feb 2012 11:58:09 +0000 (11:58 +0000)]
Fix Object.getOwnPropertyDescriptor in string elements.
This fixes Object.getOwnPropertyDescriptor to report string character
elements as enumerable in accordance with the spec.
BUG=v8:862
TEST=mjsunit/get-own-property-descriptor
Review URL: https://chromiumcodereview.appspot.com/
9447053
Patch from Ioseb Dzmanashvili <ioseb.dzmanashvili@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10822
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Fri, 24 Feb 2012 11:16:12 +0000 (11:16 +0000)]
Some more speedup to the dominators tree building in heap profiler.
Replace timestamps with affected bool vector. Timestamps could cause
some entries marked as affected on iteration i, to be recalculated
twice on iterations i and i+1. Which is redundant.
BUG=none
TEST=none
Review URL: https://chromiumcodereview.appspot.com/
9467002
Patch from Alexei Filippov <alexeif@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10821
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Fri, 24 Feb 2012 10:59:12 +0000 (10:59 +0000)]
Fix HConstant's hash function for smis on x64.
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/
9466003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10820
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Fri, 24 Feb 2012 10:31:16 +0000 (10:31 +0000)]
Fix a performance bug in the register contraints for polymorphic loads.
The context is only needed in the esi register if there is a call to
the generic stub.
Review URL: https://chromiumcodereview.appspot.com/
9467001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10819
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Fri, 24 Feb 2012 09:45:27 +0000 (09:45 +0000)]
Fix compilation issue on Win64.
R=yangguo@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
9465003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10818
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Fri, 24 Feb 2012 08:46:10 +0000 (08:46 +0000)]
Speed up removing phi nodes.
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/
9452022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10817
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Thu, 23 Feb 2012 15:37:27 +0000 (15:37 +0000)]
Fix bug in r10812.
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/
9455016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10816
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Thu, 23 Feb 2012 14:50:08 +0000 (14:50 +0000)]
Skip regress-1969 in x64.
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/
9455015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10815
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Thu, 23 Feb 2012 14:36:11 +0000 (14:36 +0000)]
Adjust limit for booted memory test.
a previous change decreased the size of a zone object and it seems
that sometimes the OS report more memory used even though there
is less zone allocation.
Review URL: https://chromiumcodereview.appspot.com/
9443019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10814
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Thu, 23 Feb 2012 14:12:44 +0000 (14:12 +0000)]
Revert r10811 because of test flakiness.
TBR=vegorov@chromium.org
BUG=v8:1322
Review URL: https://chromiumcodereview.appspot.com/
9453012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10813
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Thu, 23 Feb 2012 13:59:35 +0000 (13:59 +0000)]
Lazy removal of dead HValues in GVN from use lists.
BUG=v8:1969
TEST=regress/regress-1969
Review URL: https://chromiumcodereview.appspot.com/
9455011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10812
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Thu, 23 Feb 2012 12:24:03 +0000 (12:24 +0000)]
Allow inlining of functions containing function literals.
R=fschneider@chromium.org,vegorov@chromium.org
BUG=v8:1322
TEST=mjsunit/compiler/inline-literals
Review URL: https://chromiumcodereview.appspot.com/
9453007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10811
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Thu, 23 Feb 2012 12:12:28 +0000 (12:12 +0000)]
When redefining accessor properties, defensively copy AccessorPairs.
The previous code relied on the tricky global invariant that there is no map
sharing when accessor properties are involved (or in other words: that
TransformToFastProperties is dumb enough :-). Although this is not a real
problem with the current code, this assumption breaks when map sharing in fast
mode is enabled, so we defensively copy an AccessorPair.
Review URL: https://chromiumcodereview.appspot.com/
9430048
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10810
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Thu, 23 Feb 2012 12:11:24 +0000 (12:11 +0000)]
Ensure that executable pages are properly guarded.
Split executable memory chunks into two pieces: header with all metadata (protection: RW) and body (protection: RWX). Separate header from metadata with a guard page and add a guard page after the page body.
R=erik.corry@gmail.com
BUG=http://crbug.com/115151
Review URL: https://chromiumcodereview.appspot.com/
9452002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10809
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Thu, 23 Feb 2012 11:43:07 +0000 (11:43 +0000)]
Fix redefinition of aliased elements in arguments.
This refactors the way we (re)define elements to perform normalization
and attribute updating at a much deeper level, thereby removing some
bogus special cases in upper runtime layers.
Most element setters take an indicator flag that distinguishes between
setting and defining. Setting of an element causes attributes to remain
unchanged, writability to be checked and callbacks to be called.
Defining of an element causes attributes to be updated and callbacks to
be overridden. The same approach could be taken for properties.
R=svenpanne@chromium.org
BUG=v8:1772
TEST=test262,test262/15.2.3.6-4-333-11
Review URL: https://chromiumcodereview.appspot.com/
9443014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10808
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Thu, 23 Feb 2012 10:12:50 +0000 (10:12 +0000)]
Fix Windows compilation.
TBR=svenpanne@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
9456006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10807
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Thu, 23 Feb 2012 09:12:57 +0000 (09:12 +0000)]
Make HashMap a template class to specify the allocation policy.
The old HashMap class had an explicit member to determine the allocation
policy. The template version matches the approach used already for
lists.
Cleanup some include dependencies and unnecessary forward declarations.
Cleanup some dead code from isolate.h and replace some HEAP macros
with GetHeap().
Review URL: https://chromiumcodereview.appspot.com/
9372106
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10806
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Thu, 23 Feb 2012 08:23:04 +0000 (08:23 +0000)]
Prepare push to trunk. Now working on version 3.9.10.
R=jkummerow@chromium.org
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/
9454009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10801
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Thu, 23 Feb 2012 08:15:45 +0000 (08:15 +0000)]
Allow the ZWJ and ZWNJ characters in IdentifierPart as per ES5.
Patch from Mathias Bynens <mathias@qiwi.be>
BUG=1958
TEST=Try `var a\u200c\u200d;` and confirm it doesn't throw an error.
Review URL: https://chromiumcodereview.appspot.com/
9433031
Patch from Mathias Bynens <mathias@qiwi.be>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10800
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Wed, 22 Feb 2012 23:06:11 +0000 (23:06 +0000)]
Speedup dominators construction in heap snapshot.
It is achieved by:
1. skipping entries those dominators have already reached root.
2. processing only entries those retainers have changed their
dominators and skipping other entries.
3. removing extra memory indirection by making the dominators array
contain entry indices instead of entries themselves.
The dominators building time has dropped from ~4000 ms to ~200 ms
on gmail.com heap snapshot.
BUG=none
TEST=none
Review URL: https://chromiumcodereview.appspot.com/
9372105
Patch from Alexei Filippov <alexeif@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10799
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Wed, 22 Feb 2012 19:47:57 +0000 (19:47 +0000)]
RandomizedVirtualAlloc should check for isolate presence instead of using Isolate::Current()
CpuFeatures::Probe request executable memory before any isolate is initialized and entered.
TBR=erik.corry@gmail.com
Review URL: https://chromiumcodereview.appspot.com/
9433051
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10798
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Wed, 22 Feb 2012 17:21:55 +0000 (17:21 +0000)]
Randomize allocation addresses on windows.
BUG=115151
Review URL: https://chromiumcodereview.appspot.com/
9372083
Patch from Cris Neckar <cdn@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10797
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Wed, 22 Feb 2012 16:45:35 +0000 (16:45 +0000)]
Support OSR in for-in loops.
Modify PreProcessOsrEntry to work with OSR entries that have non-empty expression stack.
Modify graph builder to take for-in state from environment instead of directly referencing emitted instructions.
Extend %OptimizeFunctionOnNextCall with an argument to force OSR to make writing OSR tests easier: %OptimizeFunctionOnNextCall(f, "osr").
R=fschneider@chromium.org
TEST=test/mjsunit/compiler/optimized-for-in.js
Review URL: https://chromiumcodereview.appspot.com/
9431030
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10796
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Wed, 22 Feb 2012 15:18:29 +0000 (15:18 +0000)]
Profiler experiments: interrupt check at function exit
Review URL: https://chromiumcodereview.appspot.com/
9432026
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10795
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Wed, 22 Feb 2012 12:47:42 +0000 (12:47 +0000)]
Support fast case for-in in Crankshaft.
Only JSObject enumerables with enum cache (fast case properties, no interceptors, no enumerable properties on the prototype) are supported.
HLoadKeyedGeneric with keys produced by for-in enumeration are recognized and rewritten into direct property load by index. For this enum-cache was extended to store property indices in a separate array (see handles.cc).
New hydrogen instructions:
- HForInPrepareMap: checks for-in fast case preconditions and returns map that contains enum-cache;
- HForInCacheArray: extracts enum-cache array from the map;
- HCheckMapValue: map check with HValue map instead of immediate;
- HLoadFieldByIndex: load fast property by it's index, positive indexes denote in-object properties, negative - out of object properties;
Changed hydrogen instructions:
- HLoadKeyedFastElement: added hole check suppression for loads from internal FixedArrays that are knows to have no holes inside.
R=fschneider@chromium.org
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/
9425045
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10794
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Wed, 22 Feb 2012 12:26:36 +0000 (12:26 +0000)]
Fix compilation with MinGW-w64.
BUG=v8:1943
TEST=
Review URL: https://chromiumcodereview.appspot.com/
9428027
Patch from Jonathan Liu <net147@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10793
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Wed, 22 Feb 2012 12:21:18 +0000 (12:21 +0000)]
Remove unused class AssertNoZoneAllocation.
BUG=v8:1962
TEST=
Review URL: https://chromiumcodereview.appspot.com/
9430044
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10792
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Wed, 22 Feb 2012 11:40:28 +0000 (11:40 +0000)]
Eliminate use of ZONE macro in BitVector class and pass a zone explicitly.
Review URL: https://chromiumcodereview.appspot.com/
9416092
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10791
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Wed, 22 Feb 2012 11:38:31 +0000 (11:38 +0000)]
Added -Woverloaded-virtual to GCC flags, syncing scons and gyp builds.
Review URL: https://chromiumcodereview.appspot.com/
9430043
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10790
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Wed, 22 Feb 2012 11:35:17 +0000 (11:35 +0000)]
Add Ioseb Dzmanashvili to authors.
R=vegorov@google.com,yangguo@chromium.org
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/
9430011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10789
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Wed, 22 Feb 2012 10:52:57 +0000 (10:52 +0000)]
Cleaned up setting of accessors.
This CL is an intermediate step only, in the end we need to have a single
DefineOrRedefineAccessorProperty call for a single Object.defineProperty
call. Currently we can end up making two such calls, making the necessary access
checks extremely ugly and hard (impossible?) to get right for complete spec
conformance.
The bulk of the change is quite mechanical:
* Prepare an AccessorPair *before* we add it to our data structures,
eliminating the previous voodoo-like threading of a placeholder.
* The previous item makes it possible to activate our check that we do not
share AccessorPairs by accident.
* Split a monster method into 2 quite unrelated methods.
* Use templated To method in a few places.
Review URL: https://chromiumcodereview.appspot.com/
9428026
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10788
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Wed, 22 Feb 2012 10:48:58 +0000 (10:48 +0000)]
Profiler experiments: self-optimization for functions containing calls
Review URL: https://chromiumcodereview.appspot.com/
9430042
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10787
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Wed, 22 Feb 2012 10:31:32 +0000 (10:31 +0000)]
Prevent segfault when preparser fails due to lack of argument.
BUG=v8:1963
TEST=run preparser with no command line arguments
Review URL: https://chromiumcodereview.appspot.com/
9431028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10786
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Tue, 21 Feb 2012 16:47:02 +0000 (16:47 +0000)]
Use placement-new operator in the register allocator.
Pass the zone explicitly to avoid calling Isolate::Current()->zone().
Review URL: https://chromiumcodereview.appspot.com/
9430002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10785
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Tue, 21 Feb 2012 14:56:24 +0000 (14:56 +0000)]
Speedup the snapshot serialization.
Replaced multiple calls to AddNumber with a single AddString.
AddNumber may now print the value directly into the output buffer.
BUG=none
TEST=none
Review URL: https://chromiumcodereview.appspot.com/
9395087
Patch from Alexei Filippov <alexeif@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10784
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Tue, 21 Feb 2012 14:09:45 +0000 (14:09 +0000)]
After assignment return right hand side value instead of undefined
when Object.isExtensible(o) === false
Added corresponding tests
ES5 description: http://es5.github.com/#x11.13.1
Related issue: http://code.google.com/p/v8/issues/detail?id=1901
Contributed by ioseb.dzmanashvili@gmail.com
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/
9429002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10783
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Tue, 21 Feb 2012 13:08:50 +0000 (13:08 +0000)]
Remove redundant statements in NewFunctionFromSharedFunctionInfo.
R=rossberg@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
9428001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10780
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Tue, 21 Feb 2012 12:47:27 +0000 (12:47 +0000)]
Removed Runtime_DefineAccessor.
Runtime_DefineOrRedfineAccessorProperty basically does the same, so we have 1
code path less to worry about.
Review URL: https://chromiumcodereview.appspot.com/
9424033
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10779
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Tue, 21 Feb 2012 12:10:04 +0000 (12:10 +0000)]
On ia32 LFunctionLiteral instruction should get context from esi register instead of stack slot.
This makes LFunctionLiteral safe even when it is used from inside inlined function.
All other architectures were implementing LFunctionLiteral correctly.
R=mstarzinger@chromium.org
TEST=test/mjsunit/regress/regress-inlining-function-literal-context.js
Review URL: https://chromiumcodereview.appspot.com/
9425061
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10778
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Tue, 21 Feb 2012 10:01:54 +0000 (10:01 +0000)]
Prepare push to trunk. Now working on version 3.9.9.
R=yangguo@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
9425059
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10775
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Tue, 21 Feb 2012 09:11:35 +0000 (09:11 +0000)]
Make sure that top bits are zero when storing untagged 32 bit values
in 64 bit spill slots.
Review URL: https://chromiumcodereview.appspot.com/
9378006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10774
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Tue, 21 Feb 2012 08:36:16 +0000 (08:36 +0000)]
MIPS: Enable optimization of top-level code and generate deoptimization support lazily.
Port r10700 (
c976fbd5).
Original commit message:
This change enables optimization of top-level and eval-code. For this to work, it adds
support for declaring global variables in optimized code.
At the same time it disables the eager generation of deoptimization support data
in the full code generator (originally introduced in
r10040). This speeds up initial compilation and saves
memory for functions that won't be optimized. It requires
recompiling the function with deoptimization
support when we decide to optimize it.
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/
9418006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10773
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Tue, 21 Feb 2012 07:35:33 +0000 (07:35 +0000)]
Cleaned up runtime macros a bit.
The bulk of this CL is purely mechanical: Make the CONVERT_FOO macros more
uniform by always using an index instead of an object. Apart from this, it
includes a few minor changes like using CONVERT_SMI_ARG_CHECKED a bit more or
introducing a new macro for PropertyDetails. Nothing spectacular, just something
sitting on my disk for quite some time now...
Review URL: https://chromiumcodereview.appspot.com/
9395075
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10772
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Mon, 20 Feb 2012 18:01:21 +0000 (18:01 +0000)]
Fix regression test after r10770.
R=yangguo@chromium.org
TEST=cctest/test-regexp/CharacterClassEscapes
Review URL: https://chromiumcodereview.appspot.com/
9425050
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10771
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Mon, 20 Feb 2012 17:50:53 +0000 (17:50 +0000)]
Fix RegExp white-space character class to match BOMs.
R=rossberg@chromium.org
TEST=test262/S15.10.2.12_A?_T1,mjsunit/regexp
Review URL: https://chromiumcodereview.appspot.com/
9426032
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10770
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Mon, 20 Feb 2012 16:03:00 +0000 (16:03 +0000)]
Fix svn-ignore property for scons build directory.
R=jkummerow@chromium.org (reviewed offline)
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10765
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Mon, 20 Feb 2012 15:34:08 +0000 (15:34 +0000)]
Enable test-api/TurnOnAccessCheckAndRecompile and change it so it can't cause a GC.
A GC in the access check callbacks NamedSecurityCallback and IndexedSecurityCallback
violates the contract about these callbacks.
Added a EXTERNAL VMState scope around the call to FailedAccessCheckCallback to be
consistent with the other callback invocations.
BUG=v8:1952
TEST=cctest/test-api/TurnOnAccessCheckAndRecompile
Review URL: https://chromiumcodereview.appspot.com/
9425048
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10764
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Mon, 20 Feb 2012 15:02:23 +0000 (15:02 +0000)]
Remove strict mode from message.js, seems to break Error conformance.
R=mstarzinger@chromium.org
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/
9426034
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10763
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Mon, 20 Feb 2012 14:03:18 +0000 (14:03 +0000)]
Fix svn-ignore property for test directories.
R=jkummerow@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
9421036
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10760
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Mon, 20 Feb 2012 14:02:59 +0000 (14:02 +0000)]
Parsing of basic module declarations (no imports/exports yet).
Module definitions are not compiled or otherwise executed yet.
Toplevel module identifiers are bound but never initialized.
R=kmillikin@chromium.org,mstarzinger@google.com
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/
9401008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10759
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Mon, 20 Feb 2012 13:48:24 +0000 (13:48 +0000)]
Make built-ins strict mode conforming, and support a --use-strict flag.
* Turned all uses of 'const' into 'var'.
* Turned all uses of local 'function' into 'var'.
* Added a couple of missing toplevel 'var' declarations.
One consequence is that the properties on the builtin object are no longer
non-writable, and I had to adapt one test. Is that a problem?
Unfortunately, we cannot actually switch the library scripts to strict mode
by default, because that makes observable things like poisoned .caller properties
for library functions.
Also removed dead flag code in Compiler::Compile.
R=yangguo@chromium.org
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/
9415010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10758
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Mon, 20 Feb 2012 13:42:24 +0000 (13:42 +0000)]
Port r10490 and r10615 to cygwin.
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/
9423041
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10757
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Mon, 20 Feb 2012 13:22:02 +0000 (13:22 +0000)]
Fix presubmit.
R=yangguo@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
9427011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10756
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00