platform/upstream/v8.git
13 years agoImplement support for getters/setter on FixedDoubleArrays.
danno@chromium.org [Wed, 20 Jul 2011 13:41:50 +0000 (13:41 +0000)]
Implement support for getters/setter on FixedDoubleArrays.

R=ager@chromium.org
BUG=none
TEST=none

Review URL: http://codereview.chromium.org/7459009

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8696 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoPreparing push to trunk.
rossberg@chromium.org [Wed, 20 Jul 2011 13:22:01 +0000 (13:22 +0000)]
Preparing push to trunk.
Review URL: http://codereview.chromium.org/7452020

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8695 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoFix for issue 1566: added flushing after writing to stdout.
yangguo@chromium.org [Wed, 20 Jul 2011 13:14:46 +0000 (13:14 +0000)]
Fix for issue 1566: added flushing after writing to stdout.
BUG=v8:1566

Review URL: http://codereview.chromium.org/7459007

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8694 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoImplement for..in for FastDoubleArrays
danno@chromium.org [Wed, 20 Jul 2011 10:54:58 +0000 (10:54 +0000)]
Implement for..in for FastDoubleArrays

Also add tests for apply on FastDoubleArrays.

R=ager@chromium.org
BUG=none
TEST=unboxed-double-array.js

Review URL: http://codereview.chromium.org/7461018

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8693 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoRevert "Make window.undefined, window.NaN, window.Infinitiy read-only (ES5 section...
jkummerow@chromium.org [Wed, 20 Jul 2011 10:51:11 +0000 (10:51 +0000)]
Revert "Make window.undefined, window.NaN, window.Infinitiy read-only (ES5 section 15.1.1)"

This reverts r8691.

Review URL: http://codereview.chromium.org/7457020

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8692 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoMake window.undefined, window.NaN, window.Infinitiy read-only (ES5 section 15.1.1)
jkummerow@chromium.org [Wed, 20 Jul 2011 10:06:53 +0000 (10:06 +0000)]
Make window.undefined, window.NaN, window.Infinitiy read-only (ES5 section 15.1.1)

BUG=89490
TEST=manual: "Infinity = 42;" doesn't change the value of "Infinity"

Review URL: http://codereview.chromium.org/7457019

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8691 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoReland 8636: Implement setting the length property for FixedDoubleArrays.
danno@chromium.org [Wed, 20 Jul 2011 09:11:38 +0000 (09:11 +0000)]
Reland 8636: Implement setting the length property for FixedDoubleArrays.

R=ager@chromium.org
BUG=none
TEST=unboxed-double-arrays.js

Review URL: http://codereview.chromium.org/7460008

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8690 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoFix presubmit error in copyright message.
whesse@chromium.org [Wed, 20 Jul 2011 08:45:30 +0000 (08:45 +0000)]
Fix presubmit error in copyright message.
Use new gcc flag -Wno-unused-but-set-variable only on linux.
TBR=fschneider@chromium.org

BUG=
TEST=

Review URL: http://codereview.chromium.org/7457018

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8689 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agofix -Wunused-but-set-variable for gcc-4.6 on x64
whesse@chromium.org [Wed, 20 Jul 2011 08:09:58 +0000 (08:09 +0000)]
fix -Wunused-but-set-variable for gcc-4.6 on x64

* src/third_party/valgrind/valgrind.h: Update from upstream valgrind
  r11899, so as to get around some unused value warnings.  Also adds
  support for darwin.

  This version of valgrind.h differs from the original in that all
  instances of "unsigned long long int" have been replaced with
  "uint64_t", as the former is not allowed in ISO C++ 89.

  See https://bugs.kde.org/show_bug.cgi?id=211926 for the upstream bug
  report.

* src/x64/cpu-x64.cc:
* src/builtins.cc:
* src/conversions-inl.h:
* src/debug.cc:
* src/frames.cc:
* src/full-codegen.cc:
* src/jsregexp.cc:
* src/objects.cc:
* src/parser.cc:
* src/platform-linux.cc:
* src/x64/code-stubs-x64.cc:
* src/x64/deoptimizer-x64.cc:
* src/x64/full-codegen-x64.cc:
* src/x64/lithium-codegen-x64.cc:
* src/x64/regexp-macro-assembler-x64.cc:
* src/x64/stub-cache-x64.cc: Remove a number of assigned but
  unreferenced variables.

