jochen@chromium.org
de7352db92
Temporarily disable optimization for StringWrappers to use native valueOf
...
V8 stores this information directly in the map of the wrapper, however,
it is not invalidated when the prototype of the wrapper is changed, so
once the bit is set, it is no longer possible to override valueOf.
This bug is currently hidden in Chrome since the i18n extension always
modifies the String.prototype, and so the optimization never kicks in.
Disabling the optimization temporarily allows for snapshotting i18n now.
BUG=v8:2855
R=yangguo@chromium.org
TEST=mjsunit/regress/regress-2855.js
Review URL: https://codereview.chromium.org/23060030
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16292 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-23 11:31:18 +00:00
mstarzinger@chromium.org
a810495965
Remove hacks for GC stress builders from cctests.
...
R=machenbach@chromium.org
BUG=cctest
Review URL: https://codereview.chromium.org/22861037
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16291 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-23 11:10:03 +00:00
jkummerow@chromium.org
88e74d525a
Delete dead FloatingPointHelper functions
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/22914034
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16290 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-23 11:06:49 +00:00
bmeurer@chromium.org
17ec357ac7
Fix crash due RegExpAtom method called on RegExpCharacterClass object.
...
In the RegExpUnparser::VisitText(RegExpText* that, void* data) function always RegExpUnparser::VisitAtom function called via that->elements()->at(i).data.u_atom->Accept(this, data); even if the type of the object is RegExpCharacterClass.
The problem shows using g++ 4.7(.2, .3) since r16232, since GCC optimizes virtual method calls to direct calls based on __final/final hints. Tested on MIPS and x64:
Program received signal SIGSEGV, Segmentation fault.
0x0000000000588928 in v8::internal::RegExpUnparser::VisitAtom(v8::internal::RegExpAtom*, void*) ()
This cleans up the TextElement class to avoid the unsafe+unchecked union access, that caused the crash.
TEST=cctest/test-regexp/ParserRegression
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/22815033
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16289 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-23 11:06:16 +00:00
mstarzinger@chromium.org
af908ee5bc
Cleanup and speedup MarkCompactCollector test case.
...
R=bmeurer@chromium.org
TEST=cctest/test-mark-compact/MarkCompactCollector
Review URL: https://codereview.chromium.org/23112026
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16288 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-23 11:04:25 +00:00
yurys@chromium.org
140ebd974e
Fix crashes of some CPU profiler tests on Windows after r16284
...
All the tests that started crashing create ProfilerEventsProcessor on the stack. After r16284 SamplingCircularQueue buffer is allocated as a field of the queue instead of separate heap object. This increased self size of ProfilerEventsProcessor by about 1Mb. Windows malloc fails to allocate such an object on the stack and crashes.
BUG=
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/23093022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16287 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-23 10:59:29 +00:00
rossberg@chromium.org
971df386b3
Fix scoping of function declarations in eval inside non-trivial local scope
...
R=mstarzinger@chromium.org
BUG=v8:2594
Review URL: https://codereview.chromium.org/22901010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16286 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-23 09:25:37 +00:00
yurys@chromium.org
47c77181e3
Fix compilation on Windows after r16284
...
BUG=None
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/23361023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16285 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-23 08:43:57 +00:00
yurys@chromium.org
969aba8fc0
Rewrite SamplingCircularQueue
...
The new implementation:
* uses MemoryBarriers to make sure up-to-date data is accessed on both producer and consumer threads
* will not allow to overwrite records
* doesn't have notion of chunks, instead each entry is aligned on the cache line boundaries
BUG=v8:2814
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/22849002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16284 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-23 08:22:07 +00:00
jkummerow@chromium.org
cab5e052f3
grokdump: fix Oddball printing
...
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/22852021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16283 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-23 08:17:54 +00:00
jkummerow@chromium.org
183090464d
Clean up the redundant Int32Constant check which is covered by double case
...
BUG=
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/22815032
Patch from Weiliang Lin <weiliang.lin2@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16282 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-23 08:11:12 +00:00
bmeurer@chromium.org
7a2c253e24
Move OS/compiler/feature detection to public v8config.h header.
...
From now on the v8config.h header should be the one and
only file where we do (freaky) checks to detect OS, C++
compiler or certain compiler features. Since we need that
both internally and for the public API, the new v8config.h
is the proper place to add (everything is prefixed with V8_
so we are safe).
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/23248006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16281 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-23 07:32:25 +00:00
yangguo@chromium.org
be48c5ae26
Rename "parallel recompilation" to "concurrent recompilation".
...
Also introduced macros for flag aliases for temporary backwards compatibility.
R=hpayer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/23014007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16280 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-22 16:14:37 +00:00
mstarzinger@chromium.org
a8e5b658fc
Make HConstant::InstanceOf less ambiguous.
...
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/23203002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16279 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-22 14:22:55 +00:00
mstarzinger@chromium.org
0ecd03ab4c
Fix hidden properties on object with frozen prototype.
...
This fixes a corner-case where a frozen prototype with existing hidden
properties might prevent setting hidden properties on another object.
R=rossberg@chromium.org
BUG=v8:2829
Review URL: https://codereview.chromium.org/22799021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16276 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-22 13:51:32 +00:00
verwaest@chromium.org
22942716db
Remove special case code for generalizing constants to fields.
...
R=bmeurer@chromium.org
Review URL: https://chromiumcodereview.appspot.com/22911018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16275 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-22 13:43:06 +00:00
titzer@chromium.org
e886eff3bf
Remove dead methods related to InformativeDefinitions.
...
BUG=
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/22914029
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16274 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-22 13:21:53 +00:00
titzer@chromium.org
6f3169e571
Fix deoptimization bug, where recursive call can frighten and confuse the unwitting, simple, poor caveman that is Runtime_NotifyDeoptimized.
...
BUG=274164
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/23201016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16273 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-22 13:03:40 +00:00
verwaest@chromium.org
6d137c3f50
Prepare push to trunk. Now working on version 3.21.3.
...
R=yangguo@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/22801011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16270 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-22 12:26:30 +00:00
verwaest@chromium.org
eb6cbe1486
Never clear debug-stub call ICs. Make a clear distinction between is_debug_stub
...
used everywhere but the debugger, and IsDebugBreak, used by the debugger.
R=yangguo@chromium.org
Review URL: https://chromiumcodereview.appspot.com/23361014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16269 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-22 12:16:00 +00:00
bmeurer@chromium.org
ee718489fe
Drop unused rdtsc instruction.
...
We do not use rdtsc anywhere and we won't ever use that in the
future, as it is totally unusable with multicore and out of
order execution.
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/23112016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16268 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-22 11:58:20 +00:00
bmeurer@chromium.org
a36bda5cf7
Revert "Add (mostly Chromium-compatible) V8_OS_* defines to v8.gyp."
...
This reverts commit r16238 for not being able to use the defines
outside of libv8 (i.e. in tests). Will reland the #define's in a
build config header style.
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/22861022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16267 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-22 09:09:39 +00:00
svenpanne@chromium.org
40f81949d3
Cleaned up nil comparisons in Hydrogen.
...
This consists basically of 2 parts:
* Restructured BuildCompareNil to make the logic behind it clearer.
Note that it is intentionally written in a quite stylized way.
* Replaced a usesless IfBuilder by a plain HInstruction, removing
some empty blocks.
R=danno@chromium.org
Review URL: https://codereview.chromium.org/22305004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16266 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-22 06:44:34 +00:00
mstarzinger@chromium.org
3e8effb0bd
Fix migration checks and extend them to the Scavenger.
...
R=hpayer@chromium.org
Review URL: https://codereview.chromium.org/23060018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16265 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-21 18:31:13 +00:00
jkummerow@chromium.org
e814a9b96b
Fix "Hole" leak in TryBuildConsolidatedElementLoad
...
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/23361007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16262 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-21 15:31:03 +00:00
yangguo@chromium.org
0cc3a7fde9
Allow both "--no<flag>" and "--no-<flag>" to disable <flag>.
...
We shouldn't need to know whether to use --no or --no- as prefix.
The latter is more intuitive and also what chromium uses.
R=machenbach@chromium.org
BUG=
Review URL: https://codereview.chromium.org/22851009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16261 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-21 15:17:23 +00:00
verwaest@chromium.org
6337281204
Pass checked values to HLoadNamedField, removing the need for extra type-check field.
...
R=titzer@chromium.org
Review URL: https://chromiumcodereview.appspot.com/22831003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16260 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-21 14:49:56 +00:00
mstarzinger@chromium.org
34417e1d0f
Cleanup FooSpace::VerifyObject and ElementsAccessor::Validate.
...
R=danno@chromium.org
Review URL: https://codereview.chromium.org/23273004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16259 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-21 13:39:20 +00:00
verwaest@chromium.org
df48b2f831
Prepare push to trunk. Now working on version 3.21.2.
...
R=hpayer@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/23242009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16256 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-21 11:16:05 +00:00
mstarzinger@chromium.org
798809ce73
Adding missing operator!= for Handle and Persistent.
...
BUG=
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/22932004
Patch from Marja Hölttä <marja@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16255 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-21 10:49:29 +00:00
bmeurer@chromium.org
125d3390a3
Improve detection of C++11 features.
...
Also improve detection of V8_INFINITY while we're at it.
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/23323003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16254 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-21 10:43:50 +00:00
yangguo@chromium.org
09668ec3f6
Use CheckUsesForFlag to check flag in uses list
...
BUG=
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/22862009
Patch from Weiliang Lin <weiliang.lin2@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16253 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-21 08:28:59 +00:00
plind44@gmail.com
4c113989a1
MIPS: Fix bug that prevents JALR to JAL optimizations.
...
TEST=
BUG=
R=plind44@gmail.com
Review URL: https://codereview.chromium.org/23072023
Patch from Dusan Milosavljevic <Dusan.Milosavljevic@rt-rk.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16252 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-20 22:10:20 +00:00
palfia@homejinni.com
5d718d96b9
MIPS: Remove platform-specific dead code for KeyedStores
...
Port r16227 (02df4098)
BUG=
Review URL: https://codereview.chromium.org/22815014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16251 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-20 18:07:22 +00:00
jkummerow@chromium.org
dea98eee53
Fix a bug in Div when all uses are truncating
...
Refine the related test cases to cover truncating cases
BUG=
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/22964004
Patch from Weiliang Lin <weiliang.lin2@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16249 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-20 13:57:01 +00:00
dslomov@chromium.org
02fdc4114f
Promote ArrayBuffer, DataView and typed arrays to non-experimental.
...
The primary reason for this change is to bake these guys into the
snapshot.
Flag definitions (--harmony-typed-arrays, --harmony-array-buffer) are
still there so that Blink does not complain, but they are noop and
default to true.
R=mstarzinger@chromium.org
BUG=270527
Committed: https://code.google.com/p/v8/source/detail?r=16137
Committed: https://code.google.com/p/v8/source/detail?r=16228
Review URL: https://codereview.chromium.org/22390008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16248 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-20 13:55:52 +00:00
yangguo@chromium.org
9b8c71ea6d
Add warning to cctest when running multiple tests in sequence.
...
R=mstarzinger@chromium.org
BUG=v8:2848
Review URL: https://codereview.chromium.org/23067008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16247 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-20 13:20:40 +00:00
olivf@chromium.org
383a167279
Add X87 implementations for Integer32ToDouble, DoubleToI, DoubleToSmi
...
Additionally refactor the X87Stack tracking
BUG=
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/20781007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16246 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-20 13:01:54 +00:00
dslomov@chromium.org
1bff3fd516
Replace OS::MemCopy with memcpy in typed array initialization.
...
This is an attempt to fix a weird perf regression on MacOS X 10.6 bot.
Perf regression is not reproducible on MacOS X 10.8.
This difference in memory-copying routines is the only reasonable
difference in the algorithm. We should try and see.
R=bmeurer@chromium.org
BUG=270642
Review URL: https://codereview.chromium.org/23330005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16245 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-20 11:14:56 +00:00
bmeurer@chromium.org
c2c6b2813d
Reland "Use V8_FINAL and V8_OVERRIDE in various places, fixing bugs revealed by them.".
...
- Use V8_FINAL and V8_OVERRIDE in Ast classes.
- Use V8_FINAL and V8_OVERRIDE in Lithium mips backend.
- Use V8_FINAL and V8_OVERRIDE in Lithium arm backend.
- Use V8_FINAL and V8_OVERRIDE in Lithium x64 backend.
- Use V8_FINAL and V8_OVERRIDE in Lithium ia32 backend.
- Use V8_FINAL and V8_OVERRIDE in Lithium classes.
- Use V8_FINAL and V8_OVERRIDE in Hydrogen classes.
TBR=dslomov@chromium.org
Review URL: https://codereview.chromium.org/22796020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16244 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-20 11:10:24 +00:00
bmeurer@chromium.org
60e7d4b1e3
Revert "Use V8_FINAL and V8_OVERRIDE in various places, fixing bugs revealed by them."
...
This reverts commit r16232 for breaking the
tools/gen-postmortem-metadata.py script. Will reland without the
objects.{cc,h} changes.
TBR=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/23143007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16243 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-20 10:52:23 +00:00
yangguo@chromium.org
479935bc62
Remove access-check-failed callback after test.
...
BUG=v8:2848
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/22802013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16242 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-20 10:46:02 +00:00
bmeurer@chromium.org
1a560b1a5e
Visual Studio 2012 and later support the C++11 final keyword.
...
TBR=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/23128007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16241 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-20 09:37:21 +00:00
mstarzinger@chromium.org
8a1abf6279
Consistently use CompilationInfo::AbortOptimization.
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/22832002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16240 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-20 08:53:34 +00:00
jochen@chromium.org
943d5cc27a
Move i18n break iterator C++ code to runtime
...
BUG=v8:2745
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/22764007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16239 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-20 08:46:36 +00:00
bmeurer@chromium.org
f86f275f65
Add (mostly Chromium-compatible) V8_OS_* defines to v8.gyp.
...
R=jkummerow@chromium.org , svenpanne@chromium.org
Review URL: https://codereview.chromium.org/23283010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16238 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-20 08:29:21 +00:00
jochen@chromium.org
bd30d3aa54
Fix null handle deref in InternalDateFormat
...
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/22927014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16237 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-20 08:17:43 +00:00
bmeurer@chromium.org
c3778ade30
Fix non-Xcode build on Mac with clang.
...
TBR=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/22793008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16236 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-20 08:14:19 +00:00
jkummerow@chromium.org
31691477b7
Avoid -O3 in nacl as it does not play well with -W.
...
Also cleans up some uninitialized data I saw while investigating
the problem.
R=jkummerow@chromium.org , machenbach@chromium.org
Review URL: https://codereview.chromium.org/23119004
Patch from Ken Mixter <kmixter@google.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16235 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-20 08:12:19 +00:00
jochen@chromium.org
800f9f7d35
Don't use Persistent in runtime
...
R=dcarney@chromium.org , mstarzinger@chromium.org
BUG=none
Review URL: https://codereview.chromium.org/22432009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16234 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-20 08:07:52 +00:00