Commit Graph

193 Commits

Author SHA1 Message Date
olehougaard
77a92988d2 Introduce access control in propertyIsEnumerable.
Also, fix JSObject::getPropertyAttribute() so it deals correctly with access control modifiers.
Review URL: http://codereview.chromium.org/8834

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@665 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-31 09:42:14 +00:00
kasperl@chromium.org
744aedd2d0 Fix natives fuzzing: Let the StringIndexOf runtime function
deal with start indexes that are out of range.
Review URL: http://codereview.chromium.org/8762

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@663 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-31 08:51:26 +00:00
kasperl@chromium.org
95e880ad33 Extend test case to cover calling runtime functions
from JavaScript.
Review URL: http://codereview.chromium.org/8915

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@658 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-30 14:16:02 +00:00
ager@chromium.org
2013421859 Add support for API accessors that prohibit overwriting by accessors
defined in JavaScript code by using __defineGetter__ and
__defineSetter__.

Also, disable access checks when configuring objects created from
templates.
Review URL: http://codereview.chromium.org/8914

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@656 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-30 12:51:06 +00:00
sgjesse@chromium.org
52b2a12684 Added some missing initialization checks to the debugger API.
BUG=3723 (Chromium)
Review URL: http://codereview.chromium.org/8909

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@648 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-30 10:27:28 +00:00
kasperl@chromium.org
a2be3b6f84 Make sure that allocations through CALL_HEAP_FUNCTION
and runtime calls from JavaScript will always succeed
eventually if we have enough memory.
Review URL: http://codereview.chromium.org/8700

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@646 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-30 09:15:58 +00:00
sgjesse@chromium.org
4717ed1de9 Most of the crashing ARM tests failed in debug mode.
TBR=kasperl
Review URL: http://codereview.chromium.org/8698

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@643 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-29 15:50:50 +00:00
sgjesse@chromium.org
10e380400b Skip the tests which currently crash on the ARM simulator.
Review URL: http://codereview.chromium.org/8696

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@642 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-29 14:23:18 +00:00
sgjesse@chromium.org
0b96fb22f3 Added crash detection to tests on Linux.
Added the timeout condition to the CommandOutput class.
Review URL: http://codereview.chromium.org/8695

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@639 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-29 12:51:14 +00:00
kasperl@chromium.org
b5fe75f950 Fix issue with Array.concat not preserving holes in the
top-level arrays.
Review URL: http://codereview.chromium.org/8694

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@635 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-29 10:02:09 +00:00
kmillikin@chromium.org
3450c12ffb Because allocation in large object space can now require checking the
size of the entire old generation, the heap must be (more) properly
set up to test the large object space.
Review URL: http://codereview.chromium.org/8872

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@634 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-29 10:00:38 +00:00
feng@chromium.org
4c1a5810b9 Implement Array::concat function in C++.
The performance of Array::concat is critical of jQuery benchmark from
http://www.dromaeo.com. Our current implementation in JavaScript is very
generic and is several times slower than JSC and SpiderMonkey.

Re-implement Array::concat in C++ to take advantage of underlying implementation
details. This cuts dom-travesal-jquery execution time by half.

We may want to move Array specific implementation into a separate source file,
say jsarray.cc.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@625 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-28 14:47:50 +00:00
kasperl@chromium.org
a71cca5054 Allow string-compare-alignment to pass on ARM simulator.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@611 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-27 16:43:56 +00:00
erik.corry@gmail.com
5f4c9b0960 It seems we haven't nailed the unaligned string compare problem yet.
Review URL: http://codereview.chromium.org/8622

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@610 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-27 15:53:29 +00:00
erik.corry@gmail.com
d7c5ee9120 Test for a bug that was fixed in r554 where we used unaligned accesses on ARM
with surprising results.
Review URL: http://codereview.chromium.org/8619

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@609 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-27 14:42:23 +00:00
erik.corry@gmail.com
6e00a80354 You can't use BinarySearch on an unsorted array and other
sillinesses found while trying to get rid of medium-sized strings.


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@595 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-26 20:50:05 +00:00
kasperl@chromium.org
c128b8d9de Improve code for looking up in context slots in runtime.cc and
use safe casting operations to slot access on contexts when
possible.


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@588 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-24 10:59:40 +00:00
kasperl@chromium.org
91b19fcfe6 Fix lint issue.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@585 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-24 10:15:07 +00:00
sgjesse@chromium.org
5ffd290217 Changed the workarround for a GCC compiler bug to be only active for the GCC
version range for which the bug is known to exist.

Added include to compile with GCC 4.3.1.