* SConstruct (CCTEST_EXTRA_FLAGS): Punt on -Wunused-but-set-variable for
  the test suite.

BUG=1291
TEST=A build and tools/test.py passes.

Review URL: http://codereview.chromium.org/7400023

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8688 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoAdd guard pages in front of executable allocations
ager@chromium.org [Wed, 20 Jul 2011 08:06:43 +0000 (08:06 +0000)]
Add guard pages in front of executable allocations

BUG=89247

Review URL: http://codereview.chromium.org/7379004
Patch from Chris Neckar <cdn@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8687 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoMIPS: port Implement ICs for FastDoubleArray loads and stores
danno@chromium.org [Wed, 20 Jul 2011 07:24:50 +0000 (07:24 +0000)]
MIPS: port Implement ICs for FastDoubleArray loads and stores

Ported r8637 (72bd791)

BUG=
TEST=

Review URL: http://codereview.chromium.org/7386003
Patch from Paul Lind <plind44@gmail.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8686 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agogrokdump: Add simple support for non-full minudumps.
vitalyr@chromium.org [Tue, 19 Jul 2011 18:29:18 +0000 (18:29 +0000)]
grokdump: Add simple support for non-full minudumps.

At least we can show the disassembly around the exception now.

R=antonm@chromium.org

Review URL: http://codereview.chromium.org/7439006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8685 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoRollback 8683: Implement setting the length property for FixedDoubleArrays
danno@chromium.org [Tue, 19 Jul 2011 16:34:17 +0000 (16:34 +0000)]
Rollback 8683: Implement setting the length property for FixedDoubleArrays

R=ager@chromium.org
BUG=none
TEST=none

Review URL: http://codereview.chromium.org/7448002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8684 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoImplement setting the length property for FixedDoubleArrays.
danno@chromium.org [Tue, 19 Jul 2011 16:06:17 +0000 (16:06 +0000)]
Implement setting the length property for FixedDoubleArrays.

R=ager@chromium.org
BUG=none
TEST=none

Review URL: http://codereview.chromium.org/7400020

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8683 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoCrankshaft support for FixedDoubleArrays
danno@chromium.org [Tue, 19 Jul 2011 13:04:00 +0000 (13:04 +0000)]
Crankshaft support for FixedDoubleArrays

BUG=none
TEST=unboxed-double-arrays.js

Review URL: http://codereview.chromium.org/7350021

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8682 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoImplement `in' for proxies.
rossberg@chromium.org [Tue, 19 Jul 2011 09:38:59 +0000 (09:38 +0000)]
Implement `in' for proxies.

R=ager@chromium.org
BUG=v8:1543
TEST=

Review URL: http://codereview.chromium.org/7390028

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8681 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoCorrectly mark functions from our natives files during compilation.
ager@chromium.org [Tue, 19 Jul 2011 08:19:31 +0000 (08:19 +0000)]
Correctly mark functions from our natives files during compilation.

When creating a CompilationInfo we always have the script and can
determine if it is a natives script.

Now that all natives functions are recognized as such, many of them
are called with undefined as the receiver. We have to use different
filtering for builtins functions when printing stack traces.

Also, fixed one call of CALL_NON_FUNCTION to be correctly marked as a
method call (with fixed receiver). Now that CALL_NON_FUNCTION is
marked as a native function this caused the receiver to be undefined.

R=svenpanne@chromium.org
BUG=
TEST=

Review URL: http://codereview.chromium.org/7395030

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8680 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoAdd GetPropertyAttribute method for Object in the API
ager@chromium.org [Mon, 18 Jul 2011 17:44:57 +0000 (17:44 +0000)]
Add GetPropertyAttribute method for Object in the API

Patch by Peter Varga.

BUG=none
TEST=cctest/test-api/PropertyAttributes

Review URL: http://codereview.chromium.org/7321006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8679 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoPass isolate to AST ID functions.
vitalyr@chromium.org [Mon, 18 Jul 2011 17:32:41 +0000 (17:32 +0000)]
Pass isolate to AST ID functions.

R=ager@chromium.org

