platform/upstream/v8.git
15 years agoIntroduce a lookup cache class in the runtime system and use it for
ager@chromium.org [Thu, 23 Oct 2008 07:04:56 +0000 (07:04 +0000)]
Introduce a lookup cache class in the runtime system and use it for
keyed loads that enter the runtime.

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

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

15 years agoApply Daniel's patch for array index strings.
kasperl@chromium.org [Thu, 23 Oct 2008 06:20:57 +0000 (06:20 +0000)]
Apply Daniel's patch for array index strings.
Review URL: http://codereview.chromium.org/7869

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

15 years agoUpdate Mozilla test status to reflect that regress-363258
kasperl@chromium.org [Thu, 23 Oct 2008 06:11:39 +0000 (06:11 +0000)]
Update Mozilla test status to reflect that regress-363258
is flaky on Linux and Mac (as well as Windows) and remove
line that refers to non-existing mozilla/... test.
Review URL: http://codereview.chromium.org/7910

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

15 years agoAdded failing test case for bug 124.
kasperl@chromium.org [Thu, 23 Oct 2008 05:49:05 +0000 (05:49 +0000)]
Added failing test case for bug 124.

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

15 years agoAdd a workaround for a compiler gug in GCC 4.2.3. See issue 122 for details.
sgjesse@chromium.org [Wed, 22 Oct 2008 15:04:40 +0000 (15:04 +0000)]
Add a workaround for a compiler gug in GCC 4.2.3. See issue 122 for details.

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

15 years agoRename member variables and functions and clarify comments to try to
kmillikin@chromium.org [Wed, 22 Oct 2008 12:45:33 +0000 (12:45 +0000)]
Rename member variables and functions and clarify comments to try to
make the operation of LabelShadows more understandable.
Review URL: http://codereview.chromium.org/7868

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

15 years agoReplaced the implementation of %StringEquals, which was a poorly
christian.plesner.hansen@gmail.com [Wed, 22 Oct 2008 12:33:20 +0000 (12:33 +0000)]
Replaced the implementation of %StringEquals, which was a poorly
optimized duplicate of String::Equals, with a simple call to
String::Equals.

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

15 years ago- Changed regexp logging to include the string being matched and to
christian.plesner.hansen@gmail.com [Wed, 22 Oct 2008 12:00:19 +0000 (12:00 +0000)]
- Changed regexp logging to include the string being matched and to
  escape commas.
- Fixed issue with block-comparing unaligned strings on arm.
- Added short documentation to one of the Persistent constructors.

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

15 years agoImprove error reporting in benchmarks.
kasperl@chromium.org [Wed, 22 Oct 2008 11:55:08 +0000 (11:55 +0000)]
Improve error reporting in benchmarks.
Review URL: http://codereview.chromium.org/8053

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

15 years agoFix warning from Windows about loss of data in cast-less assignment.
erik.corry@gmail.com [Wed, 22 Oct 2008 11:13:48 +0000 (11:13 +0000)]
Fix warning from Windows about loss of data in cast-less assignment.
Review URL: http://codereview.chromium.org/7865

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

15 years ago- Applied FixedArray::WriteBarrierMode to NewArgumentsFast.
bak@chromium.org [Wed, 22 Oct 2008 09:47:20 +0000 (09:47 +0000)]
- Applied FixedArray::WriteBarrierMode to NewArgumentsFast.

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

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

15 years agoIncorporate patches by Paolo Giarrusso to allow profiling
kasperl@chromium.org [Wed, 22 Oct 2008 09:46:09 +0000 (09:46 +0000)]
Incorporate patches by Paolo Giarrusso to allow profiling
C++ functions in shared libraries, building in directories
containing spaces, and using named constants better.
Review URL: http://codereview.chromium.org/7864

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

15 years agoUse direct copy and templates to speed up flattening of strings.
erik.corry@gmail.com [Wed, 22 Oct 2008 09:09:07 +0000 (09:09 +0000)]
Use direct copy and templates to speed up flattening of strings.
Review URL: http://codereview.chromium.org/8011

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