BUG=122


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@583 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-24 09:35:27 +00:00
sgjesse@chromium.org
39a5ffbd85 Cleanup of http://codereview.chromium.org/8101.
Changed the catcher_ field to a boolean value and renamed it. Modified the
propagation of the external caught exception to also clear the current
TryCatch if there is no exception as it might hold an exception which has
been bypassed by code in a finally block.

Minor formatting changes to a test.
Review URL: http://codereview.chromium.org/8102

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@576 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-24 06:22:47 +00:00
sgjesse@chromium.org
f7367a9fe6 Posponed the setting of "external_caught_exception" to when leaving JavaScript
execution. This is achieved by storing a pointer to the C++ TryCatch when the
exception is thrown and checking that this is the handler active when leaving
JavaScript.
Review URL: http://codereview.chromium.org/8101

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@570 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-23 12:54:13 +00:00
kasperl@chromium.org
b454b326a1 Fix lint issue.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@569 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-23 11:09:48 +00:00
christian.plesner.hansen@gmail.com
e08ce319ca Added v8::Object::GetProperties method that returns an array of all
the enumerable properties of an object.


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@568 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-23 10:31:49 +00:00
kasperl@chromium.org
b727198587 Fix issue 124 by computing the receiver correctly when
the property is found in a context slot.
Review URL: http://codereview.chromium.org/8097

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@566 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-23 08:42:22 +00:00
sgjesse@chromium.org
63afc7bad3 Changed the message reporting for try { ... } finally { ... } statements to
report the exception when they happen in the try block and not as previously
when re-thrown after execution of the finally block. There is no longer any
message generated by re-throw.

Added test cases for various combinations of try/catch/finally with throw in
different places.

Added a regression directory to the messages tests which is processed by the
test runner.

Added regression tests for the specific bugs fixed.

Runs all the test suites.

BUG=73
BUG=75
Review URL: http://codereview.chromium.org/8050

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@565 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-23 08:40:19 +00:00
christian.plesner.hansen@gmail.com
c7ed0707a3 - Added const in a few places.
- Changed WeakReferenceCallback to take a Persistent<Value> instead of
  a Persistent<Object>.
- Removed Message::GetUnderline and Message::GetScriptData.
- Added Value::IsDate, Date::Cast and Date::Value.


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@564 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-23 08:25:23 +00:00
kasperl@chromium.org
8e675da371 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
2008-10-23 06:11:39 +00:00
kasperl@chromium.org
96733af32b Added failing test case for bug 124.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@558 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-23 05:49:05 +00:00
bak@chromium.org
bf948c8313 - 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
2008-10-22 08:21:18 +00:00
feng@chromium.org
648f6d21c6 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
2008-10-21 20:08:49 +00:00
feng@chromium.org
42ef2c3d77 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
2008-10-21 19:07:58 +00:00
erik.corry@gmail.com
99f5ae88a3 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
2008-10-21 08:08:17 +00:00
kasperl@chromium.org
3d4d596e00 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
2008-10-21 07:39:53 +00:00
bak@chromium.org
7cd44cea9b - 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
2008-10-17 09:13:27 +00:00
kasperl@chromium.org
c63477df3d 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
2008-10-17 06:36:35 +00:00
iposva@chromium.org
6d97b325db - 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
2008-10-16 05:45:33 +00:00
lrn@chromium.org
c46b0e84d4 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
2008-10-14 10:56:40 +00:00
olehougaard
cee2947da0 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
2008-10-14 10:50:44 +00:00
christian.plesner.hansen@gmail.com
a601594796 Fixed bug 114
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@493 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-14 09:13:23 +00:00
lrn@chromium.org
9e0609db8e Most operations are faster than before.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@492 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-14 08:57:31 +00:00
erik.corry@gmail.com
89ac41aff9 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
2008-10-09 11:26:37 +00:00
christian.plesner.hansen@gmail.com
76b1efea2d - 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
2008-10-09 08:08:04 +00:00
kasperl@chromium.org
1aee7c79aa 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
2008-10-09 05:39:00 +00:00
kasperl@chromium.org
b314b46b09 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
2008-10-08 14:03:53 +00:00
kasperl@chromium.org
77643dbef6 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
2008-10-08 13:33:16 +00:00
bak@chromium.org
9dadae1bfb - 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
2008-10-07 09:28:04 +00:00
lrn@chromium.org
ca7668ee32 Fixed typo
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@454 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-07 09:04:23 +00:00
kasperl@chromium.org
f7174fd151 Add reproducible failing test case for bug 109.
Review URL: http://codereview.chromium.org/6300

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@451 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-07 08:11:38 +00:00
sgjesse@chromium.org
47439f3274 Skip the test debug-scripts-request on ARM in debug mode. It has consistently
been running for more than 3 minutes on Arm�g.g.
Review URL: http://codereview.chromium.org/6273

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@447 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-06 15:16:53 +00:00
sgjesse@chromium.org
167d7b4504 Marked a test parsing on ARM as parsing.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@446 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-06 14:30:24 +00:00
sgjesse@chromium.org
c0e04e1e86 Fixed unsafe code where a GC could occour after a Handle had been deferenced.
instances->set(i, *GetScriptWrapper(script));