Review URL: http://codereview.chromium.org/7399023

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8678 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoRevert "Make GYP build usable for day-to-day work"
jkummerow@chromium.org [Mon, 18 Jul 2011 16:39:41 +0000 (16:39 +0000)]
Revert "Make GYP build usable for day-to-day work"

This reverts r8674 due to failures on the buildbots.

Review URL: http://codereview.chromium.org/7396022

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8677 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years ago Encapsulated the AST ID recording a bit, this time for MIPS.
svenpanne@chromium.org [Mon, 18 Jul 2011 14:46:35 +0000 (14:46 +0000)]
 Encapsulated the AST ID recording a bit, this time for MIPS.
Review URL: http://codereview.chromium.org/7400019

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8676 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoFix the debugger for strict-mode functions.
ager@chromium.org [Mon, 18 Jul 2011 14:29:50 +0000 (14:29 +0000)]
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

13 years agoMake GYP build usable for day-to-day work
jkummerow@chromium.org [Mon, 18 Jul 2011 14:19:48 +0000 (14:19 +0000)]
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

13 years agoImplement sealing, freezing, and related functions for proxies.
rossberg@chromium.org [Mon, 18 Jul 2011 13:04:52 +0000 (13:04 +0000)]
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

13 years agoReplace reinterpret_cast with BitCast in deoptimizer to please certain compilers.
ager@chromium.org [Mon, 18 Jul 2011 10:51:28 +0000 (10:51 +0000)]
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

13 years agoFixed confusion between AST IDs and condition codes on ARM.
svenpanne@chromium.org [Mon, 18 Jul 2011 10:44:13 +0000 (10:44 +0000)]
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

13 years agoPrepare push to trunk.
svenpanne@chromium.org [Mon, 18 Jul 2011 09:36:15 +0000 (09:36 +0000)]
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

13 years agoIntroduce a random entropy source which can optionally be provided at initialization.
ager@chromium.org [Sun, 17 Jul 2011 09:16:28 +0000 (09:16 +0000)]
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

13 years agoFix win64 build.
vitalyr@chromium.org [Fri, 15 Jul 2011 17:01:54 +0000 (17:01 +0000)]
Fix win64 build.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8665 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoAvoid TLS load in AstNode constructor.
vitalyr@chromium.org [Fri, 15 Jul 2011 16:57:35 +0000 (16:57 +0000)]
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

13 years agoRemoved unnecessary semicolon.
yangguo@chromium.org [Fri, 15 Jul 2011 12:13:29 +0000 (12:13 +0000)]
Removed unnecessary semicolon.

Review URL: http://codereview.chromium.org/7383009

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8663 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoFixed bug in array filter and reduce functions.
mstarzinger@chromium.org [Fri, 15 Jul 2011 11:07:18 +0000 (11:07 +0000)]
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

13 years agoImplement delete trap for proxies.
rossberg@chromium.org [Fri, 15 Jul 2011 09:10:20 +0000 (09:10 +0000)]
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

13 years agoIncluded variable default for d8.gyp.
yangguo@chromium.org [Fri, 15 Jul 2011 08:44:00 +0000 (08:44 +0000)]
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

13 years agoFix gyp build
jkummerow@chromium.org [Fri, 15 Jul 2011 08:09:20 +0000 (08:09 +0000)]
Fix gyp build

by replicating changes to SConscript from r8654 to cctest.gyp

TEST=cctest compiles with gyp/make.

Review URL: http://codereview.chromium.org/7371006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8658 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoIntroduces a light version of D8 that links against shared library.
yangguo@chromium.org [Thu, 14 Jul 2011 15:43:40 +0000 (15:43 +0000)]
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

13 years agoAdd map check for COW elements to crankshaft array handling code.
jkummerow@chromium.org [Thu, 14 Jul 2011 14:45:20 +0000 (14:45 +0000)]
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

13 years agoExcludes cctest from gyp build if using shared library.
yangguo@chromium.org [Thu, 14 Jul 2011 14:42:46 +0000 (14:42 +0000)]
Excludes cctest from gyp build if using shared library.

