ishell@chromium.org
9f3183f76b
Revert "Reland r21346 "Inobject slack tracking is done on a per-closure basis instead of per-shared info basis.""
...
This reverts r21442.
TBR=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/292433016
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21444 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-22 17:13:28 +00:00
ishell@chromium.org
00b8e6128f
Reland r21346 "Inobject slack tracking is done on a per-closure basis instead of per-shared info basis."
...
This fixes inobject slack tracking for prototype inheritance pattern that uses closures.
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/290993009
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21442 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-22 16:22:23 +00:00
rossberg@chromium.org
06f746a576
Consistently say 'own' property
...
R=yangguo@chromium.org
BUG=
Review URL: https://codereview.chromium.org/291153005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21441 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-22 15:27:57 +00:00
ishell@chromium.org
58932c6c44
Revert "Inobject slack tracking is done on a per-closure basis instead of per-shared info basis."
...
This reverts r21436.
TBR=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/295933012
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21437 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-22 13:38:32 +00:00
ishell@chromium.org
4a47cc5f63
Inobject slack tracking is done on a per-closure basis instead of per-shared info basis.
...
This fixes inobject slack tracking for prototype inheritance pattern that uses closures.
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/283383006
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21436 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-22 12:35:45 +00:00
yurys@chromium.org
8751323701
Add support for ES6 Symbol in heap profiler
...
Heap profiler will create a node with name Symbol and type kSymbol.
BUG=chromium:376194
LOG=Y
R=loislo@chromium.org , yangguo@chromium.org
Review URL: https://codereview.chromium.org/290013004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21433 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-22 11:26:48 +00:00
mstarzinger@chromium.org
acec73631c
Revert "Make v8::TryCatch able to consume natively thrown exceptions"
...
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/293123003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21432 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-22 11:16:05 +00:00
jarin@chromium.org
3d0bf69cd8
Attempt no. 3 to fix Heap::IsHeapIterable and HeapIterator.
...
Now we remember new space's top pointer after the last GC to find out if there was a new space allocation since the last GC.
Unfortunately, this not completely safe - the debugger has a callback hook (that can call to JS) at the end of the GC epilogue that can in theory allocate and possibly make the heap non-iterable. We can only hope this does not happen.
BUG=373283
R=hpayer@chromium.org
LOG=N
Review URL: https://codereview.chromium.org/291193005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21431 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-22 11:13:37 +00:00
yangguo@chromium.org
d0398c08ce
Make serializer non-static.
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/296853007
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21430 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-22 09:36:20 +00:00
mvstanton@chromium.org
e443c89206
Customized support for feedback on calls to Array.
...
Gather transition feedback on array calls, and inline the Array
function call when it makes sense.
R=danno@chromium.org
Review URL: https://codereview.chromium.org/279423005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21429 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-22 09:30:02 +00:00
jkummerow@chromium.org
0829572ee8
Revert "Rename target-specific binaries built for host."
...
The Android build system support for gyp has been fixed to handle
target-dependent host binaries correctly without requiring them to
include the target architecture in the name. Remove the suffixes to make
referring to these targets simpler again.
This reverts r14209.
BUG=
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/236833004
Patch from Richard Coles <torne@chromium.org>.
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21428 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-22 09:04:24 +00:00
mstarzinger@chromium.org
38d30d781f
Make v8::TryCatch able to consume natively thrown exceptions.
...
R=yangguo@chromium.org , haraken@chromium.org
BUG=chromium:362388
TEST=cctest/test-api/TryCatchNative
LOG=N
Review URL: https://codereview.chromium.org/287133005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21427 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-22 08:46:01 +00:00
ulan@chromium.org
e56594f10a
Fix Array.prototype.push and Array.prototype.unshift for read-only length.
...
BUG=
R=mstarzinger@chromium.org , mvstanton@chromium.org
Review URL: https://codereview.chromium.org/279773002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21423 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-22 08:09:57 +00:00
yangguo@chromium.org
6fd69c2476
Remove special debug ExternalReferences.
...
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/296043002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21421 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-22 07:57:33 +00:00
yangguo@chromium.org
ab3afc5722
Reland "Prevent liveedit on or under generators with open activations"
...
The change relative to the previous CL is a logic change in
DropActivationsInActiveThreadImpl. The previous CL skipped the matcher
unless the frame was a JS frame; this was correct for
MultipleFunctionTarget but not for SingleFrameTarget.
I have not been able to reproduce the original failures on either
architecture (ia32 or x64; stack frame dropping is unsupported on other
architectures).
R=yangguo@chromium.org
LOG=N
TEST=mjsunit/harmony/generators-debug-liveedit.js
BUG=
Review URL: https://codereview.chromium.org/270283002
Patch from Andy Wingo <wingo@igalia.com>.
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21419 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-22 07:32:59 +00:00
alph@chromium.org
a7e816db28
Introduce a separate event for CodeDeopt
...
The reuse of CodeCreateEvent for deopt events caused a CodeCreateEvent
fired twice for a code object. When the event was processed for the first
time it seized the no-fp-ranges from code object, so the second event
had no ranges info leaving code entry without them.
As a result when a cpu profile sample falls into the region it missed the
2nd stack frame.
LOG=N
BUG=
R=bmeurer@chromium.org , loislo@chromium.org
Review URL: https://codereview.chromium.org/290093005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21418 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-22 05:36:27 +00:00
yangguo@chromium.org
d9736047b7
Implement Mirror object for Symbols.
...
R=rossberg@chromium.org , yurys@chromium.org
BUG=v8:3290
LOG=Y
Review URL: https://codereview.chromium.org/297513006
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21414 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-21 15:13:50 +00:00
adamk@chromium.org
ccf8b20443
Fix OrderedHashSet::Remove caller in debug-only code after r21408
...
TBR=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/294473011
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21409 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-21 12:31:31 +00:00
adamk@chromium.org
9f86a91e76
Teach OrderedHashSet::Remove to report whether it actually removed anything
...
This avoids an unnecessary runtime call from Set.prototype.delete().
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/290733008
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21408 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-21 12:16:47 +00:00
jarin@chromium.org
02f1a1b987
Revert "Fix Heap::IsHeapIterable." (again)
...
This reverts commit r21397.
TBR=hpayer@chromium.org
Review URL: https://codereview.chromium.org/299813002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21404 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-21 09:49:18 +00:00
adamk@chromium.org
fa55c02b11
Allow debugger to step into Map and Set forEach callbacks
...
BUG=v8:3341
LOG=Y
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/293083005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21403 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-21 09:25:50 +00:00
jkummerow@chromium.org
d4d4d30204
Stop using urllib.urlretrieve() directly.
...
Using urllib for SSL connections when behind a proxy is known to be
broken, so apply the same fix from depot_tools r149742 and use a wrapper
around urllib2 instead.
R=jkummerow@chromium.org
TEST=run test262 behind corporate proxy
Review URL: https://codereview.chromium.org/297663003
Patch from Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>.
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21402 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-21 09:25:05 +00:00
jkummerow@chromium.org
58661c150f
Fix ArrayShift hydrogen support
...
BUG=chromium:374838
LOG=y
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/299713003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21401 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-21 08:51:29 +00:00
adamk@chromium.org
6717ac656a
Array Iterator next should check for own property
...
Since we are using private symbols for the internal slots we need to
check for a local property.
BUG=None
LOG=Y
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/268363011
Patch from Erik Arvidsson <arv@chromium.org>.
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21399 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-21 08:05:11 +00:00
marja@chromium.org
910050e6d9
Fix UnboundScript::GetScriptName and GetLineNumber.
...
Probably broken since r19925 (mine).
R=dcarney@chromium.org
BUG=
Review URL: https://codereview.chromium.org/296043004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21398 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-21 07:32:32 +00:00
jarin@chromium.org
58a130da6e
Reland "Fix Heap::IsHeapIterable."
...
This relands r21388 (+ handlification of an offending function).
BUG=373283
LOG=N
R=hpayer@chromium.org
Review URL: https://codereview.chromium.org/294903003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21397 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-21 06:44:38 +00:00
adamk@chromium.org
70c3a714a1
ES6 Map/Set iterators/forEach improvements
...
This changes how Map/Set interacts with its iterators. When the
underlying table is rehashed or cleared, we create a new table (like
before) but we add a reference from the old table to the new table. We
also add an array describing how to transition the iterator from the
old table to the new table.
When Next is called on the iterator it checks if there is a newer table
that it should transition to. If there is, it updates the index based
on the previously recorded changes and finally changes itself to point
at the new table.
With these changes Map/Set no longer keeps the iterators alive. Also,
as before, the iterators keep the underlying table(s) alive but not the
actual Map/Set.
BUG=v8:1793
LOG=Y
R=mstarzinger@chromium.org , rossberg@chromium.org
Review URL: https://codereview.chromium.org/289503002
Patch from Erik Arvidsson <arv@chromium.org>.
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21389 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-20 14:22:05 +00:00
jarin@chromium.org
014bf8b407
Revert "Fix Heap::IsHeapIterable."
...
This reverts commit r21387.
TBR=hpayer@chromium.org
Review URL: https://codereview.chromium.org/291193002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21388 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-20 14:03:38 +00:00
jarin@chromium.org
dd4c82bbb3
Fix Heap::IsHeapIterable.
...
We only consider heap iterable if the new space is empty (in addition to the exisiting old space check).
The change also moves the iterability forcing + allocation prevention gadgets to HeapIterator so that it is impossible to miss them when iterating the heap.
R=hpayer@chromium.org
BUG=373283
LOG=N
Review URL: https://codereview.chromium.org/285693006
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21387 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-20 13:19:21 +00:00
yangguo@chromium.org
cf49b6e3ca
Reland "Simplify debugger state."
...
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/299653002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21378 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-20 08:52:42 +00:00
vegorov@chromium.org
38f2d25a84
Ensure that interruptor callback registered through API is called outside of ExecutionAccess lock.
...
Such a coarse locking can cause a dead-lock when another thread is attempting to clear an interrupt while we are waiting in the interrupt callback.
Add test that verifies this API invariant.
BUG=chromium:374978
LOG=N
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/291123002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21376 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-20 08:24:51 +00:00
dcarney@chromium.org
1b70812e7d
filter out .caller from other worlds
...
R=verwaest@chromium.org
BUG=
Review URL: https://codereview.chromium.org/261103002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21366 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-19 13:45:45 +00:00
wingo@igalia.com
6382a25fa7
Poison .arguments and .caller for generator functions
...
R=rossberg@chromium.org
BUG=
Review URL: https://codereview.chromium.org/270133003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21362 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-19 10:47:00 +00:00
adamk@chromium.org
35b8b0b27a
Move microtask queueing logic from JavaScript to C++
...
This avoids the appearence of a leak due to storing a JSObject
as the microtask_state in the strong root list, and allows callers
to call Isolate::RunMicrotasks() without having any v8::Context
available (as at least Blink has interest in doing).
The queue is now a strong root, represented as a FixedArray of JSFunctions
(or empty_fixed_array, if it's empty); it doubles in size when it needs to grow.
The number of elements in the queue is stored in Isolate::pending_microtask_count().
LOG=Y
R=dcarney@chromium.org
Review URL: https://codereview.chromium.org/290633010
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21356 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-19 07:57:04 +00:00
svenpanne@chromium.org
7ac5dfbd3e
Revert "Simplify debugger state."
...
This reverts r21346, it broke the layout tests.
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/292713002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21351 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-19 07:06:44 +00:00
yangguo@chromium.org
fe243379f8
Decouple CpuFeatures from serializer state.
...
Traditionally, we cross compile a snapshot iff the serializer is enabled.
This will change in the future.
Changes:
- CpuFeatures probing is done once per process, depending on whether we
cross compile.
- CpuFeatures are consolidated into the platform-independent assembler.h
as much as possible.
- FLAG_enable_<feature> will only be checked at probing time (already the
case for ARM).
- The serializer state is cached by the MacroAssembler.
- PlatformFeatureScope is no longer necessary.
- CPUFeature enum values no longer map to CPUID bit fields.
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/285233010
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21347 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-16 15:18:24 +00:00
yangguo@chromium.org
2d1a75d608
Simplify debugger state.
...
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/287873005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21346 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-16 14:58:03 +00:00
rossberg@chromium.org
417610e24a
Stage ES6 symbols
...
R=yangguo@chromium.org
BUG=
Review URL: https://codereview.chromium.org/286133002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21344 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-16 14:42:02 +00:00
jkummerow@chromium.org
48c39e57b2
Expand C++ macros in tools/generate-runtime-tests.py to increase coverage
...
R=dslomov@chromium.org
Review URL: https://codereview.chromium.org/290513002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21340 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-16 13:16:08 +00:00
yangguo@chromium.org
75a7a3157f
Use %DebugGetProperty in debug mirror to check for Promise.
...
R=aandrey@chromium.org , amikhaylova@google.com
Review URL: https://codereview.chromium.org/283373003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21339 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-16 13:06:20 +00:00
m.m.capewell@googlemail.com
ce8dab82f7
ARM64: Fix native cctest
...
CPUFeatures::Probe has been modified such that it can be called only once, but
the cctests make two calls in native builds: once in VM init, and once in each
test setup. This patch removes the call in the test setup.
BUG=
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/285273003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21337 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-16 12:09:42 +00:00
yangguo@chromium.org
773a7eda67
Adapt test expectations in webkit.
...
R=machenbach@chromium.org
Review URL: https://codereview.chromium.org/288163003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21331 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-15 12:46:32 +00:00
marja@chromium.org
11b8551f60
Parser / PreParser: Simplify error message arguments.
...
In some places, we pretended that there can be multiple arguments, though in
practice there was only one. In other places (most importantly, PreParser), we
only handled one argument. (This means that we were not able to produce a
multi-argument error inside a lazy function anyway.)
This CL makes it clear that there is ever only one argument.
R=ulan@chromium.org
BUG=
Review URL: https://codereview.chromium.org/273653002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21324 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-15 09:44:57 +00:00
yangguo@chromium.org
ca9555120c
Remove socket implementation from V8.
...
R=jkummerow@chromium.org , svenpanne@chromium.org
Review URL: https://codereview.chromium.org/281723007
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21316 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-14 16:34:13 +00:00
yangguo@chromium.org
33fba3bfa1
Remove DebuggerAgent.
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/279423004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21315 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-14 16:28:46 +00:00
machenbach@chromium.org
c0ec7f20c8
Mark slow mozilla test.
...
This test is the remaining low hanging fruit in quick check and blocks the runner for 5 extra seconds.
BUG=
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/281153002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21314 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-14 15:05:44 +00:00
ulan@chromium.org
d7c81b557c
Temporarily skip test-heap/NoWeakHashTableLeakWithIncrementalMarking on Windows.
...
BUG=3331
LOG=N
R=machenbach@chromium.org
Review URL: https://codereview.chromium.org/286783002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21305 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-14 12:28:34 +00:00
ulan@chromium.org
4d92ce5752
Fix test after r21299.
...
This fixes Win and Mac test failures.
TBR=danno@chromium.org
Review URL: https://codereview.chromium.org/282863005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21303 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-14 11:43:21 +00:00
rossberg@chromium.org
98849dd1ce
Drop thenable coercion cache
...
R=dslomov@chromium.org
BUG=372788
LOG=Y
Review URL: https://codereview.chromium.org/281753004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21301 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-14 10:44:34 +00:00
ulan@chromium.org
876b48f384
Skip write barriers when updating the weak hash table.
...
Write barrier on the weak hash table makes all its pointers strong,
which can cause a memory leak.
BUG=359401
LOG=Y
TEST=cctest/test-heap/NoWeakHashTableLeakWithIncrementalMarking
R=hpayer@chromium.org , mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/284773004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21299 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-14 09:12:21 +00:00