Skip to content

Commit 1f4a97d

Browse files
committed
[MERGE chakra-core#400] Enable ES7 Array.prototype.includes by default and add to @@unscopables
Merge pull request chakra-core#400 from tcare:includes Enable ES7 Array.prototype.includes by default and add to @@unscopables
2 parents b7fa63b + c3062b8 commit 1f4a97d

3 files changed

Lines changed: 129 additions & 127 deletions

File tree

lib/Runtime/Library/JavascriptLibrary.cpp

Lines changed: 12 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1671,13 +1671,14 @@ namespace Js
16711671
{
16721672
DynamicType* dynamicType = DynamicType::New(scriptContext, TypeIds_Object, library->nullValue, nullptr, NullTypeHandler<false>::GetDefaultInstance(), false);
16731673
DynamicObject* unscopablesList = DynamicObject::New(library->GetRecycler(), dynamicType);
1674-
unscopablesList->SetProperty(PropertyIds::find, JavascriptBoolean::ToVar(true, scriptContext), PropertyOperation_None, nullptr);
1675-
unscopablesList->SetProperty(PropertyIds::findIndex, JavascriptBoolean::ToVar(true, scriptContext), PropertyOperation_None, nullptr);
1676-
unscopablesList->SetProperty(PropertyIds::fill, JavascriptBoolean::ToVar(true, scriptContext), PropertyOperation_None, nullptr);
1674+
unscopablesList->SetProperty(PropertyIds::find, JavascriptBoolean::ToVar(true, scriptContext), PropertyOperation_None, nullptr);
1675+
unscopablesList->SetProperty(PropertyIds::findIndex, JavascriptBoolean::ToVar(true, scriptContext), PropertyOperation_None, nullptr);
1676+
unscopablesList->SetProperty(PropertyIds::fill, JavascriptBoolean::ToVar(true, scriptContext), PropertyOperation_None, nullptr);
16771677
unscopablesList->SetProperty(PropertyIds::copyWithin, JavascriptBoolean::ToVar(true, scriptContext), PropertyOperation_None, nullptr);
1678-
unscopablesList->SetProperty(PropertyIds::entries, JavascriptBoolean::ToVar(true, scriptContext), PropertyOperation_None, nullptr);
1679-
unscopablesList->SetProperty(PropertyIds::keys, JavascriptBoolean::ToVar(true, scriptContext), PropertyOperation_None, nullptr);
1680-
unscopablesList->SetProperty(PropertyIds::values, JavascriptBoolean::ToVar(true, scriptContext), PropertyOperation_None, nullptr);
1678+
unscopablesList->SetProperty(PropertyIds::entries, JavascriptBoolean::ToVar(true, scriptContext), PropertyOperation_None, nullptr);
1679+
unscopablesList->SetProperty(PropertyIds::includes, JavascriptBoolean::ToVar(true, scriptContext), PropertyOperation_None, nullptr);
1680+
unscopablesList->SetProperty(PropertyIds::keys, JavascriptBoolean::ToVar(true, scriptContext), PropertyOperation_None, nullptr);
1681+
unscopablesList->SetProperty(PropertyIds::values, JavascriptBoolean::ToVar(true, scriptContext), PropertyOperation_None, nullptr);
16811682
library->AddMember(arrayPrototype, PropertyIds::_symbolUnscopables, unscopablesList, PropertyConfigurable);
16821683
}
16831684

@@ -1687,10 +1688,8 @@ namespace Js
16871688
/* No inlining Array_CopyWithin */ library->AddFunctionToLibraryObject(arrayPrototype, PropertyIds::copyWithin, &JavascriptArray::EntryInfo::CopyWithin, 2);
16881689
}
16891690

1690-
if (scriptContext->GetConfig()->IsES7BuiltinsEnabled())
1691-
{
1692-
builtinFuncs[BuiltinFunction::Array_Includes] = library->AddFunctionToLibraryObject(arrayPrototype, PropertyIds::includes, &JavascriptArray::EntryInfo::Includes, 1);
1693-
}
1691+
1692+
builtinFuncs[BuiltinFunction::Array_Includes] = library->AddFunctionToLibraryObject(arrayPrototype, PropertyIds::includes, &JavascriptArray::EntryInfo::Includes, 1);
16941693

16951694
DebugOnly(CheckRegisteredBuiltIns(builtinFuncs, scriptContext));
16961695

@@ -1858,12 +1857,7 @@ namespace Js
18581857
library->AddFunctionToLibraryObject(typedarrayPrototype, PropertyIds::keys, &TypedArrayBase::EntryInfo::Keys, 0);
18591858
JavascriptFunction* valuesFunc = library->AddFunctionToLibraryObject(typedarrayPrototype, PropertyIds::values, &TypedArrayBase::EntryInfo::Values, 0);
18601859
library->AddMember(typedarrayPrototype, PropertyIds::_symbolIterator, valuesFunc);
1861-
1862-
if (scriptContext->GetConfig()->IsES7BuiltinsEnabled())
1863-
{
1864-
library->AddFunctionToLibraryObject(typedarrayPrototype, PropertyIds::includes, &TypedArrayBase::EntryInfo::Includes, 1);
1865-
}
1866-
1860+
library->AddFunctionToLibraryObject(typedarrayPrototype, PropertyIds::includes, &TypedArrayBase::EntryInfo::Includes, 1);
18671861

18681862
library->AddAccessorsToLibraryObject(typedarrayPrototype, PropertyIds::buffer, &TypedArrayBase::EntryInfo::GetterBuffer, nullptr);
18691863
library->AddAccessorsToLibraryObject(typedarrayPrototype, PropertyIds::byteLength, &TypedArrayBase::EntryInfo::GetterByteLength, nullptr);
@@ -6455,10 +6449,7 @@ namespace Js
64556449
REG_OBJECTS_LIB_FUNC(of, JavascriptArray::EntryOf);
64566450
}
64576451

6458-
if (config.IsES7BuiltinsEnabled())
6459-
{
6460-
REG_OBJECTS_LIB_FUNC(includes, JavascriptArray::EntryIncludes);
6461-
}
6452+
REG_OBJECTS_LIB_FUNC(includes, JavascriptArray::EntryIncludes);
64626453

64636454
return hr;
64646455
}
@@ -6921,12 +6912,8 @@ namespace Js
69216912
REG_OBJECTS_LIB_FUNC(slice, TypedArrayBase::EntrySlice);
69226913
REG_OBJECTS_LIB_FUNC(some, TypedArrayBase::EntrySome);
69236914
REG_OBJECTS_LIB_FUNC(sort, TypedArrayBase::EntrySort);
6915+
REG_OBJECTS_LIB_FUNC(includes, TypedArrayBase::EntryIncludes);
69246916

6925-
ScriptConfiguration const& config = *(scriptContext->GetConfig());
6926-
if (config.IsES7BuiltinsEnabled())
6927-
{
6928-
REG_OBJECTS_LIB_FUNC(includes, TypedArrayBase::EntryIncludes);
6929-
}
69306917

69316918
return hr;
69326919
}

test/Array/rlexe.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -291,7 +291,7 @@
291291
<test>
292292
<default>
293293
<files>array_includes.js</files>
294-
<compile-flags>-args summary -endargs -es7builtins</compile-flags>
294+
<compile-flags>-args summary -endargs</compile-flags>
295295
</default>
296296
</test>
297297
<test>

0 commit comments

Comments
 (0)