Review URL: http://codereview.chromium.org/7366009

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8655 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoConvert *.js files of cctest/test-log into "resources".
mikhail.naganov@gmail.com [Thu, 14 Jul 2011 11:38:18 +0000 (11:38 +0000)]
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

13 years agoExpose APIs for detecting boxed primitives, native errors and Math.
vegorov@chromium.org [Thu, 14 Jul 2011 11:00:04 +0000 (11:00 +0000)]
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

13 years agosample shell does not link against shared lib due to latest change
yangguo@chromium.org [Thu, 14 Jul 2011 10:46:45 +0000 (10:46 +0000)]
sample shell does not link against shared lib due to latest change

Review URL: http://codereview.chromium.org/7366004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8652 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agosimplification to HClampToUint8
danno@chromium.org [Thu, 14 Jul 2011 09:51:52 +0000 (09:51 +0000)]
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

13 years agoFix memory leak from sample/shell.cc.
ricow@chromium.org [Thu, 14 Jul 2011 09:00:11 +0000 (09:00 +0000)]
Fix memory leak from sample/shell.cc.

We did not dispose the semaphores used in SourceGroup
Review URL: http://codereview.chromium.org/7366002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8649 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoHarmonize naming a bit, x64 was the only platform where Register::from_code was calle...
svenpanne@chromium.org [Thu, 14 Jul 2011 07:44:04 +0000 (07:44 +0000)]
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

13 years agoFix the build on x64 and ARM.
danno@chromium.org [Wed, 13 Jul 2011 16:51:30 +0000 (16:51 +0000)]
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

13 years agoFixes build failures from FixedDoubleArray IC patch.
danno@chromium.org [Wed, 13 Jul 2011 16:36:26 +0000 (16:36 +0000)]
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

13 years agoFix shortcutting bug in HInferRepresentation
ager@chromium.org [Wed, 13 Jul 2011 14:43:09 +0000 (14:43 +0000)]
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

13 years agoImplement ICs for FastDoubleArray loads and stores
danno@chromium.org [Wed, 13 Jul 2011 13:50:27 +0000 (13:50 +0000)]
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

13 years agoFix presubmit
ricow@chromium.org [Wed, 13 Jul 2011 13:29:10 +0000 (13:29 +0000)]
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

13 years agoFix bug in prototype transitions cache clearing introduced by r8165.
vegorov@chromium.org [Wed, 13 Jul 2011 13:16:00 +0000 (13:16 +0000)]
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

13 years agoSupport scope information and evaluation in optimized frames
sgjesse@chromium.org [Wed, 13 Jul 2011 12:49:27 +0000 (12:49 +0000)]
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

13 years agoPrepare push to trunk. We are now working on version 3.4.13.
whesse@chromium.org [Wed, 13 Jul 2011 12:26:39 +0000 (12:26 +0000)]
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

13 years agoWebKit Win fix after r8629: use ...A Win API functions explicitly.
mikhail.naganov@gmail.com [Wed, 13 Jul 2011 11:58:46 +0000 (11:58 +0000)]
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

13 years agoImplement Object.getOwnPropertyDescriptor for proxies.
rossberg@chromium.org [Wed, 13 Jul 2011 11:57:15 +0000 (11:57 +0000)]
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

13 years agoRemove support for logging into a memory buffer.
mikhail.naganov@gmail.com [Wed, 13 Jul 2011 11:31:22 +0000 (11:31 +0000)]
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

13 years agoRevert r8619 because of Webkit failures.
whesse@chromium.org [Wed, 13 Jul 2011 11:13:40 +0000 (11:13 +0000)]
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

13 years agoDisentangle printing of stub names and memory allocation.
svenpanne@chromium.org [Wed, 13 Jul 2011 11:08:25 +0000 (11:08 +0000)]
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

13 years agoImplement Object.keys for proxies.
rossberg@chromium.org [Wed, 13 Jul 2011 11:01:17 +0000 (11:01 +0000)]
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

13 years agoClean up conditionals in tests after r8622.
mikhail.naganov@gmail.com [Wed, 13 Jul 2011 10:08:52 +0000 (10:08 +0000)]
Clean up conditionals in tests after r8622.

R=sgjesse@chromium.org
BUG=
TEST=

