rossberg@chromium.org
c6bb497437
Simplify implementation of assignment-to-const checks.
...
Also, add test that assignment to function name is a syntax error with harmony scoping.
Does not fix issue 2243 directly, but with ES6, the required behaviour will change to what is implemented already anyway.
R=yangguo@chromium.org
BUG=v8:2243
Review URL: https://codereview.chromium.org/11607016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13234 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-18 12:00:50 +00:00
yangguo@chromium.org
19a6575ea3
Rename LookupSymbol calls to use Utf8 or OneByte in names.
...
R=yangguo@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/11597007
Patch from Dan Carney <dcarney@google.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13229 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-17 15:56:16 +00:00
yangguo@chromium.org
6e953d51af
Make sure error message formatting does not have side effects.
...
R=vegorov@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/11598011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13228 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-17 14:00:50 +00:00
peter.rybin@gmail.com
133957e743
Fix set variable value bug: a function argument must be updated in 2 places
...
Review URL: https://codereview.chromium.org/11519020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13225 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-14 18:36:51 +00:00
rossberg@chromium.org
1080d2aade
Object.oberve: assertions to narrow down flaky crashes with array length mutation.
...
R=mstarzinger@chromium.org
BUG=v8:2409
Review URL: https://codereview.chromium.org/11566027
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13221 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-14 14:19:18 +00:00
mstarzinger@chromium.org
1aed997ad6
Make string test resilient against GC stress.
...
R=dcarney@chromium.org
TEST=cctest/test-strings/StringCharacterStreamRandom
Review URL: https://codereview.chromium.org/11565031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13220 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-14 12:45:28 +00:00
yangguo@chromium.org
e24b98312b
Revert r13218 due to windows test failures.
...
R=verwaest@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/11568014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13219 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-13 17:21:15 +00:00
yangguo@chromium.org
4cd41edcd9
Add methods to allow resuming execution after calling TerminateExecution().
...
Two new methods are added to allow embedders to determine that execution
should be resumed at a particular point in the stack without being forced
to unwind all JS frames.
* V8::ResumeExecution() -- When execution is terminated via a call to
V8::TerminateExecution(), this method can be called to clear the
termination exception so that the engine can continue to be used.
* TryCatch::HasTerminated() -- When a TryCatch has caught a termination
exception, HasTerminated() will return true to indicate it is valid to
call V8::ResumeExecution() if desired.
A test case is added to cctest/test-thread-termination.cc.
BUG=v8:2361
Patch from Andrew Paprocki <andrew@ishiboo.com>.
Review URL: https://chromiumcodereview.appspot.com/11142013
Patch from Andrew Paprocki <andrew@ishiboo.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13218 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-13 16:38:49 +00:00
yangguo@chromium.org
a1265a15cf
Cleanup tests for StringCharacterStream
...
Edge case tests now cover all branches.
R=yangguo@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/11548023
Patch from Dan Carney <dcarney@google.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13217 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-13 15:39:01 +00:00
rossberg@chromium.org
fb5a5e22ec
Object.observe: Make array length and other magic data properties work correctly.
...
Also, disable TestFastElementsLength test for now, since it flakes on buildbots for yet unknown reasons.
R=mstarzinger@chromium.org
BUG=v8:2409
Review URL: https://codereview.chromium.org/11554019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13213 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-13 09:31:44 +00:00
danno@chromium.org
facad070e9
Remove over-zealous hole checking in Array.slice()
...
R=jkummerow@chromium.org
BUG=chromium:165637
TEST=regress-165637.js
Review URL: https://codereview.chromium.org/11442054
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13211 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-12 15:20:45 +00:00
rossberg@chromium.org
76375de29d
Object.observe: prevent observed objects from using fast elements.
...
This is necessary because polymorphic stores generally
do not perform a map check but only an instance type check,
which misses out on changes in the observation status.
Unfortunately, there currently is no efficient way in V8
to maintain that optimisation in the presence of Object.observe.
R=mstarzinger@chromium.org
BUG=v8:2409
Review URL: https://codereview.chromium.org/11477006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13205 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-12 11:38:24 +00:00
mstarzinger@chromium.org
04adf4c792
Add regression test for r13195.
...
This is a regression test for the fix in r13195 which made sure that we
correctly clear the optimized code map even when incremental marking is
running.
R=ulan@chromium.org ,jkummerow@chromium.org
BUG=chromium:165495
TEST=cctest/test-heap/Regress165495
Review URL: https://codereview.chromium.org/11543015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13204 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-12 10:46:01 +00:00
yurys@chromium.org
bc37b9be27
Do not read document and URL properties on global objects while taking heap snapshot
...
This unsafe mechanism was replaced with a user provided callback in r13137 and now we should remove old code.
Review URL: https://codereview.chromium.org/11519029
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13203 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-12 09:49:46 +00:00
peter.rybin@gmail.com
6eef2f0682
Issue 2399 part 2: In debugger allow modifying local variable values
...
Review URL: https://codereview.chromium.org/11412310
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13202 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-11 23:27:38 +00:00
mmassi@chromium.org
ae54f9cfe0
Fix for when array bounds check elimination tries to modify a phi index.
...
BUG=
Review URL: https://chromiumcodereview.appspot.com/11486007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13193 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-11 14:23:04 +00:00
yangguo@chromium.org
32103ca870
Fix windows build.
...
R=dcarney@google.com
BUG=
Review URL: https://chromiumcodereview.appspot.com/11538003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13191 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-11 10:42:10 +00:00
mstarzinger@chromium.org
07077798af
Disable GC stress for mjsunit/fast-prototype.
...
R=yangguo@chromium.org
TEST=mjsunit/fast-prototype --gc-interval=500 --stress-compaction
Review URL: https://codereview.chromium.org/11534004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13190 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-11 10:33:04 +00:00
yangguo@chromium.org
f02af74575
Cleanup StringCharacterStream and add initial test cases.
...
BUG=
Review URL: https://chromiumcodereview.appspot.com/11438046
Patch from Dan Carney <dcarney@google.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13189 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-11 10:22:15 +00:00
yangguo@chromium.org
72dfb27909
Fire 'stack' getter of error objects after GC.
...
BUG=v8:2340
Review URL: https://chromiumcodereview.appspot.com/11377158
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13188 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-11 10:14:01 +00:00
mstarzinger@chromium.org
067a820eb4
Make unit tests resilient against GC Stress.
...
R=yangguo@chromium.org
TEST=cctest --gc-interval=500 --stress-compaction
Review URL: https://codereview.chromium.org/11498012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13183 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-10 15:14:20 +00:00
danno@chromium.org
64fc1f99cb
Revert 13157, 13145 and 13140: Crankshaft code stubs.
...
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/11498006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13179 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-10 11:09:12 +00:00
yangguo@chromium.org
c70a0f9334
Improve integer division on IA32 and X64
...
If the divisor is a Power-of-2 constant, we could use shifts instead of the
expensive idiv instructions, which also loose the register constraints.
Review URL: https://chromiumcodereview.appspot.com/11478043
Patch from Yuqiang Xian <yuqiang.xian@intel.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13178 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-10 11:02:22 +00:00
rossberg@chromium.org
9a0623f296
Object.observe support for Function 'prototype' property
...
BUG=v8:2409
Review URL: https://codereview.chromium.org/11416353
Patch from Adam Klein <adamk@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13177 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-10 10:53:57 +00:00
mstarzinger@chromium.org
d11558c9b8
Make test-heap resilient against GC stress.
...
R=yangguo@chromium.org
TEST=cctest/test-heap --stress-compaction
Review URL: https://codereview.chromium.org/11464021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13170 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-07 13:01:38 +00:00
yangguo@chromium.org
fe7a68463a
Fix mozilla test expectations.
...
R=mstarzinger@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/11482003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13167 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-07 12:49:27 +00:00
yangguo@chromium.org
d6629c6919
Fix mozilla test failures and expectations.
...
Follow-up for r13160.
R=mstarzinger@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/11446063
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13163 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-07 12:18:50 +00:00
rossberg@chromium.org
3348b5c2b4
Allow lazy compilation (and thus optimisation) of functions inside eval.
...
For strict-mode eval, this requires _disabling_ lazy parsing of inner functions,
because we need to collect their free variables to do allocation for the
eval scope properly.
R=mstarzinger@chromium.org
BUG=v8:2315
Review URL: https://codereview.chromium.org/11438042
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13161 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-07 10:35:50 +00:00
yangguo@chromium.org
3388f92e63
Fix spec violations in methods of Number.prototype.
...
R=svenpanne@chromium.org
BUG=v8:2443
Review URL: https://chromiumcodereview.appspot.com/11465005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13160 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-07 10:20:35 +00:00
danno@chromium.org
39f6c8ef69
Fix nosse2 tests
...
R=jkummerow@chromoum.org
Review URL: https://chromiumcodereview.appspot.com/11439028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13157 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-07 07:09:57 +00:00
mstarzinger@chromium.org
31f1f2de22
Fix candidate eviction in code flusher.
...
This fixes a corner case where a code flushing candidate was evicted
from the candidate list without being revisited by the incremental
marker. An explicit write-barrier makes sure it gets revisited.
R=ulan@chromium.org
BUG=chromium:159140
TEST=cctest/test-heap/Regress159140
Review URL: https://codereview.chromium.org/11451038
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13153 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-06 16:27:32 +00:00
yangguo@chromium.org
276c790c61
Iterate through all arguments for side effects in Math.min/max.
...
R=svenpanne@chromium.org
BUG=v8:2444
Review URL: https://chromiumcodereview.appspot.com/11444030
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13150 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-06 13:13:38 +00:00
yangguo@chromium.org
2200972f48
Update test expectations.
...
Test failure has been fixed in r13050.
R=jkummerow@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/11450004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13149 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-06 13:13:01 +00:00
yangguo@chromium.org
c75ca45000
Improve array to string conversion.
...
BUG=v8:2435
Review URL: https://chromiumcodereview.appspot.com/11348349
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13144 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-05 15:49:22 +00:00
yangguo@chromium.org
6c92aba643
Fix spec violations related to regexp.lastIndex
...
BUG=v8:2437, v8:2438
Review URL: https://chromiumcodereview.appspot.com/11451005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13143 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-05 12:32:25 +00:00
rossberg@chromium.org
6b16d0bcae
Make Object.observe on the global object functional
...
The approach in this change is to handle the unwrapping/wrapping of the global object transparently with respect to the JS implementation of Object.observe. An alternate approach would be to add a runtime method like %IsJSGlobalProxy and %UnwrapJSGlobalProxy, but it seems ugly to give JS (even implementation JS) access to the unwrapped global.
BUG=v8:2409
Review URL: https://codereview.chromium.org/11414094
Patch from Adam Klein <adamk@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13142 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-05 12:03:57 +00:00
rossberg@chromium.org
23850c16b2
Object.observe: notify of __proto__ changes
...
BUG=v8:2409
Review URL: https://codereview.chromium.org/11299260
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13141 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-05 11:47:45 +00:00
danno@chromium.org
f19959cd22
Enable stub generation using Hydrogen/Lithium (again)
...
This initial implementation generates only KeyedLoadICs using the new Hydrogen stub infrastructure.
Committed: https://code.google.com/p/v8/source/detail?r=13105
Committed: https://code.google.com/p/v8/source/detail?r=13117
Review URL: https://codereview.chromium.org/10701054
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13140 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-05 11:04:10 +00:00
mstarzinger@chromium.org
e46b251324
Pass Isolate to MakeWeak(), IsWeak(), and AddObjectGroup().
...
BUG=
TEST=cctest/test-api/ApiObjectGroupsCycle
Review URL: https://codereview.chromium.org/11360082
Patch from Kentaro Hara <haraken@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13139 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-05 10:14:10 +00:00
mstarzinger@chromium.org
0e3fece02d
Pass Isolate to Local<T>::New()
...
Our profiling revealed that Local<T>::New() is one of bottlenecks of DOM bindings.
BUG=
TEST=cctest/test-api/LocalHandle
Review URL: https://codereview.chromium.org/11316331
Patch from Kentaro Hara <haraken@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13138 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-05 09:13:53 +00:00
yurys@chromium.org
cec0745aa2
Introduce callback for resolving global object name while taking heap snapshot
...
Heap profiler currently gets "document" of global objects while taking snapshot (to later retrieve its "URL"). This is unsafe as there may be no current v8 context when the property is requested while corresponding property accessor may make some assumptions about the context stack during its invokation. Several crashes were reported due to this problem:
https://bugs.webkit.org/show_bug.cgi?id=103076
https://crbug.com/162121
https://crbug.com/132727
This patch adds a callback for resolving global object names and avoid the crashes.
Review URL: https://codereview.chromium.org/11415203
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13137 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-04 17:17:55 +00:00
mstarzinger@chromium.org
5966276d56
Change deprecated semantics of function template signatures.
...
This changes how FunctionTemplate interprets a Signature that specifies
compatible receivers and arguments. Only the hidden prototype chain will
be considered when searching for compatible receivers. This prevents
JavaScript from modifying the inheritance relationship set up by the
embedder.
R=rossberg@chromium.org
BUG=v8:2268
TEST=cctest/test-api
Review URL: https://codereview.chromium.org/11308197
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13131 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-04 13:45:48 +00:00
mstarzinger@chromium.org
b21cf0208f
Fix external exceptions in external try-catch handlers.
...
This tries to propagate exceptions which are externally thrown into
external try-catch handlers before scheduling them. This also allows
embedders to nest external try-catch handlers.
This just relands r11834.
R=svenpanne@chromium.org
BUG=v8:2166
TEST=cctest/test-api/TryCatchNested
Review URL: https://codereview.chromium.org/11299329
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13129 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-04 10:45:59 +00:00
yangguo@chromium.org
192d21b5dd
Remove bogus test and add check for OOM in TryCall.
...
R=mstarzinger@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/11412318
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13126 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-04 09:51:52 +00:00
peter.rybin@gmail.com
be4418bae0
Issue 2429, core implementation and the protocol change
...
Review URL: https://codereview.chromium.org/11421100
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13123 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-03 21:47:39 +00:00
peter.rybin@gmail.com
4b3e67070e
Issue 2399 part 1: In debugger allow modifying local variable values
...
Review URL: https://codereview.chromium.org/11415042
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13122 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-03 20:29:29 +00:00
yangguo@chromium.org
79643009dd
Fix null dereference after OOM.
...
R=mstarzinger@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/11414295
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13121 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-03 17:57:17 +00:00
danno@chromium.org
66f6a8182c
Revert 13117: "Enable stub generation using Hydrogen/Lithium (again)"
...
TBR=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/11415261
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13120 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-03 17:16:51 +00:00
yangguo@chromium.org
702cc25def
Optimize non-ASCII string splitting with single-character search pattern
...
Review URL: https://chromiumcodereview.appspot.com/11299163
Patch from Ben Noordhuis <ben@c9.io>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13119 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-03 16:48:17 +00:00
danno@chromium.org
78b09625d5
Enable stub generation using Hydrogen/Lithium (again)
...
This initial implementation generates only KeyedLoadICs using the new Hydrogen stub infrastructure.
Committed: https://code.google.com/p/v8/source/detail?r=13105
Review URL: https://codereview.chromium.org/10701054
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13117 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-03 15:51:05 +00:00