15 years ago- Optimized CopyFixedArray and CopyJSObject.
bak@chromium.org [Wed, 22 Oct 2008 08:21:18 +0000 (08:21 +0000)]
- Optimized CopyFixedArray and CopyJSObject.
- Refactored block copying.

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

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

15 years agoRefactor the smi case inlining for binary operations, so
kasperl@chromium.org [Wed, 22 Oct 2008 07:47:02 +0000 (07:47 +0000)]
Refactor the smi case inlining for binary operations, so
it's easier to inline the code on demand. Right now, we still
only inline the smi case code for bitwise operations.
Review URL: http://codereview.chromium.org/7669

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

15 years agoAdded handling of empty handles to String::AsciiValue and String::Value.
sgjesse@chromium.org [Wed, 22 Oct 2008 06:30:29 +0000 (06:30 +0000)]
Added handling of empty handles to String::AsciiValue and String::Value.
Review URL: http://codereview.chromium.org/7832

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

15 years ago- ip register cannot be used when accessing large constants in the instruction
iposva@chromium.org [Tue, 21 Oct 2008 22:40:14 +0000 (22:40 +0000)]
- ip register cannot be used when accessing large constants in the instruction
  stream. Enhance the debug code to save and restore the unused holder_reg
  at these points.
- Fix lint issues.

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

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

15 years agoNo more failures than before. It is ready to be reviewed.
feng@chromium.org [Tue, 21 Oct 2008 20:11:50 +0000 (20:11 +0000)]
No more failures than before. It is ready to be reviewed.

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

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

15 years agoFix style issues.
feng@chromium.org [Tue, 21 Oct 2008 20:08:49 +0000 (20:08 +0000)]
Fix style issues.

TBR=iposva

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

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

15 years agoFixed the build error in debug mode.
feng@chromium.org [Tue, 21 Oct 2008 19:52:07 +0000 (19:52 +0000)]
Fixed the build error in debug mode.

TBR = iposva

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

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

15 years agoInitialize the variable to a valid value.
feng@chromium.org [Tue, 21 Oct 2008 19:14:22 +0000 (19:14 +0000)]
Initialize the variable to a valid value.

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

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

15 years agoSplit window support from V8.
feng@chromium.org [Tue, 21 Oct 2008 19:07:58 +0000 (19:07 +0000)]
Split window support from V8.

Here is a description of the background and design of split window in Chrome and V8:
https://docs.google.com/a/google.com/Doc?id=chhjkpg_47fwddxbfr

This change list splits the window object into two parts: 1) an inner window object used as the global object of contexts; 2) an outer window object exposed to JavaScript and accessible by the name 'window'. Firefox did it awhile ago, here are some discussions: https://wiki.mozilla.org/Gecko:SplitWindow. One additional benefit of splitting window in Chrome is that accessing global variables don't need security checks anymore, it can improve applications that use many global variables.

V8 support of split window:
  There are a small number of changes on V8 api to support split window:
Security context is removed from V8, so does related API functions;
A global object can be detached from its context and reused by a new context;
Access checks on an object template can be turned on/off by default;
An object can turn on its access checks later;

  V8 has a new object type, ApiGlobalObject, which is the outer window object type. The existing JSGlobalObject becomes the inner window object type. Security checks are moved from JSGlobalObject to ApiGlobalObject. ApiGlobalObject is the one exposed to JavaScript, it is accessible through Context::Global(). ApiGlobalObject's prototype is set to JSGlobalObject so that property lookups are forwarded to JSGlobalObject. ApiGlobalObject forwards all other property access requests to JSGlobalObject, such as SetProperty, DeleteProperty, etc.

  Security token is moved to a global context, and ApiGlobalObject has a reference to its global context. JSGlobalObject has a reference to its global context as well. When accessing properties on a global object in JavaScript, the domain security check is performed by comparing the security token of the lexical context (Top::global_context()) to the token of global object's context. The check is only needed when the receiver is a window object, such as 'window.document'. Accessing global variables, such as 'var foo = 3; foo' does not need checks because the receiver is the inner window object.

  When an outer window is detached from its global context (when a frame navigates away from a page), it is completely detached from the inner window. A new context is created for the new page, and the outer global object is reused. At this point, the access check on the DOMWindow wrapper of the old context is turned on. The code in old context is still able to access DOMWindow properties, but it has to go through domain security checks.