GetScriptWrapper can call GC. The failure have only been seen on ARM, where
the g++ compiler pulls out the object from the instances handle to a register
before calling GetScriptWrapper causing set to be called on an object which
may have moved.

Marked a test on ARM as no longer flaky, whereas two other fails consistently
but that is no longer related to the problem fixed above.

BUG=1308895
Review URL: http://codereview.chromium.org/6271

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@444 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-06 13:20:27 +00:00
ager@chromium.org
70dcba4024 Exclude the bit-field bits from string hash codes. String hash codes
are always odd if the bit-field bits are included.

Modified a couple of debugger tests that relied on the ordering of
elements in descriptor arrays.  Descriptor arrays are sorted by
hash-code values, so the order changes if we change the hash code.
Review URL: http://codereview.chromium.org/6489

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@440 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-06 09:35:52 +00:00
kasperl@chromium.org
1f38bc429a Adapt the test expectations on ARM to make ARMu pass
in debug mode.
Review URL: http://codereview.chromium.org/6264

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@436 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-06 07:37:24 +00:00
kasperl@chromium.org
5458eac183 Improve performance of arguments object allocation by taking
care of arguments adaptor frames in the generated code.
Review URL: http://codereview.chromium.org/6262

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@434 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-06 06:08:15 +00:00
ager@chromium.org
192d439f45 Update v8natives to use InstallFunctions to get the correct function
names for library functions.
Review URL: http://codereview.chromium.org/6447

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@433 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-03 18:00:28 +00:00
sgjesse@chromium.org
43783fa236 Mark a test as flaky on ARM. Fails on hardware but passes in simulator.Z
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@427 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-03 12:15:32 +00:00
whessev8
d2a8454d2f This change removes the %AddProperty native JavaScript function from V8.
All uses of %AddProperty are replaced by %SetProperty.  A few uses of
IgnoreAttributesAndSetLocalProperty are added, and the runtime version
of it adds a PropertyAttributes argument.  Only the JSObject class
in objects.cc now uses AddProperty, and it can become private.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@426 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-03 12:14:29 +00:00
lrn@chromium.org
17dc503149 Added fast-case switch to ARM.
Refactored to reuse code between ia32 and ARM.
Added tests for switch.


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@424 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-03 12:04:59 +00:00
sgjesse@chromium.org
6a5e5bc50a Removed the print, load, quit and version extensions from the VM. Moved the print extension to the compiler test as it was used there. Changed the serializer tests to only use the gc extension.
This also gets rid of 8 static initializers.
Review URL: http://codereview.chromium.org/6233

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@417 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-03 08:30:22 +00:00
ager@chromium.org
9da356eea6 Make sure that the name accessor on functions return the expected
names.

- Set the correct name of library functions.
- Set the name of C++ callback functions.
- Clean up a couple of out-dated comments related to literal creation.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@414 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-03 07:14:31 +00:00
christian.plesner.hansen@gmail.com
06fa6d1cde - Case-sensitive atomic regular expressions now use the same code as
String.indexOf to do matching.
- The --log option is no longer automatically enabled by the other log
  options.


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@413 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-02 15:35:28 +00:00
olehougaard
864ebf14ad Fixed use of undefined in ArraySort.
Changed 'undefined' in ArraySort to 'void 0'. Also added regression test to catch the error.
Review URL: http://codereview.chromium.org/6073

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@406 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-02 08:58:03 +00:00
kasperl@chromium.org
016fcd4aff Fix issue 86 by keeping track of the fact that finally blocks
are evaluated with an extra element on the stack, which needs
to be taken into account when breaking and continuing. 

