Commit Graph

45719 Commits

Author SHA1 Message Date
ager@chromium.org
a0257ca1a0 Only remove the code object that caused the monomorphic prototype
failure instead of clearing the cache.  Clearing the cache makes us
miss subsequent monomorphic prototype failures.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@318 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-16 12:41:36 +00:00
kasperl@chromium.org
6b4f5aba96 Fix issue 67 by copying the receiver function one slot
down too. Also fix lint issue in codegen-arm.cc.

Reviewed offline by Ivan (iposva@chromium.org).
Review URL: http://codereview.chromium.org/3080

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@316 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-16 11:40:21 +00:00
iposva@chromium.org
88192fc01c Fix http://code.google.com/p/v8/issues/detail?id=69 :
- Simplify the switch statement code generation.
- Ensure that the switch value is always popped from the stack.

Credit goes to Feng for isolating the issue and proposing a fix.
Review URL: http://codereview.chromium.org/2888

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@315 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-16 11:23:02 +00:00
kasperl@chromium.org
725dcfb503 Remove the old builtins framework with the huge, nasty
macro.
Review URL: http://codereview.chromium.org/3079

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@314 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-16 10:12:32 +00:00
ager@chromium.org
ec5a24dd64 Keep the inline caches for the builtins object monomorphic when
libraries are loaded lazily.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@313 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-16 09:21:22 +00:00
kasperl@chromium.org
3f67d5b90f Stop adapting the arguments passed to the builtin implementations
of Array.prototype.push and Array.prototype.pop. Avoid going 
through the arguments adaptor trampoline for call ICs that end
up calling a builtin that does not need arguments adaption.
Review URL: http://codereview.chromium.org/2884

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@312 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-16 07:24:46 +00:00
kasperl@chromium.org
64923a6a83 Generalize the Function.prototype.call hooks in the
arguments adaptor code to allow builtins to work without
argument adaptor frames. Get rid of unused JavaScript
implementation of call and apply and the associated
code generation hooks.
Review URL: http://codereview.chromium.org/2850

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@311 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-15 15:02:38 +00:00
ager@chromium.org
cf1a6a0bbc Simplify logic in string-to-double conversion code.
Fast case for strings that are definitely not numbers.
Review URL: http://codereview.chromium.org/2847

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@309 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-15 12:17:36 +00:00
sgjesse@chromium.org
1132d818c6 Fixed broken build of mksnapshot on Windows as there was warnings against
the use of fopen. Change use of fopen to OS::FOpen to get rid of warning.
Review URL: http://codereview.chromium.org/2846

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@303 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-15 10:57:53 +00:00
deanm@chromium.org
57d29fa44f Remove EOL trailing whitespace.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@302 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-15 09:24:59 +00:00
deanm@chromium.org
1a0ccbd927 Move the Counters to structures that can be POD initialized, avoiding the need for static constructors on program startup. They were only default initializing and doing some unneeded string operations.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@301 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-15 08:59:31 +00:00
iposva@chromium.org
27e8ffe324 - Add support for building the ARM simulator version of V8 to the Xcode project.
- Added new compilation-cache.[cc|h] files.
- Fixed log.cc to be able to build without ENABLE_LOGGING_AND_PROFILING defined.