It is debatable on how to implement the outer window object. Currently each property access function has to check if the receiver is ApiGlobalObject type. This approach might be error-prone that one may forget to check the receiver when adding new functions. It is unlikely a performance issue because accessing global variables are more common than 'window.foo' style coding.

I am still working on the ARM port, and I'd like to hear comments and suggestions on the best way to support it in V8.

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

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

15 years agoMake one-ascii-character-string a symbol in its cache.
feng@chromium.org [Tue, 21 Oct 2008 16:28:44 +0000 (16:28 +0000)]
Make one-ascii-character-string a symbol in its cache.

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

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

15 years agoMinor fixes
sgjesse@chromium.org [Tue, 21 Oct 2008 15:24:58 +0000 (15:24 +0000)]
Minor fixes

  - support changes to js2c in Visual Studio build
  - handle empty handles in Utf8Value
  - add /nologo to sample link in SCons build

TBR=plesner
Review URL: http://codereview.chromium.org/7816

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

15 years ago- Update js2c.py to take a type parameter.
iposva@chromium.org [Tue, 21 Oct 2008 14:32:23 +0000 (14:32 +0000)]
- Update js2c.py to take a type parameter.
- Use the type parameter in the Xcode run script phases when building the
  libraries.cc and libraries-empty.cc files.

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

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

15 years agoMinor cleanups.
kasperl@chromium.org [Tue, 21 Oct 2008 14:11:22 +0000 (14:11 +0000)]
Minor cleanups.
Review URL: http://codereview.chromium.org/8008

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

15 years agoAdded development shell (d8) including readline support, counters and
christian.plesner.hansen@gmail.com [Tue, 21 Oct 2008 09:12:27 +0000 (09:12 +0000)]
Added development shell (d8) including readline support, counters and
completion.

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

15 years ago- Cleaned up Heap::CopyObject. Inlined fast case.
bak@chromium.org [Tue, 21 Oct 2008 08:48:11 +0000 (08:48 +0000)]
- Cleaned up Heap::CopyObject. Inlined fast case.

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

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

15 years agoFix bug 1439135 (slicedstring on constring not flat)
erik.corry@gmail.com [Tue, 21 Oct 2008 08:08:17 +0000 (08:08 +0000)]
Fix bug 1439135 (slicedstring on constring not flat)
Review URL: http://codereview.chromium.org/7809

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

15 years agoAdded failing test case for bug 1439135.
kasperl@chromium.org [Tue, 21 Oct 2008 07:39:53 +0000 (07:39 +0000)]
Added failing test case for bug 1439135.
Review URL: http://codereview.chromium.org/7808

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

15 years agoAdded string equality by reading int-sized blocks of characters for
christian.plesner.hansen@gmail.com [Mon, 20 Oct 2008 11:38:32 +0000 (11:38 +0000)]
Added string equality by reading int-sized blocks of characters for
flat strings with the same representation.

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

15 years agoSet the mime type of run.html.
christian.plesner.hansen [Mon, 20 Oct 2008 08:46:22 +0000 (08:46 +0000)]
Set the mime type of run.html.

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

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

15 years ago-Fixed non debug build with an ifdef.
bak@chromium.org [Mon, 20 Oct 2008 07:37:51 +0000 (07:37 +0000)]
-Fixed non debug build with an ifdef.

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

15 years ago- Changed gc-greedy to ignore boostrapping.
bak@chromium.org [Mon, 20 Oct 2008 07:31:33 +0000 (07:31 +0000)]
- Changed gc-greedy to ignore boostrapping.
  This change reduces the running time of tests without snapshotting.

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

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

15 years ago- Optimized copying of FixedArray.
bak@chromium.org [Mon, 20 Oct 2008 06:35:28 +0000 (06:35 +0000)]
- Optimized copying of FixedArray.

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

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

15 years ago- Eliminated superfluous type tests in IsMatch.
bak@chromium.org [Fri, 17 Oct 2008 12:36:23 +0000 (12:36 +0000)]
- Eliminated superfluous type tests in IsMatch.

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

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

