Promise.all and Promise.race should reject non-array parameter.

Promise.all and Promise.race should reject the returned Promise if an
invalid parameter is given.
Since they don't support iterable now, they should reject the Promise
if a non-array parameter is given.

BUG=347453
LOG=Y
R=rossberg@chromium.org

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

Patch from Yutaka Hirano <yhirano@chromium.org>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@19754 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Fix assertion failure caused by external strings.

This fixes two issues:
- Update externalize-string-extension to the behavior of the API (see r18285)
- Convert cons strings in old pointer space to short external strings as
  expected by Heap::AllowedToBeMigrated, regardless of alignment.

R=mstarzinger@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@19755 ce2b1a6d-e550-0410-aec6-3dcde31c8c00