Review URL: http://codereview.chromium.org/7353015

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8625 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoMake fast tls the default
sgjesse@chromium.org [Wed, 13 Jul 2011 10:00:33 +0000 (10:00 +0000)]
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

13 years agoAvoid patching code after the call to binary operation stub in optimized code
sgjesse@chromium.org [Wed, 13 Jul 2011 09:31:17 +0000 (09:31 +0000)]
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

13 years agoRemove the ability to compile without logging and profiling
sgjesse@chromium.org [Wed, 13 Jul 2011 09:09:04 +0000 (09:09 +0000)]
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

13 years agoAdded dictionary that can use objects as keys.
yangguo@chromium.org [Tue, 12 Jul 2011 15:13:57 +0000 (15:13 +0000)]
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

13 years agoFixed a long-standing TODO: Removed a few *-incl.h #includes from isolate.h.
svenpanne@chromium.org [Tue, 12 Jul 2011 08:03:19 +0000 (08:03 +0000)]
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

13 years agoRemove prematurely added dependencies from preparser.
lrn@chromium.org [Tue, 12 Jul 2011 07:50:25 +0000 (07:50 +0000)]
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

13 years agosecond attempt at correcting fopen (hangs when trying to read from a dir)
yangguo@chromium.org [Mon, 11 Jul 2011 15:30:24 +0000 (15:30 +0000)]
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

13 years agoAdd source position recording for variable loads
sgjesse@chromium.org [Mon, 11 Jul 2011 15:20:17 +0000 (15:20 +0000)]
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

13 years agorollback
yangguo@chromium.org [Mon, 11 Jul 2011 14:08:27 +0000 (14:08 +0000)]
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

13 years agoFix a potential crash in const declaration.
kmillikin@chromium.org [Mon, 11 Jul 2011 14:07:12 +0000 (14:07 +0000)]
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

13 years agoRemove heap protection support.
ager@chromium.org [Mon, 11 Jul 2011 14:03:21 +0000 (14:03 +0000)]
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

13 years agobug fix
yangguo@chromium.org [Mon, 11 Jul 2011 13:48:10 +0000 (13:48 +0000)]
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

13 years agoLower the number of threads for some threading tests when testing on ARM to avoid...
sgjesse@chromium.org [Mon, 11 Jul 2011 12:17:10 +0000 (12:17 +0000)]
Lower the number of threads for some threading tests when testing on ARM to avoid timeouts

R=ricow@chromium.org

BUG=none
TEST=cctest/test-lockers/LockerUnlocker,cctest/test-lockers/LockTwiceAndUnlock,cctest/test-lockers/SeparateIsolatesLocksNonexclusive

Review URL: http://codereview.chromium.org//7334007

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8597 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoFix bug in Map::TraverseTransitionTree.
vegorov@chromium.org [Mon, 11 Jul 2011 12:06:35 +0000 (12:06 +0000)]
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

13 years agobug fix since --prof did not work
yangguo@chromium.org [Mon, 11 Jul 2011 12:04:13 +0000 (12:04 +0000)]
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

13 years agoRemove passing tests from test262 status file
ricow@chromium.org [Mon, 11 Jul 2011 12:00:28 +0000 (12:00 +0000)]
Remove passing tests from test262 status file
Review URL: http://codereview.chromium.org/7326038

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8594 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoPrepare push to trunk. We are now working on version 3.4.12.
sgjesse@chromium.org [Mon, 11 Jul 2011 11:10:45 +0000 (11:10 +0000)]
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

13 years agoFix heap corruption and memory leakage in inspection of optimized frames.
sgjesse@chromium.org [Mon, 11 Jul 2011 09:35:18 +0000 (09:35 +0000)]
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

13 years agoDrastically reduce the transitive dependencies of jsregexp.h, making it (almost)
svenpanne@chromium.org [Mon, 11 Jul 2011 09:12:17 +0000 (09:12 +0000)]
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

13 years agoported --isolate option to d8 and refactored to group together option parsing
yangguo@chromium.org [Mon, 11 Jul 2011 07:38:09 +0000 (07:38 +0000)]
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

13 years agoAllow JSObject::PreventExtensions to work for arguments objects.
kmillikin@chromium.org [Mon, 11 Jul 2011 06:48:19 +0000 (06:48 +0000)]
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

