| Index: src/elements.cc
|
| diff --git a/src/elements.cc b/src/elements.cc
|
| index 85eb3f266ecdb135e0ac8081d2b0d08bdd330477..917a31d0b5c85f3a1d493f820ccea2e0b6c3780f 100644
|
| --- a/src/elements.cc
|
| +++ b/src/elements.cc
|
| @@ -1946,5 +1946,23 @@ void ElementsAccessor::TearDown() {
|
|
|
|
|
| ElementsAccessor** ElementsAccessor::elements_accessors_ = NULL;
|
| +
|
| +
|
| +bool IsConcatSpreadable(Isolate* isolate, Handle<Object> obj) {
|
| + HandleScope handle_scope(isolate);
|
| + if (!obj->IsSpecObject()) return false;
|
| + if (FLAG_harmony_concat_spreadable) {
|
| + Handle<Symbol> key(isolate->factory()->is_concat_spreadable_symbol());
|
| + Handle<Object> value;
|
| + MaybeHandle<Object> maybeValue =
|
| + i::Runtime::GetObjectProperty(isolate, obj, key);
|
| + if (maybeValue.ToHandle(&value)) {
|
| + if (!value->IsUndefined()) {
|
| + return value->BooleanValue();
|
| + }
|
| + }
|
| + }
|
| + return obj->IsJSArray();
|
| +}
|
| } // namespace internal
|
| } // namespace v8
|
|
|