summaryrefslogtreecommitdiff
path: root/Source/JavaScriptCore/bytecode/StructureStubInfo.h
diff options
context:
space:
mode:
Diffstat (limited to 'Source/JavaScriptCore/bytecode/StructureStubInfo.h')
-rw-r--r--Source/JavaScriptCore/bytecode/StructureStubInfo.h17
1 files changed, 16 insertions, 1 deletions
diff --git a/Source/JavaScriptCore/bytecode/StructureStubInfo.h b/Source/JavaScriptCore/bytecode/StructureStubInfo.h
index d6b6092d0..8fad5c0cc 100644
--- a/Source/JavaScriptCore/bytecode/StructureStubInfo.h
+++ b/Source/JavaScriptCore/bytecode/StructureStubInfo.h
@@ -26,6 +26,8 @@
#ifndef StructureStubInfo_h
#define StructureStubInfo_h
+#include <wtf/Platform.h>
+
#if ENABLE(JIT)
#include "CodeOrigin.h"
@@ -36,6 +38,8 @@
namespace JSC {
+ class PolymorphicPutByIdList;
+
enum AccessType {
access_get_by_id_self,
access_get_by_id_proto,
@@ -45,6 +49,7 @@ namespace JSC {
access_put_by_id_transition_normal,
access_put_by_id_transition_direct,
access_put_by_id_replace,
+ access_put_by_id_list,
access_unset,
access_get_by_id_generic,
access_put_by_id_generic,
@@ -75,6 +80,7 @@ namespace JSC {
case access_put_by_id_transition_normal:
case access_put_by_id_transition_direct:
case access_put_by_id_replace:
+ case access_put_by_id_list:
case access_put_by_id_generic:
return true;
default:
@@ -149,10 +155,16 @@ namespace JSC {
u.putByIdReplace.baseObjectStructure.set(globalData, owner, baseObjectStructure);
}
+ void initPutByIdList(PolymorphicPutByIdList* list)
+ {
+ accessType = access_put_by_id_list;
+ u.putByIdList.list = list;
+ }
+
void reset()
{
accessType = access_unset;
-
+ deref();
stubRoutine = MacroAssemblerCodeRef();
}
@@ -227,6 +239,9 @@ namespace JSC {
struct {
WriteBarrierBase<Structure> baseObjectStructure;
} putByIdReplace;
+ struct {
+ PolymorphicPutByIdList* list;
+ } putByIdList;
} u;
MacroAssemblerCodeRef stubRoutine;