The next step is to mirror the xcconfigs in a separate change.
Review URL: http://codereview.chromium.org/1948

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@300 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-12 17:25:38 +00:00
deanm@chromium.org
b602106195 The serialization system handles some flag parsing itself, which is a bad idea. For now, update the internal strings, since they will be underbar versions in the new flag system.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@299 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-12 12:17:33 +00:00
deanm@chromium.org
c178664049 Fix some arm related flags with the new flag system.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@298 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-12 11:00:36 +00:00
deanm@chromium.org
f119eb772e Move a few bits of mksnapshot over to the new flag system.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@297 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-12 10:31:37 +00:00
deanm@chromium.org
77196c5771 This is a new static flag system, designed to have all flags in a central place, and compiled into the binary without requiring static constructors for registration. All flags are moved out of the specific modules and into flags.defs, with different sections for debug, release, etc. The flag variables are always defined. For example, a debug flag in release mode still exists, but is read only and set to the default value.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@296 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-12 10:19:33 +00:00
kmillikin@chromium.org
b5d8866ced Flexo is tired, but this should perk him up. Single-argument constructors
should be marked explicit.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@295 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-12 08:52:22 +00:00
kmillikin@chromium.org
0c4fd55c57 Change the code generator state constructor to implicitly push the state on
stack, rather than explicitly saving and restoring it.
Review URL: http://codereview.chromium.org/3002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@294 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-12 08:24:57 +00:00
sgjesse@chromium.org
5e4020ed07 Removed SCons warning flags duplication on Windows. It now uses
the same scheme as for gcc on Linux.
Review URL: http://codereview.chromium.org/2424

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@292 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-12 07:08:55 +00:00
iposva@chromium.org
0c936baaab Satisfy lint!
TBR=nobody

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@291 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-12 04:59:41 +00:00
iposva@chromium.org
ffa7f7bd5b - Update test status file with fixed tests for ARM and add failing test tracked by issue 67.
- Remove debugging aid stop("Generate_ArgumentsAdaptorTrampoline - non-function call")
- Cleanup comment

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@290 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-12 04:31:34 +00:00
iposva@chromium.org
c5ee961882 Adapt to new calling convention on ARM:
- Simplified frame entry and frame exit code.
- Added ArgumentsAdaptorTrampoline and check for matching argument counts in the InvokePrologue.
- Removed definition and uses of USE_OLD_CALLING_CONVENTIONS.
- Changed MacroAssembler::InvokeBuiltin to match ia32 version.
- Start introducing convenience instructions in the ARM assembler as needed. These instructions take all Register parameters to avoid extra typing of "Operand(reg)".


To keep the architectures in sync these changes have been made to the ia32 files:
- Changed MacroAssembler::EnterFrame(StackFrame::Type type) to MacroAssembler::EnterInternalFrame().


These parts are still missing:
- unimplemented: Builtins::Generate_FunctionApply - large limit
- unimplemented: Builtins::Generate_ArgumentsAdaptorTrampoline - non-function call
- The files have not been lint'd yet.


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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@289 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-12 03:29:06 +00:00
ager@chromium.org
b6ad53054f Add back the CCFLAGS to the CXXFLAGS. Leaving them out caused V8 to
be build without optimization flags.
Review URL: http://codereview.chromium.org/1947

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@288 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-11 18:46:29 +00:00
christian.plesner.hansen@gmail.com
66b18b9975 Fixed arm disassembler build problems.
Fixed lint issue in platform-macos.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@287 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-11 16:41:19 +00:00
kmillikin@chromium.org
4afbecf50e Fix performace regression due to missed peephole optimization
opportunity.
Review URL: http://codereview.chromium.org/2002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@286 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-11 15:16:08 +00:00
christian.plesner.hansen@gmail.com
3764f52a4e Fixed build problem on mac, lint issues and a test failure on win32.
Review URL: http://codereview.chromium.org/2601

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@285 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-11 15:03:22 +00:00
sgjesse@chromium.org
211751f81e Apply the flags to the SCons environment used to link the library to have the
LINKFLAGS take effect. This fixes building shared libraries on 64-bit Linux.

Removed the CCFLAGS from the CXXFLAGS for Linux as SCons combines these
automatically on Linux. This removed the duplication of flags when compiling on
Linux.

On Linux SCons defines CXXCOM as follows

  'CXXCOM': '$CXX -o $TARGET -c $CXXFLAGS $CCFLAGS $_CCCOMCOM $SOURCES'

whereas on Windows it is

  'CXXCOM': '$CXX $CXXFLAGS $CCCOMFLAGS'

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@284 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-11 14:39:11 +00:00
christian.plesner.hansen@gmail.com
32cf7fd9a1 Replaced calls to functions that msvc consider deprecated. Used
Vector<...> in more places to be sure that buffers have a length
associated with them.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@283 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-11 14:34:48 +00:00
kasperl@chromium.org
1daa61fe2d Fix issue 65 by making sure not to leak any of the cache
tables when doing compilation cache operations.
Review URL: http://codereview.chromium.org/1939

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@280 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-11 13:39:48 +00:00
ager@chromium.org
888abb1bfd Fix bug in function context slot lookup. There were two problems: we
read at the wrong index in the scope information and we forgot to add
Context::MIN_CONTEXT_SLOTS to the index.

