Optimize Font CodePath selection and more unit testing.

Replaces the long sequences of if statements in Font::characterRangeCodePath, Font::isCJKIdeograph and Font::isCJKIdeographOrSymbol
with a hash set and/or binary tree lookup (with a little bit of early out and surrogate glyph
testing).

Also here is additional unit testing for these font code path checks.

Perf tests show no regression and no speedup, although we are unlikely to have much perf coverage of these glyphs, if any. I don't see how we could possible be slower for most cases, and we would only be slower in complex cases if the glyphs happen to hit one of the early if tests. Note that in the old code, Font::isCJKIdeograph and Font::isCJKIdeographOrSymbol went through every if statement before returning false, despite the fact that the bulk of common glyphs could be trivially rejected as being lower than any of the ranges.

There is an obvious error at the very end of
Font::isCJKIdeographOrSymbol which is fixed in this patch.

R=eseidel@chromium.org
BUG=251328

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

git-svn-id: svn://svn.chromium.org/blink/trunk@154838 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Explicitly test same/cross-origin importScripts() effect on worker.onerror.

We currently have a single test that checks behavior when calling
importScripts() on a URL that redirects from same-origin to cross-origin.
This patch adds tests for cross-origin and same-origin scripts, and updates
the tests to use js-test-pre.js.

Currently we have some weird behavior for cross-origin scripts. The
message is sanitized, the URL is set to the worker JS file, and the line
number is the call to 'importScripts'.

Firefox has different weird behavior: the message is unsanitized, but
the URL and line number are emptied.

I think it's reasonable to leave the expectations as they are, but our
eventual goal should be to sanitize these errors in the same way that we
do normal cross-origin messages.

BUG=159566
R=ch.dumez@sisa.samsung.com

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

git-svn-id: svn://svn.chromium.org/blink/trunk@154839 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Revert "Remove references to the v8-i18n extension in blink."

This reverts r154834 as switching to the builtin i18n implementation
causes crashes in fast/workers/stress-js-execution.html and a text
diff in fast/js/kde/inbuilt_function_tostring.html. The crash is the
worrisome one.

This is the Blink side of a two-part revert; the Chromium side will be
to revert http://crrev.com/213418.

BUG=v8:2475
TBR=jochen

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

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