13 years agoMIPS: port Fix problem with arguments object ICs not checking for dictionary mode...
sgjesse@chromium.org [Mon, 11 Jul 2011 06:46:58 +0000 (06:46 +0000)]
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

13 years agoMIPS: Cleaned up calling-related methods in the assembler.
sgjesse@chromium.org [Mon, 11 Jul 2011 06:45:27 +0000 (06:45 +0000)]
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

13 years agoUpdated status file for test262 to latest revision.
ricow@chromium.org [Sat, 9 Jul 2011 07:29:32 +0000 (07:29 +0000)]
Updated status file for test262 to latest revision.

Landing for mstarzinger, orginal cl at:
http://codereview.chromium.org/7329016/

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8584 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoAlign host and target architectures when building v8_shell.
mikhail.naganov@gmail.com [Fri, 8 Jul 2011 13:37:19 +0000 (13:37 +0000)]
Align host and target architectures when building v8_shell.

This is a fix after r8356. Otherwise, shell can't be built
on a 64-bit host.

R=ager@chromium.org

Review URL: http://codereview.chromium.org/7328016

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8581 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoFix polymorphic array test
danno@chromium.org [Fri, 8 Jul 2011 10:59:20 +0000 (10:59 +0000)]
Fix polymorphic array test

R=jkummerow@chromium.org
BUG=none
TEST=none

Review URL: http://codereview.chromium.org/7326009

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8580 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoUnify handling of element IC stubs.
danno@chromium.org [Fri, 8 Jul 2011 10:46:10 +0000 (10:46 +0000)]
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

13 years agoRemoved useless implementations of GetName and Print for code stubs, the common
svenpanne@chromium.org [Fri, 8 Jul 2011 09:40:14 +0000 (09:40 +0000)]
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

13 years agoGenerate shorter instruction forms for constant in ia32 gap resolver.
sgjesse@chromium.org [Fri, 8 Jul 2011 09:08:12 +0000 (09:08 +0000)]
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

13 years agoAdd inspection of whether frame is a construct frame to optimized frames
sgjesse@chromium.org [Fri, 8 Jul 2011 08:55:26 +0000 (08:55 +0000)]
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

13 years agoFix compilation error.
kmillikin@chromium.org [Fri, 8 Jul 2011 08:03:39 +0000 (08:03 +0000)]
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

13 years agoFix a bug in for/in iteration of arguments objects.
kmillikin@chromium.org [Fri, 8 Jul 2011 07:31:48 +0000 (07:31 +0000)]
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

13 years agoMIPS: port Fix ARM regression introduced with polymorphic array support.
sgjesse@chromium.org [Fri, 8 Jul 2011 06:59:54 +0000 (06:59 +0000)]
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

13 years agoMIPS: port Fix a typo in KeyedStoreIC, restore Kraken performance.
sgjesse@chromium.org [Fri, 8 Jul 2011 06:48:27 +0000 (06:48 +0000)]
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

13 years agoMIPS: port Introduce code flushing of RegExp code.
sgjesse@chromium.org [Fri, 8 Jul 2011 06:47:09 +0000 (06:47 +0000)]
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

13 years agoTry to fix Windows compilation error.
sgjesse@chromium.org [Thu, 7 Jul 2011 19:27:48 +0000 (19:27 +0000)]
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

13 years agoAdd inspection of arguments for optimized frames
sgjesse@chromium.org [Thu, 7 Jul 2011 14:29:16 +0000 (14:29 +0000)]
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

13 years agoReduce the number of global constructor calls by changing a constant to a
svenpanne@chromium.org [Thu, 7 Jul 2011 13:57:58 +0000 (13:57 +0000)]
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

13 years agoImplement Object.defineProperty for proxies.
rossberg@chromium.org [Thu, 7 Jul 2011 12:41:20 +0000 (12:41 +0000)]
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

13 years agoDon't check symbol literals for being symbols.
vitalyr@chromium.org [Thu, 7 Jul 2011 12:01:49 +0000 (12:01 +0000)]
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

13 years agoWhen resolving phies use ANY instead of NONE as a policy for phi operands.
vegorov@chromium.org [Thu, 7 Jul 2011 10:22:39 +0000 (10:22 +0000)]
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