Further WTF::copyChars simplification

This patch removes the code branch handling "numCharacters == 1"
case leaving only the 'memcpy' call inside the 'WTF::copyChars'
function's body.

The reason for it is that the branch made the code more complex
giving the minor performance benefit: there was no benefit if the
'source' arg was static, otherwise the difference was just two
extra asm calls ('testq' and 'je') which should not give impact
to the real use cases performance (tested with GCC 4.6.3).

Review URL: https://codereview.chromium.org/213073002

git-svn-id: svn://svn.chromium.org/blink/trunk@170299 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Enable V8 Promises

Enable V8 Promises.
This CL sets --harmony-promises flag.
When V8 Promises are shipped, I will remove it.

BUG=352597, 352552

Review URL: https://codereview.chromium.org/209853010

git-svn-id: svn://svn.chromium.org/blink/trunk@170300 bbb929c8-8fbe-4397-9dbb-9b2b20218538
[CSS Grid Layout] Remove unused variable in test

Inside method updateImplicitGridColumn() of test
fast/css-grid-layout/implicit-position-dynamic-change.html we define a
variable gridItem that is not used. This patch removes it.

Review URL: https://codereview.chromium.org/213423009

git-svn-id: svn://svn.chromium.org/blink/trunk@170301 bbb929c8-8fbe-4397-9dbb-9b2b20218538
CSS Animations: Generate a single player for each keyframe animation.

Logic to split keyframe animations into multiple players was required before
Web Animations supported per-keyframe easings.

CSS Animations were updated to use per-keyframe easings in r169119[1], but this
logic remained.

[1] https://src.chromium.org/viewvc/blink?view=rev&revision=169119

BUG=346590

Review URL: https://codereview.chromium.org/214603002

git-svn-id: svn://svn.chromium.org/blink/trunk@170302 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Restore the HTMLVideoElement-specific prefixed fullscreen API behind a flag

The removal has caused more trouble than expected on Android, because
usage is higher there and the UseCounter data from Windows was used in
the "Intent to Remove" thread.

Restore the API behind a flag so that it can more easily be turned on
and off. It's off by default, but likely it will have to be enabled on
at least the upcoming M35 branch.

BUG=346236

Review URL: https://codereview.chromium.org/213193010

git-svn-id: svn://svn.chromium.org/blink/trunk@170303 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Reduce type-impedance for ExceptionMessages::failedTo* functions

These functions are always called with string literals, so having the
functions accept Strings means all callers have to perform implicit
conversions.
By modifying the signatures to use 'const char*' for these cases, these
conversion can be avoided (in the callers) and only be performed in the
functions themselves.
This reduces code size by ~70kB (Linux, x86-64, gcc-4.8.2).

Review URL: https://codereview.chromium.org/216633002

git-svn-id: svn://svn.chromium.org/blink/trunk@170304 bbb929c8-8fbe-4397-9dbb-9b2b20218538
CSS Transforms: Implement transform-style

Implements transform-style as defined in CSS Transforms[1]. Behavior is
identical to -webkit-transform-style.

Note, this property is guarded by the CSSTransformsUnprefixed runtime feature
(enabled only for testing).

[1] http://www.w3.org/TR/css3-transforms/

BUG=154772

Review URL: https://codereview.chromium.org/211123002

git-svn-id: svn://svn.chromium.org/blink/trunk@170305 bbb929c8-8fbe-4397-9dbb-9b2b20218538