15 years ago - Missing files
bak@chromium.org [Fri, 17 Oct 2008 11:36:42 +0000 (11:36 +0000)]
 - Missing files

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

15 years agoAllow larger semispaces.
ager@chromium.org [Fri, 17 Oct 2008 11:33:13 +0000 (11:33 +0000)]
Allow larger semispaces.
Review URL: http://codereview.chromium.org/7476

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

15 years ago- Specialized IsClassOf for Number, Boolean, Arguments, and Function.
bak@chromium.org [Fri, 17 Oct 2008 11:33:04 +0000 (11:33 +0000)]
- Specialized IsClassOf for Number, Boolean, Arguments, and Function.

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

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

15 years agoChanged Boyer-Moore's bad-char table code:
lrn@chromium.org [Fri, 17 Oct 2008 11:15:54 +0000 (11:15 +0000)]
Changed Boyer-Moore's bad-char table code:
- Reduce it to half size if the pattern is ASCII, saving on initialization
- If pattern is ASCII and subject is not, any non-ASCII char can cause a
  full pattern-length shift, even if we haven't indexed the entire pattern.
- Use memset to initialize buffer in the common case where the pattern is
  shorter than the max significant suffix limit.

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

15 years agoCode formatting changes.
kmillikin@chromium.org [Fri, 17 Oct 2008 09:54:34 +0000 (09:54 +0000)]
Code formatting changes.
Review URL: http://codereview.chromium.org/7346

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

15 years ago- Removed a few indirections by making the two SemiSpaces
bak@chromium.org [Fri, 17 Oct 2008 09:13:27 +0000 (09:13 +0000)]
- Removed a few indirections by making the two SemiSpaces
  part of NewSpace and made NewSpace statically allocated.
- Eliminated indirection in MigrateObject.

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

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

15 years agoFix issue 116 by returning the value from SetFastElement.
kasperl@chromium.org [Fri, 17 Oct 2008 06:36:35 +0000 (06:36 +0000)]
Fix issue 116 by returning the value from SetFastElement.
Review URL: http://codereview.chromium.org/7615

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

15 years ago* Special case for last char in BM-match
lrn@chromium.org [Thu, 16 Oct 2008 11:33:19 +0000 (11:33 +0000)]
* Special case for last char in BM-match
* Patch from Erik Corry to separate BM-algoritm into special case
  functions. Also changes condition for bailing out of simple search.
* Added simple search with no bailout for very short patterns.

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

15 years agoUpdate ChangeLog and version number to prepare for new trunk version.
ager@chromium.org [Thu, 16 Oct 2008 08:02:51 +0000 (08:02 +0000)]
Update ChangeLog and version number to prepare for new trunk version.
We are now working on version 0.4.0.
Review URL: http://codereview.chromium.org/7433

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

15 years ago-Eliminated a excessive memory traffic in CopyObject.
bak@chromium.org [Thu, 16 Oct 2008 07:17:26 +0000 (07:17 +0000)]
-Eliminated a excessive memory traffic in CopyObject.

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

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

15 years agoAddressed review comment by Kasper:
iposva@chromium.org [Thu, 16 Oct 2008 05:58:09 +0000 (05:58 +0000)]
Addressed review comment by Kasper:
- Factor out property load from CALL_IC and LOAD_IC.

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

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

15 years ago- Fix instance size calculation to ensure that the object cannot
iposva@chromium.org [Thu, 16 Oct 2008 05:45:33 +0000 (05:45 +0000)]
- Fix instance size calculation to ensure that the object cannot
  overflow the maximum object size.
- Added a test that will crash previous revisions.

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

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

15 years agoFixes bug 1426704.
whesse@chromium.org [Wed, 15 Oct 2008 10:22:26 +0000 (10:22 +0000)]
Fixes bug 1426704.
Constructors no longer print out their source code.  They print [native code]
instead.  Some web applications don't like constructors with complex ToString
results.
Review URL: http://codereview.chromium.org/7345

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

15 years agoReview-related changes
christian.plesner.hansen@gmail.com [Wed, 15 Oct 2008 08:50:34 +0000 (08:50 +0000)]
Review-related changes

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