I'll clean up the code and add an abstraction for manipulating
the break stack height in a future CL -- I want to try to get
rid of the separate local variable we keep around for the "state"
when running in a finally block.
Review URL: http://codereview.chromium.org/5625

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@400 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-01 07:43:00 +00:00
deanm@chromium.org
7b0ab87baf Remove an ARM jump elimination test.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@396 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-30 10:20:58 +00:00
christian.plesner.hansen@gmail.com
da96a860f0 Added new test type, message, to test error reporting.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@386 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-26 13:06:49 +00:00
olehougaard
acffb377a8 Fix for issue 95.
Fixed QuickSort so it doesn't overflow the stack with non-reflexsive comparison functions.
Review URL: http://codereview.chromium.org/4297

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@382 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-26 09:15:02 +00:00
sgjesse@chromium.org
f2ac600e4b Mark test test-debug/ThreadedDebugging as flaky.
Review URL: http://codereview.chromium.org/5001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@381 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-26 07:57:11 +00:00
christian.plesner.hansen@gmail.com
2969145ba5 which it now does.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@380 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-26 03:44:09 +00:00
christian.plesner.hansen@gmail.com
20e3e2f85f Added copyright headers to tests.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@377 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-25 13:14:23 +00:00
christian.plesner.hansen@gmail.com
2d0c43ad09 - Added support for warnings on unused test rules.
- Added automatic loading of test suites


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@375 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-25 12:38:34 +00:00
olehougaard
69156911be Using quick sort for arrays.
Using quick sort in ArraySort instead of heap sort for better performance.
Review URL: http://codereview.chromium.org/4065

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@374 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-25 11:28:02 +00:00
ager@chromium.org
ff4e9ea134 Make sure that the body of the function created by calling Function is
on a line of its own.  This allows the body to be terminated by a
single-line comment.

Also, make sure to set the name of the function to anonymous after the
fact so that recursion through the name anonymous is not allowed and
so that global variables called anonymous are not shadowed.

This is a fix for http://code.google.com/p/v8/issues/detail?id=85
Review URL: http://codereview.chromium.org/4248

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@370 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-25 07:35:45 +00:00
feng@chromium.org
e048ec8c44 This is a fix of issue http://b/issue?id=1381845.
Check domain security on prototypes in for-in loop.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@368 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-24 15:47:34 +00:00
christian.plesner.hansen@gmail.com
6d47b29765 - Added new object type, RegExp, for regular expressions.
- Renamed some ::kSizes to ::kHeaderSizes to avoid confusion.


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@362 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-23 11:45:43 +00:00
sgjesse@chromium.org
8391b19b07 Refactor the enum RelocMode changing the naming scheme from lower case to
upper case. Moved it into the RelocInfo class together with the associated
is_xxx functions. Renamed is_xxx to IsXxx in the process.

Removed the exit_js_frame mode as it was no longer used.

Patch Set 2 renames RELOC_MODE_COUNT to NUMBER_OF_MODES and fixes a couple of lint errors.
Review URL: http://codereview.chromium.org/3186

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@354 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-22 13:57:03 +00:00
lrn@chromium.org
2816e8a899 Added fast-case for switch statement where all lables are constant Smi's in a limited range (IA32 only so far).
Implemented using a jump-table, for constant time lookup.


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@343 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-18 11:59:55 +00:00
erik.corry@gmail.com
5312fc05be The OutOfMemory and OutOfMemoryNested tests set a heap limit that was too low.
A change in the way heap was allocated meant that the initial heap size was
sometimes not higher than the limit, which mean that the limit started having
and effect and prevented V8 from booting up.

Fixes http://code.google.com/p/v8/issues/detail?id=25
Review URL: http://codereview.chromium.org/2924

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@325 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-17 10:58:45 +00:00
erik.corry@gmail.com
05597193ce More thorough tests of sorting integers in lexicographic order.
Review URL: http://codereview.chromium.org/2923

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@324 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-17 10:25:05 +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
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
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
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
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
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
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
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
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
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
kasperl@chromium.org
10398b692e Remove another case of .js in the status file. Reviewed offline by ager@chromium.org.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@244 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-10 05:51:59 +00:00
christian.plesner.hansen@gmail.com
089da79517 Quick fix for mjsunit/debug-sourceinfo failure
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@243 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-09 20:20:35 +00:00
christian.plesner.hansen@gmail.com
9bed566bdb Changed copyright header from google inc. to v8 project authors.
Added presubmit step to check copyright.



git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@242 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-09 20:08:45 +00:00
christian.plesner.hansen@gmail.com
de607bd33e Added source info to TryCatches. Reorganized exception messaging
somewhat and folded stack traces into message.  Use of this in the
shell will follow in a separate changelist.



git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@235 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-09 18:55:41 +00:00
christian.plesner.hansen@gmail.com
23d2381749 Fixed misspelling in mjsunit status file.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@234 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-09 12:45:21 +00:00
christian.plesner.hansen@gmail.com
cdae1c1af5 Fixed issue 54, under some circumstances internal field count set on
object templates did not take effect.



git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@226 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-09-09 07:57:43 +00:00