Diff
Modified: trunk/Source/_javascript_Core/ChangeLog (253460 => 253461)
--- trunk/Source/_javascript_Core/ChangeLog 2019-12-13 01:53:20 UTC (rev 253460)
+++ trunk/Source/_javascript_Core/ChangeLog 2019-12-13 01:57:24 UTC (rev 253461)
@@ -1,5 +1,64 @@
2019-12-12 Yusuke Suzuki <[email protected]>
+ [JSC] Puts fixed-sized cells into IsoSubspace more
+ https://bugs.webkit.org/show_bug.cgi?id=205183
+
+ Reviewed by Saam Barati.
+
+ This patch puts many of fixed-sized cells into IsoSubspace.
+
+ - Exception
+ - JSPropertyNameEnumerator
+ - RegExp
+ - StructureChain
+ - MapBucket
+ - JSMapIterator
+ - ScopedArgumentsTable
+ - SetBucket
+ - JSSetIterator
+ - JSScriptFetchParameters
+ - JSScriptFetcher
+ - JSSourceCode
+ - JSTemplateObjectDescriptor
+
+ * runtime/Exception.h:
+ * runtime/HashMapImpl.h:
+ (JSC::HashMapBucket::selectStructure): Deleted.
+ (JSC::HashMapBucket::info): Deleted.
+ (JSC::HashMapBucket::createStructure): Deleted.
+ (JSC::HashMapBucket::create): Deleted.
+ (JSC::HashMapBucket::createSentinel): Deleted.
+ (JSC::HashMapBucket::HashMapBucket): Deleted.
+ (JSC::HashMapBucket::setNext): Deleted.
+ (JSC::HashMapBucket::setPrev): Deleted.
+ (JSC::HashMapBucket::setKey): Deleted.
+ (JSC::HashMapBucket::setValue): Deleted.
+ (JSC::HashMapBucket::key const): Deleted.
+ (JSC::HashMapBucket::value const): Deleted.
+ (JSC::HashMapBucket::next const): Deleted.
+ (JSC::HashMapBucket::prev const): Deleted.
+ (JSC::HashMapBucket::deleted const): Deleted.
+ (JSC::HashMapBucket::makeDeleted): Deleted.
+ (JSC::HashMapBucket::offsetOfKey): Deleted.
+ (JSC::HashMapBucket::offsetOfValue): Deleted.
+ (JSC::HashMapBucket::offsetOfNext): Deleted.
+ (JSC::HashMapBucket::extractValue): Deleted.
+ * runtime/JSMapIterator.h:
+ * runtime/JSPropertyNameEnumerator.h:
+ * runtime/JSScriptFetchParameters.h:
+ * runtime/JSScriptFetcher.h:
+ * runtime/JSSetIterator.h:
+ * runtime/JSSourceCode.h:
+ * runtime/JSTemplateObjectDescriptor.h:
+ * runtime/RegExp.h:
+ * runtime/ScopedArgumentsTable.h:
+ * runtime/StructureChain.h:
+ * runtime/VM.cpp:
+ (JSC::VM::VM):
+ * runtime/VM.h:
+
+2019-12-12 Yusuke Suzuki <[email protected]>
+
[JSC] Wasm init-expr should reject mutable globals
https://bugs.webkit.org/show_bug.cgi?id=205191
Modified: trunk/Source/_javascript_Core/runtime/Exception.h (253460 => 253461)
--- trunk/Source/_javascript_Core/runtime/Exception.h 2019-12-13 01:53:20 UTC (rev 253460)
+++ trunk/Source/_javascript_Core/runtime/Exception.h 2019-12-13 01:57:24 UTC (rev 253461)
@@ -37,6 +37,12 @@
static constexpr unsigned StructureFlags = Base::StructureFlags | StructureIsImmortal;
static constexpr bool needsDestruction = true;
+ template<typename CellType, SubspaceAccess mode>
+ static IsoSubspace* subspaceFor(VM& vm)
+ {
+ return &vm.exceptionSpace;
+ }
+
enum StackCaptureAction {
CaptureStack,
DoNotCaptureStack
Modified: trunk/Source/_javascript_Core/runtime/HashMapImpl.h (253460 => 253461)
--- trunk/Source/_javascript_Core/runtime/HashMapImpl.h 2019-12-13 01:53:20 UTC (rev 253460)
+++ trunk/Source/_javascript_Core/runtime/HashMapImpl.h 2019-12-13 01:57:24 UTC (rev 253461)
@@ -53,8 +53,8 @@
};
template <typename Data>
-class HashMapBucket : public JSCell {
- typedef JSCell Base;
+class HashMapBucket final : public JSCell {
+ using Base = JSCell;
template <typename T = Data>
static typename std::enable_if<std::is_same<T, HashMapBucketDataKey>::value, Structure*>::type selectStructure(VM& vm)
@@ -72,16 +72,21 @@
static const HashTableType Type = Data::Type;
static const ClassInfo s_info; // This is never accessed directly, since that would break linkage on some compilers.
+ template<typename CellType, SubspaceAccess mode>
+ static IsoSubspace* subspaceFor(VM& vm)
+ {
+ if constexpr (Type == HashTableType::Key)
+ return vm.setBucketSpace<mode>();
+ else
+ return vm.mapBucketSpace<mode>();
+ }
static const ClassInfo* info()
{
- switch (Type) {
- case HashTableType::Key:
+ if constexpr (Type == HashTableType::Key)
return getHashMapBucketKeyClassInfo();
- case HashTableType::KeyValue:
+ else
return getHashMapBucketKeyValueClassInfo();
- }
- RELEASE_ASSERT_NOT_REACHED();
}
static Structure* createStructure(VM& vm, JSGlobalObject* globalObject, JSValue prototype)
Modified: trunk/Source/_javascript_Core/runtime/JSMapIterator.h (253460 => 253461)
--- trunk/Source/_javascript_Core/runtime/JSMapIterator.h 2019-12-13 01:53:20 UTC (rev 253460)
+++ trunk/Source/_javascript_Core/runtime/JSMapIterator.h 2019-12-13 01:57:24 UTC (rev 253461)
@@ -39,6 +39,12 @@
DECLARE_EXPORT_INFO;
+ template<typename CellType, SubspaceAccess mode>
+ static IsoSubspace* subspaceFor(VM& vm)
+ {
+ return vm.mapIteratorSpace<mode>();
+ }
+
static Structure* createStructure(VM& vm, JSGlobalObject* globalObject, JSValue prototype)
{
return Structure::create(vm, globalObject, prototype, TypeInfo(ObjectType, StructureFlags), info());
Modified: trunk/Source/_javascript_Core/runtime/JSPropertyNameEnumerator.h (253460 => 253461)
--- trunk/Source/_javascript_Core/runtime/JSPropertyNameEnumerator.h 2019-12-13 01:53:20 UTC (rev 253460)
+++ trunk/Source/_javascript_Core/runtime/JSPropertyNameEnumerator.h 2019-12-13 01:57:24 UTC (rev 253461)
@@ -37,6 +37,12 @@
using Base = JSCell;
static constexpr unsigned StructureFlags = Base::StructureFlags | StructureIsImmortal;
+ template<typename CellType, SubspaceAccess mode>
+ static IsoSubspace* subspaceFor(VM& vm)
+ {
+ return &vm.propertyNameEnumeratorSpace;
+ }
+
static JSPropertyNameEnumerator* create(VM&, Structure*, uint32_t, uint32_t, PropertyNameArray&&);
static Structure* createStructure(VM& vm, JSGlobalObject* globalObject, JSValue prototype)
Modified: trunk/Source/_javascript_Core/runtime/JSScriptFetchParameters.h (253460 => 253461)
--- trunk/Source/_javascript_Core/runtime/JSScriptFetchParameters.h 2019-12-13 01:53:20 UTC (rev 253460)
+++ trunk/Source/_javascript_Core/runtime/JSScriptFetchParameters.h 2019-12-13 01:57:24 UTC (rev 253461)
@@ -42,6 +42,12 @@
DECLARE_EXPORT_INFO;
+ template<typename CellType, SubspaceAccess mode>
+ static IsoSubspace* subspaceFor(VM& vm)
+ {
+ return vm.scriptFetchParametersSpace<mode>();
+ }
+
static Structure* createStructure(VM& vm, JSGlobalObject* globalObject, JSValue prototype)
{
return Structure::create(vm, globalObject, prototype, TypeInfo(JSScriptFetchParametersType, StructureFlags), info());
Modified: trunk/Source/_javascript_Core/runtime/JSScriptFetcher.h (253460 => 253461)
--- trunk/Source/_javascript_Core/runtime/JSScriptFetcher.h 2019-12-13 01:53:20 UTC (rev 253460)
+++ trunk/Source/_javascript_Core/runtime/JSScriptFetcher.h 2019-12-13 01:57:24 UTC (rev 253461)
@@ -42,6 +42,12 @@
DECLARE_EXPORT_INFO;
+ template<typename CellType, SubspaceAccess mode>
+ static IsoSubspace* subspaceFor(VM& vm)
+ {
+ return vm.scriptFetcherSpace<mode>();
+ }
+
static Structure* createStructure(VM& vm, JSGlobalObject* globalObject, JSValue prototype)
{
return Structure::create(vm, globalObject, prototype, TypeInfo(JSScriptFetcherType, StructureFlags), info());
Modified: trunk/Source/_javascript_Core/runtime/JSSetIterator.h (253460 => 253461)
--- trunk/Source/_javascript_Core/runtime/JSSetIterator.h 2019-12-13 01:53:20 UTC (rev 253460)
+++ trunk/Source/_javascript_Core/runtime/JSSetIterator.h 2019-12-13 01:57:24 UTC (rev 253461)
@@ -39,6 +39,12 @@
DECLARE_EXPORT_INFO;
+ template<typename CellType, SubspaceAccess mode>
+ static IsoSubspace* subspaceFor(VM& vm)
+ {
+ return vm.setIteratorSpace<mode>();
+ }
+
static Structure* createStructure(VM& vm, JSGlobalObject* globalObject, JSValue prototype)
{
return Structure::create(vm, globalObject, prototype, TypeInfo(ObjectType, StructureFlags), info());
Modified: trunk/Source/_javascript_Core/runtime/JSSourceCode.h (253460 => 253461)
--- trunk/Source/_javascript_Core/runtime/JSSourceCode.h 2019-12-13 01:53:20 UTC (rev 253460)
+++ trunk/Source/_javascript_Core/runtime/JSSourceCode.h 2019-12-13 01:57:24 UTC (rev 253461)
@@ -41,6 +41,12 @@
DECLARE_EXPORT_INFO;
+ template<typename CellType, SubspaceAccess mode>
+ static IsoSubspace* subspaceFor(VM& vm)
+ {
+ return vm.sourceCodeSpace<mode>();
+ }
+
static Structure* createStructure(VM& vm, JSGlobalObject* globalObject, JSValue prototype)
{
return Structure::create(vm, globalObject, prototype, TypeInfo(JSSourceCodeType, StructureFlags), info());
Modified: trunk/Source/_javascript_Core/runtime/JSTemplateObjectDescriptor.h (253460 => 253461)
--- trunk/Source/_javascript_Core/runtime/JSTemplateObjectDescriptor.h 2019-12-13 01:53:20 UTC (rev 253460)
+++ trunk/Source/_javascript_Core/runtime/JSTemplateObjectDescriptor.h 2019-12-13 01:57:24 UTC (rev 253461)
@@ -37,6 +37,11 @@
static constexpr unsigned StructureFlags = Base::StructureFlags | StructureIsImmortal;
static constexpr bool needsDestruction = true;
+ template<typename CellType, SubspaceAccess mode>
+ static IsoSubspace* subspaceFor(VM& vm)
+ {
+ return vm.templateObjectDescriptorSpace<mode>();
+ }
DECLARE_INFO;
static JSTemplateObjectDescriptor* create(VM&, Ref<TemplateObjectDescriptor>&&, int);
Modified: trunk/Source/_javascript_Core/runtime/RegExp.h (253460 => 253461)
--- trunk/Source/_javascript_Core/runtime/RegExp.h 2019-12-13 01:53:20 UTC (rev 253460)
+++ trunk/Source/_javascript_Core/runtime/RegExp.h 2019-12-13 01:57:24 UTC (rev 253461)
@@ -42,11 +42,17 @@
friend class CachedRegExp;
public:
- typedef JSCell Base;
+ using Base = JSCell;
static constexpr unsigned StructureFlags = Base::StructureFlags | StructureIsImmortal;
+ static constexpr bool needsDestruction = true;
+ template<typename CellType, SubspaceAccess mode>
+ static IsoSubspace* subspaceFor(VM& vm)
+ {
+ return &vm.regExpSpace;
+ }
+
JS_EXPORT_PRIVATE static RegExp* create(VM&, const String& pattern, OptionSet<Yarr::Flags>);
- static constexpr bool needsDestruction = true;
static void destroy(JSCell*);
static size_t estimatedSize(JSCell*, VM&);
JS_EXPORT_PRIVATE static void dumpToStream(const JSCell*, PrintStream&);
Modified: trunk/Source/_javascript_Core/runtime/ScopedArgumentsTable.h (253460 => 253461)
--- trunk/Source/_javascript_Core/runtime/ScopedArgumentsTable.h 2019-12-13 01:53:20 UTC (rev 253460)
+++ trunk/Source/_javascript_Core/runtime/ScopedArgumentsTable.h 2019-12-13 01:57:24 UTC (rev 253461)
@@ -42,8 +42,15 @@
friend class CachedScopedArgumentsTable;
public:
- typedef JSCell Base;
+ using Base = JSCell;
static constexpr unsigned StructureFlags = Base::StructureFlags | StructureIsImmortal;
+ static constexpr bool needsDestruction = true;
+
+ template<typename CellType, SubspaceAccess mode>
+ static IsoSubspace* subspaceFor(VM& vm)
+ {
+ return vm.scopedArgumentsTableSpace<mode>();
+ }
private:
ScopedArgumentsTable(VM&);
@@ -53,7 +60,6 @@
static ScopedArgumentsTable* create(VM&);
static ScopedArgumentsTable* create(VM&, uint32_t length);
- static constexpr bool needsDestruction = true;
static void destroy(JSCell*);
ScopedArgumentsTable* clone(VM&);
Modified: trunk/Source/_javascript_Core/runtime/StructureChain.h (253460 => 253461)
--- trunk/Source/_javascript_Core/runtime/StructureChain.h 2019-12-13 01:53:20 UTC (rev 253460)
+++ trunk/Source/_javascript_Core/runtime/StructureChain.h 2019-12-13 01:57:24 UTC (rev 253461)
@@ -43,6 +43,12 @@
using Base = JSCell;
static constexpr unsigned StructureFlags = Base::StructureFlags | StructureIsImmortal;
+ template<typename CellType, SubspaceAccess>
+ static IsoSubspace* subspaceFor(VM& vm)
+ {
+ return &vm.structureChainSpace;
+ }
+
static StructureChain* create(VM&, JSObject*);
WriteBarrier<Structure>* head() { return m_vector.get(); }
static void visitChildren(JSCell*, SlotVisitor&);
Modified: trunk/Source/_javascript_Core/runtime/VM.cpp (253460 => 253461)
--- trunk/Source/_javascript_Core/runtime/VM.cpp 2019-12-13 01:53:20 UTC (rev 253460)
+++ trunk/Source/_javascript_Core/runtime/VM.cpp 2019-12-13 01:57:24 UTC (rev 253461)
@@ -161,6 +161,7 @@
#include "StrictEvalActivation.h"
#include "StringObject.h"
#include "StrongInlines.h"
+#include "StructureChain.h"
#include "StructureInlines.h"
#include "SymbolObject.h"
#include "TestRunnerUtils.h"
@@ -357,6 +358,7 @@
, customGetterSetterSpace ISO_SUBSPACE_INIT(heap, cellHeapCellType.get(), CustomGetterSetter)
, dateInstanceSpace ISO_SUBSPACE_INIT(heap, dateInstanceHeapCellType.get(), DateInstance)
, domAttributeGetterSetterSpace ISO_SUBSPACE_INIT(heap, cellHeapCellType.get(), DOMAttributeGetterSetter)
+ , exceptionSpace ISO_SUBSPACE_INIT(heap, destructibleCellHeapCellType.get(), Exception)
, executableToCodeBlockEdgeSpace ISO_SUBSPACE_INIT(heap, cellHeapCellType.get(), ExecutableToCodeBlockEdge) // Hash:0x7b730b20
, functionSpace ISO_SUBSPACE_INIT(heap, cellHeapCellType.get(), JSFunction) // Hash:0x800fca72
, getterSetterSpace ISO_SUBSPACE_INIT(heap, cellHeapCellType.get(), GetterSetter)
@@ -365,7 +367,9 @@
, nativeExecutableSpace ISO_SUBSPACE_INIT(heap, destructibleCellHeapCellType.get(), NativeExecutable) // Hash:0x67567f95
, numberObjectSpace ISO_SUBSPACE_INIT(heap, cellHeapCellType.get(), NumberObject)
, promiseSpace ISO_SUBSPACE_INIT(heap, cellHeapCellType.get(), JSPromise)
+ , propertyNameEnumeratorSpace ISO_SUBSPACE_INIT(heap, cellHeapCellType.get(), JSPropertyNameEnumerator)
, propertyTableSpace ISO_SUBSPACE_INIT(heap, destructibleCellHeapCellType.get(), PropertyTable) // Hash:0xc6bc9f12
+ , regExpSpace ISO_SUBSPACE_INIT(heap, destructibleCellHeapCellType.get(), RegExp)
, regExpObjectSpace ISO_SUBSPACE_INIT(heap, cellHeapCellType.get(), RegExpObject)
, ropeStringSpace ISO_SUBSPACE_INIT(heap, stringHeapCellType.get(), JSRopeString)
, scopedArgumentsSpace ISO_SUBSPACE_INIT(heap, cellHeapCellType.get(), ScopedArguments)
@@ -372,6 +376,7 @@
, sparseArrayValueMapSpace ISO_SUBSPACE_INIT(heap, destructibleCellHeapCellType.get(), SparseArrayValueMap)
, stringSpace ISO_SUBSPACE_INIT(heap, stringHeapCellType.get(), JSString) // Hash:0x90cf758f
, stringObjectSpace ISO_SUBSPACE_INIT(heap, cellHeapCellType.get(), StringObject)
+ , structureChainSpace ISO_SUBSPACE_INIT(heap, cellHeapCellType.get(), StructureChain)
, structureRareDataSpace ISO_SUBSPACE_INIT(heap, destructibleCellHeapCellType.get(), StructureRareData) // Hash:0xaca4e62d
, structureSpace ISO_SUBSPACE_INIT(heap, destructibleCellHeapCellType.get(), Structure) // Hash:0x1f1bcdca
, symbolTableSpace ISO_SUBSPACE_INIT(heap, destructibleCellHeapCellType.get(), SymbolTable) // Hash:0xc5215afd
@@ -1405,14 +1410,23 @@
DYNAMIC_ISO_SUBSPACE_DEFINE_MEMBER_SLOW(int8ArraySpace, cellHeapCellType.get(), JSInt8Array)
DYNAMIC_ISO_SUBSPACE_DEFINE_MEMBER_SLOW(int16ArraySpace, cellHeapCellType.get(), JSInt16Array)
DYNAMIC_ISO_SUBSPACE_DEFINE_MEMBER_SLOW(int32ArraySpace, cellHeapCellType.get(), JSInt32Array)
+DYNAMIC_ISO_SUBSPACE_DEFINE_MEMBER_SLOW(mapBucketSpace, cellHeapCellType.get(), JSMap::BucketType)
+DYNAMIC_ISO_SUBSPACE_DEFINE_MEMBER_SLOW(mapIteratorSpace, cellHeapCellType.get(), JSMapIterator)
DYNAMIC_ISO_SUBSPACE_DEFINE_MEMBER_SLOW(mapSpace, cellHeapCellType.get(), JSMap)
DYNAMIC_ISO_SUBSPACE_DEFINE_MEMBER_SLOW(moduleNamespaceObjectSpace, moduleNamespaceObjectHeapCellType.get(), JSModuleNamespaceObject)
DYNAMIC_ISO_SUBSPACE_DEFINE_MEMBER_SLOW(nativeStdFunctionSpace, nativeStdFunctionHeapCellType.get(), JSNativeStdFunction) // Hash:0x70ed61e4
DYNAMIC_ISO_SUBSPACE_DEFINE_MEMBER_SLOW(proxyObjectSpace, cellHeapCellType.get(), ProxyObject)
DYNAMIC_ISO_SUBSPACE_DEFINE_MEMBER_SLOW(proxyRevokeSpace, cellHeapCellType.get(), ProxyRevoke) // Hash:0xb506a939
+DYNAMIC_ISO_SUBSPACE_DEFINE_MEMBER_SLOW(scopedArgumentsTableSpace, destructibleCellHeapCellType.get(), ScopedArgumentsTable)
+DYNAMIC_ISO_SUBSPACE_DEFINE_MEMBER_SLOW(scriptFetchParametersSpace, destructibleCellHeapCellType.get(), JSScriptFetchParameters)
+DYNAMIC_ISO_SUBSPACE_DEFINE_MEMBER_SLOW(scriptFetcherSpace, destructibleCellHeapCellType.get(), JSScriptFetcher)
+DYNAMIC_ISO_SUBSPACE_DEFINE_MEMBER_SLOW(setBucketSpace, cellHeapCellType.get(), JSSet::BucketType)
+DYNAMIC_ISO_SUBSPACE_DEFINE_MEMBER_SLOW(setIteratorSpace, cellHeapCellType.get(), JSSetIterator)
DYNAMIC_ISO_SUBSPACE_DEFINE_MEMBER_SLOW(setSpace, cellHeapCellType.get(), JSSet)
+DYNAMIC_ISO_SUBSPACE_DEFINE_MEMBER_SLOW(sourceCodeSpace, destructibleCellHeapCellType.get(), JSSourceCode)
DYNAMIC_ISO_SUBSPACE_DEFINE_MEMBER_SLOW(symbolSpace, destructibleCellHeapCellType.get(), Symbol)
DYNAMIC_ISO_SUBSPACE_DEFINE_MEMBER_SLOW(symbolObjectSpace, cellHeapCellType.get(), SymbolObject)
+DYNAMIC_ISO_SUBSPACE_DEFINE_MEMBER_SLOW(templateObjectDescriptorSpace, destructibleCellHeapCellType.get(), JSTemplateObjectDescriptor)
DYNAMIC_ISO_SUBSPACE_DEFINE_MEMBER_SLOW(uint8ArraySpace, cellHeapCellType.get(), JSUint8Array)
DYNAMIC_ISO_SUBSPACE_DEFINE_MEMBER_SLOW(uint8ClampedArraySpace, cellHeapCellType.get(), JSUint8ClampedArray)
DYNAMIC_ISO_SUBSPACE_DEFINE_MEMBER_SLOW(uint16ArraySpace, cellHeapCellType.get(), JSUint16Array)
Modified: trunk/Source/_javascript_Core/runtime/VM.h (253460 => 253461)
--- trunk/Source/_javascript_Core/runtime/VM.h 2019-12-13 01:53:20 UTC (rev 253460)
+++ trunk/Source/_javascript_Core/runtime/VM.h 2019-12-13 01:57:24 UTC (rev 253461)
@@ -444,6 +444,7 @@
IsoSubspace customGetterSetterSpace;
IsoSubspace dateInstanceSpace;
IsoSubspace domAttributeGetterSetterSpace;
+ IsoSubspace exceptionSpace;
IsoSubspace executableToCodeBlockEdgeSpace;
IsoSubspace functionSpace;
IsoSubspace getterSetterSpace;
@@ -452,7 +453,9 @@
IsoSubspace nativeExecutableSpace;
IsoSubspace numberObjectSpace;
IsoSubspace promiseSpace;
+ IsoSubspace propertyNameEnumeratorSpace;
IsoSubspace propertyTableSpace;
+ IsoSubspace regExpSpace;
IsoSubspace regExpObjectSpace;
IsoSubspace ropeStringSpace;
IsoSubspace scopedArgumentsSpace;
@@ -459,6 +462,7 @@
IsoSubspace sparseArrayValueMapSpace;
IsoSubspace stringSpace;
IsoSubspace stringObjectSpace;
+ IsoSubspace structureChainSpace;
IsoSubspace structureRareDataSpace;
IsoSubspace structureSpace;
IsoSubspace symbolTableSpace;
@@ -507,14 +511,23 @@
DYNAMIC_ISO_SUBSPACE_DEFINE_MEMBER(int16ArraySpace)
DYNAMIC_ISO_SUBSPACE_DEFINE_MEMBER(int32ArraySpace)
DYNAMIC_ISO_SUBSPACE_DEFINE_MEMBER(jsModuleRecordSpace)
+ DYNAMIC_ISO_SUBSPACE_DEFINE_MEMBER(mapBucketSpace)
+ DYNAMIC_ISO_SUBSPACE_DEFINE_MEMBER(mapIteratorSpace)
DYNAMIC_ISO_SUBSPACE_DEFINE_MEMBER(mapSpace)
DYNAMIC_ISO_SUBSPACE_DEFINE_MEMBER(moduleNamespaceObjectSpace)
DYNAMIC_ISO_SUBSPACE_DEFINE_MEMBER(nativeStdFunctionSpace)
DYNAMIC_ISO_SUBSPACE_DEFINE_MEMBER(proxyObjectSpace)
DYNAMIC_ISO_SUBSPACE_DEFINE_MEMBER(proxyRevokeSpace)
+ DYNAMIC_ISO_SUBSPACE_DEFINE_MEMBER(scopedArgumentsTableSpace)
+ DYNAMIC_ISO_SUBSPACE_DEFINE_MEMBER(scriptFetchParametersSpace)
+ DYNAMIC_ISO_SUBSPACE_DEFINE_MEMBER(scriptFetcherSpace)
+ DYNAMIC_ISO_SUBSPACE_DEFINE_MEMBER(setBucketSpace)
+ DYNAMIC_ISO_SUBSPACE_DEFINE_MEMBER(setIteratorSpace)
DYNAMIC_ISO_SUBSPACE_DEFINE_MEMBER(setSpace)
+ DYNAMIC_ISO_SUBSPACE_DEFINE_MEMBER(sourceCodeSpace)
DYNAMIC_ISO_SUBSPACE_DEFINE_MEMBER(symbolSpace)
DYNAMIC_ISO_SUBSPACE_DEFINE_MEMBER(symbolObjectSpace)
+ DYNAMIC_ISO_SUBSPACE_DEFINE_MEMBER(templateObjectDescriptorSpace)
DYNAMIC_ISO_SUBSPACE_DEFINE_MEMBER(uint8ArraySpace)
DYNAMIC_ISO_SUBSPACE_DEFINE_MEMBER(uint8ClampedArraySpace)
DYNAMIC_ISO_SUBSPACE_DEFINE_MEMBER(uint16ArraySpace)