15 years agoAdded a way to add timestamps to the log file name
christian.plesner.hansen@gmail.com [Wed, 15 Oct 2008 08:50:22 +0000 (08:50 +0000)]
Added a way to add timestamps to the log file name

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

15 years agoFix CALL_IC to read properties out of the object in the presence
iposva@chromium.org [Wed, 15 Oct 2008 07:48:45 +0000 (07:48 +0000)]
Fix CALL_IC to read properties out of the object in the presence
of in-object properties instead of always going to read out of
the properties array.

TBR=ager

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

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

15 years agoFix lint problem.
iposva@chromium.org [Wed, 15 Oct 2008 06:14:39 +0000 (06:14 +0000)]
Fix lint problem.

TBR=kasperl

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

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

15 years agoAllocate room for expected number of properties based on the
iposva@chromium.org [Wed, 15 Oct 2008 06:03:26 +0000 (06:03 +0000)]
Allocate room for expected number of properties based on the
constructor in the JSObject. This removes the need to allocate
a properties array if the object is never assigned any extra
properties.

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

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

15 years agoMove code (already reviewed) around in the source file and change a
kmillikin@chromium.org [Tue, 14 Oct 2008 14:41:47 +0000 (14:41 +0000)]
Move code (already reviewed) around in the source file and change a
few pop instructions that were missed before.
Review URL: http://codereview.chromium.org/7296

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

15 years agoTest for non-ASCII character in a needle used on an ASCII string is now handled first
lrn@chromium.org [Tue, 14 Oct 2008 14:25:37 +0000 (14:25 +0000)]
Test for non-ASCII character in a needle used on an ASCII string is now handled first
instead of only in the unrelated table-construction of Boyer-Moore.

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

15 years agoSelecting between simple text search and Boyer-Moore now happens by trying
lrn@chromium.org [Tue, 14 Oct 2008 14:02:48 +0000 (14:02 +0000)]
Selecting between simple text search and Boyer-Moore now happens by trying
the simple search and bailing out and continuing with Boyer-Moore if the simple
version seems too expensive.

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

15 years agoThe BoyerMooreStringSearch now uses separate functions to build its tables.
lrn@chromium.org [Tue, 14 Oct 2008 13:25:54 +0000 (13:25 +0000)]
The BoyerMooreStringSearch now uses separate functions to build its tables.
This hightens readability.

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

15 years agoBoyer-Moore delayes computation of Good-Suffix table until bad-char has shown itself
lrn@chromium.org [Tue, 14 Oct 2008 12:45:06 +0000 (12:45 +0000)]
Boyer-Moore delayes computation of Good-Suffix table until bad-char has shown itself
to be insufficient.x
Changed order of tests in loop in simple text search.
Changed limit on pattern length for when we pick simple search.

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

15 years agoReduced the string length and rounds in the extensive indexOf-test in string-indexof.js.
lrn@chromium.org [Tue, 14 Oct 2008 10:56:40 +0000 (10:56 +0000)]
Reduced the string length and rounds in the extensive indexOf-test in string-indexof.js.

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

15 years agoTesting that sorting behaves reasonably with a bad comparison function.
olehougaard [Tue, 14 Oct 2008 10:50:44 +0000 (10:50 +0000)]
Testing that sorting behaves reasonably with a bad comparison function.
Review URL: http://codereview.chromium.org/7137

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

15 years agoFixed bug 114
christian.plesner.hansen@gmail.com [Tue, 14 Oct 2008 09:13:23 +0000 (09:13 +0000)]
Fixed bug 114

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

15 years agoMost operations are faster than before.
lrn@chromium.org [Tue, 14 Oct 2008 08:57:31 +0000 (08:57 +0000)]
Most operations are faster than before.

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

15 years agoFix a missing peephole optimization in ia32 code exposed with Kevin's
iposva@chromium.org [Mon, 13 Oct 2008 20:15:17 +0000 (20:15 +0000)]
Fix a missing peephole optimization in ia32 code exposed with Kevin's
change.

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

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