This fixes issue 24.
Review URL: http://codereview.chromium.org/1938

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@279 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-11 13:00:30 +00:00
lrn@chromium.org
9d3557ef99 Formatting fixes (e.g., whitespace at end of line)
Added in-file documentation for --log-regexp switch.


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@278 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-11 12:57:27 +00:00
olehougaard
d667ef8e00 Enabling a few tests when using snapshots.
Some of the tests that were disabled when using snapshot has been modified and reenabled.
Review URL: http://codereview.chromium.org/1937

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@277 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-11 12:33:31 +00:00
kasperl@chromium.org
eed1ab336c Don't run the string resource tests threaded for now.
I'm debugging the issue and will file an issue for it.
Review URL: http://codereview.chromium.org/2419

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@276 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-11 12:25:37 +00:00
lrn@chromium.org
7c638ec3e6 Fixed build error on Linux.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@273 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-11 11:59:00 +00:00
lrn@chromium.org
c5d98b775d Added -log-regexp option to log all compilations and executions of regular expressions.
Slightly modified SmartPointer.
Made String.ToWideCString return a SmartPointer instead of a plain pointer.



git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@271 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-11 11:24:45 +00:00
kasperl@chromium.org
b5a72a1645 Generalized the EvalCache into a CompilationCache and enabled
it for scripts too. In the context of Chromium, this should 
have a very positive impact on memory consumption for web apps
that run multiple tabs from the same domain with a lot of the
same JavaScript code.

For now, the cache retirement policy is really simple:
Whenever a mark-sweep collection is started we clear the
cache. This guarantees that this change will not have a
huge negative impact on memory consumption, but it may
not be ideal. We should consider a more sophisticated LRU
scheme.
Review URL: http://codereview.chromium.org/1933

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@270 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-11 10:51:52 +00:00
christian.plesner.hansen@gmail.com
6063e76cec Quick lint fix
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@269 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-11 10:37:57 +00:00
kmillikin@chromium.org
c2022ec76e Remove some of the state-dependent behavior from the code generator.
Simplify the code generator by eliminating the access types STORE and
INIT_CONST and delegating code generation for stores to the appropriate AST
nodes.
Review URL: http://codereview.chromium.org/1889

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@265 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-11 08:44:32 +00:00
ager@chromium.org
4ae7f24a3f Update version string and ChangeLog, we are now working on version
0.3.2.
Review URL: http://codereview.chromium.org/2417

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@264 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-11 08:42:29 +00:00
sgjesse@chromium.org
571bc3edb3 Changed the Visual Studio project files to work when V8 is checked out
to a path containing spaces.

BUG=55
Review URL: http://codereview.chromium.org/2416

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@263 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-11 08:05:45 +00:00
christian.plesner.hansen@gmail.com
6bb7f43fa3 Removed Message::GetStackTrace.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@262 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-11 07:29:25 +00:00
ager@chromium.org
f77b1a872e Remove a test from threading tests that make them fail on Mac OS.
Review URL: http://codereview.chromium.org/2415

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@261 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-11 07:28:10 +00:00
christian.plesner.hansen@gmail.com
4d95ac7339 Added option for TryCatches to not capture the message object on
exceptions.

It turned out that the stack overflow fix from before had disabled
message storing in another test.  Previously, stack overflows would
actually cause a message object to start being created but cause
another exception which would not be reported and that's what stopped
the infinite regress.  This change resores that behavior.



git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@259 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-10 14:54:15 +00:00
christian.plesner.hansen@gmail.com
dfe2720903 Fixed stack overflow crash.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@257 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-10 14:03:45 +00:00
christian.plesner.hansen@gmail.com
f5b571e873 Quick fix: copyright header
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@255 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-10 13:05:26 +00:00
christian.plesner.hansen@gmail.com
6974e4b2c7 Fixed bug #57. Introduced String::Utf8Value and replaced a bunch of
uses of String::AsciiValue with String::Utf8Value.  Fixed shell sample
'load' so it doesn't print error messages.



git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@254 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-10 11:41:48 +00:00
ager@chromium.org
255b63ef50 Do not shortcut cons string symbols during garbage collection.
Attempt to flatten cons strings when converting them to symbols so
that symbols will most often be flat strings.
Review URL: http://codereview.chromium.org/1700

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@253 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-10 11:35:05 +00:00
whessev8
195a57b59b This change makes the runtime function %DebugPrint()
print the content of strings in release build, rather
than just a pointer.  This lets test_shell print to stdout.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@251 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-10 10:32:33 +00:00
ager@chromium.org
1aa48bb98f Avoid the creation of a string builder for joining one-element arrays.
Review URL: http://codereview.chromium.org/1888

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@250 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-10 09:37:34 +00:00
iposva@chromium.org
0157bcd8f8 Fix issue http://code.google.com/p/v8/issues/detail?id=58:
- Prevent a clipping of values when converting a double to an unsigned int
  for use as the random generator's seed value.
Review URL: http://codereview.chromium.org/1887

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@246 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-10 06:59:41 +00:00