15 years agoFix lint error in codegen-ia32.cc.
whesse@chromium.org [Mon, 13 Oct 2008 10:46:11 +0000 (10:46 +0000)]
Fix lint error in codegen-ia32.cc.
Review URL: http://codereview.chromium.org/7264

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

15 years agoAdd a VirtualFrame class to the IA32 code generator. All frame
kmillikin@chromium.org [Mon, 13 Oct 2008 07:56:13 +0000 (07:56 +0000)]
Add a VirtualFrame class to the IA32 code generator.  All frame
accesses (eg, parameters, locals, and the expression stack elements)
and mutation (pushes and pops) go through the virtual frame.

The frame initially contains no state, and directly emits instructions
in the obvious way.  It is not currently used for deferred code.
Review URL: http://codereview.chromium.org/7076

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

15 years ago- Omit frame pointers when using GCC.
bak@chromium.org [Fri, 10 Oct 2008 13:15:59 +0000 (13:15 +0000)]
- Omit frame pointers when using GCC.

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

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

15 years ago- Inlined JSArray::SetContent.
bak@chromium.org [Fri, 10 Oct 2008 10:27:44 +0000 (10:27 +0000)]
- Inlined JSArray::SetContent.
- Implemented Runtime_KeyedGetProperty to make slow case faster.

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

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

15 years agoImprove profiler output to make it easier to see the
kasperl@chromium.org [Fri, 10 Oct 2008 09:26:40 +0000 (09:26 +0000)]
Improve profiler output to make it easier to see the
anonymous functions.
Review URL: http://codereview.chromium.org/7075

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

15 years agoIntroduce a special kind of frames for construct frames, e.g.
kasperl@chromium.org [Fri, 10 Oct 2008 09:09:38 +0000 (09:09 +0000)]
Introduce a special kind of frames for construct frames, e.g.
the trampoline frames introduced for invoking functions through
the new keyword.
Review URL: http://codereview.chromium.org/7223

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

15 years agoMove const qualifies around to avoid GCC warnings. (GCC 4.3.2)
erik.corry@gmail.com [Fri, 10 Oct 2008 08:33:06 +0000 (08:33 +0000)]
Move const qualifies around to avoid GCC warnings. (GCC 4.3.2)
Patch by Seo Sanghyeon sanxiyn@gmail.com, reviewed by Erik Corry.

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

15 years agoAdd codegen-arm.h and codegen-ia32.h to VS project file.
kasperl@chromium.org [Fri, 10 Oct 2008 06:40:11 +0000 (06:40 +0000)]
Add codegen-arm.h and codegen-ia32.h to VS project file.
Review URL: http://codereview.chromium.org/7063

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

15 years agoFix typo.
kasperl@chromium.org [Fri, 10 Oct 2008 06:37:49 +0000 (06:37 +0000)]
Fix typo.

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

15 years agoMake strict equality checks faster on IA32 by doing
kasperl@chromium.org [Fri, 10 Oct 2008 06:26:35 +0000 (06:26 +0000)]
Make strict equality checks faster on IA32 by doing
more work in the CompareStub. I'll port this to ARM
once I'm satisfied with the performance improvements.
Review URL: http://codereview.chromium.org/7014

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

15 years agoSimplify CodeGenerator hierarchy by not using a base class.
iposva@chromium.org [Fri, 10 Oct 2008 00:00:52 +0000 (00:00 +0000)]
Simplify CodeGenerator hierarchy by not using a base class.
There is nothing virtual about a CodeGenerator since we
either generate code for one platform or for the other.

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

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

15 years ago- Optimized JSArray allocation in runtime system by using NewJSArrayWithElements.
bak@chromium.org [Thu, 9 Oct 2008 13:34:17 +0000 (13:34 +0000)]
- Optimized JSArray allocation in runtime system by using NewJSArrayWithElements.

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

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

15 years agoReverted the changes to jscre because the arm cross-compiler dies with
christian.plesner.hansen@gmail.com [Thu, 9 Oct 2008 12:18:48 +0000 (12:18 +0000)]
Reverted the changes to jscre because the arm cross-compiler dies with
an internal error when compiling templateified jscre.  We really need
to update that damn arm compiler.

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

15 years agoIf an allocation is so huge that we cannot code the size needed in the failure
erik.corry@gmail.com [Thu, 9 Oct 2008 11:26:37 +0000 (11:26 +0000)]
If an allocation is so huge that we cannot code the size needed in the failure
object then we just return an out of memory failure object (instead of a retry
after GC failure object).  Not all places that checked for retry-after-GC were
able to handle an immediate out of memory failure.

This fixes http://code.google.com/p/v8/issues/detail?id=70
Review URL: http://codereview.chromium.org/6340

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

15 years ago- Specialized jscre on the type of the string involved.
christian.plesner.hansen@gmail.com [Thu, 9 Oct 2008 10:30:33 +0000 (10:30 +0000)]
- Specialized jscre on the type of the string involved.
- Specialized jscre on the type of the string involved.

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

15 years agoThis change rewrites some of the code to add properties to an object.
whesse@chromium.org [Thu, 9 Oct 2008 08:57:32 +0000 (08:57 +0000)]
This change rewrites some of the code to add properties to an object.
It removes the ReplaceConstantFunction code, and replaces it with
new ConvertDescriptorToField code, that is also used in other places.
Functions CopyRemove and CopyReplace on DescriptorArray are removed.
Function AddFastProperty is simplified by removing the
CONSTANT_TRANSITION case.
Review URL: http://codereview.chromium.org/6528

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

15 years ago- Specialized slow-case string equality nine ways based on the
christian.plesner.hansen@gmail.com [Thu, 9 Oct 2008 08:08:04 +0000 (08:08 +0000)]
- Specialized slow-case string equality nine ways based on the
  underlying string representation of the two strings involved.
- Renamed ascii and two byte string classes to sequential ascii and
  sequential two byte, and renamed IsAscii and friends to
  IsAsciiRepresentation.  This is to make a clear distinction between
  strings with an ascii/two-byte representation, of which there is
  four, and flat sequential ascii/two-byte string.

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

15 years agoFix typo in comment (issue 108).
kasperl@chromium.org [Thu, 9 Oct 2008 06:55:08 +0000 (06:55 +0000)]
Fix typo in comment (issue 108).

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

15 years agoFix typo in include/v8.h (issue 108) and mark test-spaces/LargeObjectSpace as flaky...
kasperl@chromium.org [Thu, 9 Oct 2008 05:39:00 +0000 (05:39 +0000)]
Fix typo in include/v8.h (issue 108) and mark test-spaces/LargeObjectSpace as flaky on ARM (issue 113). TBR=ager@chromium.org

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

15 years agoMake sure to check that the function prototype is a
kasperl@chromium.org [Wed, 8 Oct 2008 14:03:53 +0000 (14:03 +0000)]
Make sure to check that the function prototype is a
real JavaScript object before looking for it in the
prototype chain during instanceof checks.
Review URL: http://codereview.chromium.org/6579

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

15 years agoImprove the generated code for the instanceof operator,
kasperl@chromium.org [Wed, 8 Oct 2008 13:33:16 +0000 (13:33 +0000)]
Improve the generated code for the instanceof operator,
and extended the instanceof test case.
Review URL: http://codereview.chromium.org/6341

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

15 years agoMinor adjustments to the object migration code: When copying
kasperl@chromium.org [Wed, 8 Oct 2008 09:01:10 +0000 (09:01 +0000)]
Minor adjustments to the object migration code: When copying
large objects we use memcpy. If this turns out to be a wash
on the benchmarks, I'd be happy to rip it out again.
Review URL: http://codereview.chromium.org/6576

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

15 years agoFix incorrect short cut test that assumed ASCII strings could be Latin1.
erik.corry@gmail.com [Wed, 8 Oct 2008 08:05:14 +0000 (08:05 +0000)]
Fix incorrect short cut test that assumed ASCII strings could be Latin1.
Review URL: http://codereview.chromium.org/6542

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

15 years agoFixed wrong filename in Visual Studio project file.
sgjesse@chromium.org [Wed, 8 Oct 2008 07:36:44 +0000 (07:36 +0000)]
Fixed wrong filename in Visual Studio project file.
Review URL: http://codereview.chromium.org/6336

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

15 years agoMoved the function GetValue from the code generator to the Reference
kmillikin@chromium.org [Wed, 8 Oct 2008 07:24:06 +0000 (07:24 +0000)]
Moved the function GetValue from the code generator to the Reference
helper class.

As a consequence, also removed the optional Reference from the code
generator state and got rid of some state-dependent behavior in the
code generator.
Review URL: http://codereview.chromium.org/6538

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

15 years agoFix broken build.
kasperl@chromium.org [Tue, 7 Oct 2008 14:00:28 +0000 (14:00 +0000)]
Fix broken build.
Review URL: http://codereview.chromium.org/6305

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

15 years ago- Changed the stack size in PreallocatedMemoryThread from 16K to 32K
bak@chromium.org [Tue, 7 Oct 2008 13:26:24 +0000 (13:26 +0000)]
- Changed the stack size in PreallocatedMemoryThread from 16K to 32K
  to make flexo happy.

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

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

15 years agoKMP algorithm is still left in the source. If this change checks out to be faster...
lrn@chromium.org [Tue, 7 Oct 2008 13:25:49 +0000 (13:25 +0000)]
KMP algorithm is still left in the source. If this change checks out to be faster, it should be removed.

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

15 years agoRolled back eager hash calculation during flattening. Introduced
christian.plesner.hansen@gmail.com [Tue, 7 Oct 2008 13:04:56 +0000 (13:04 +0000)]
Rolled back eager hash calculation during flattening.  Introduced
eager flattening of really short strings and lookup of one-character
strings in the one-character symbol cache.

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

15 years ago-Fixed regression in S15.5.5.1_A5.js.
bak@chromium.org [Tue, 7 Oct 2008 12:06:48 +0000 (12:06 +0000)]
-Fixed regression in S15.5.5.1_A5.js.
 I eliminated the fast case check in ToPrimitive.

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

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

15 years agoMove code generation for storing to a reference out of the AST nodes, and
kmillikin@chromium.org [Tue, 7 Oct 2008 11:19:44 +0000 (11:19 +0000)]
Move code generation for storing to a reference out of the AST nodes, and
onto the platform-specific Reference class defined in codegen-*.cc.  This
removes all of the static code generator functions.
Review URL: http://codereview.chromium.org/6527

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

15 years ago- Added %IsArrayClass, %IsDateClass, and %IsStringClass.
bak@chromium.org [Tue, 7 Oct 2008 10:54:50 +0000 (10:54 +0000)]
- Added %IsArrayClass, %IsDateClass, and %IsStringClass.
- Added the FLOOR macro that only works on Number objects.
- Added LocalTimeNoCheck in the date code to eliminate some isNaN checks.
- Change computation of four_year_cycle_table to load time.
- Added fast case check to EQUALS and STRICT_EQUALS.

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

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

15 years ago- Fixed the parameter pasing to SharedStoreIC_ExtendStorage
bak@chromium.org [Tue, 7 Oct 2008 10:32:39 +0000 (10:32 +0000)]
- Fixed the parameter pasing to SharedStoreIC_ExtendStorage
  for keyed store ic.

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

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

15 years agoCalculate string hash during flattening and convert flat strings to
christian.plesner.hansen@gmail.com [Tue, 7 Oct 2008 10:10:03 +0000 (10:10 +0000)]
Calculate string hash during flattening and convert flat strings to
symbols.

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

15 years ago- Fixed Issue 3201: Embedded Google Calendar crashes the renderer
bak@chromium.org [Tue, 7 Oct 2008 09:28:04 +0000 (09:28 +0000)]
- Fixed Issue 3201: Embedded Google Calendar crashes the renderer
  ExtendStorage did not work with keyed store IC.
- Reduced instructions generated when performing a tail call to
  kSharedStoreIC_ExtendStorage
- Moved test/mjsunit/bugs/bug-109.js
  to test/mjsunit/keyed-storage-extend.js

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

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

15 years agoFixed typo
lrn@chromium.org [Tue, 7 Oct 2008 09:04:23 +0000 (09:04 +0000)]
Fixed typo

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