Structure::getConcurrently() doesn't need to take a VM& argument.
Rubber stamped by Dan Bernstein.
Removed the extra argument, and then removed similar arguments from other methods until
I could build successfully again. It turned out that many methods took a VM& argument
just for calling getConcurrently().
* bytecode/CodeBlock.cpp:
(JSC::dumpStructure):
(JSC::dumpChain):
(JSC::CodeBlock::printGetByIdCacheStatus):
(JSC::CodeBlock::printPutByIdCacheStatus):
* bytecode/ComplexGetStatus.cpp:
(JSC::ComplexGetStatus::computeFor):
* bytecode/GetByIdStatus.cpp:
(JSC::GetByIdStatus::computeFromLLInt):
(JSC::GetByIdStatus::computeForStubInfo):
(JSC::GetByIdStatus::computeFor):
* bytecode/GetByIdStatus.h:
* bytecode/PutByIdStatus.cpp:
(JSC::PutByIdStatus::computeFromLLInt):
(JSC::PutByIdStatus::computeForStubInfo):
(JSC::PutByIdStatus::computeFor):
* bytecode/PutByIdStatus.h:
* dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):
* dfg/DFGConstantFoldingPhase.cpp:
(JSC::DFG::ConstantFoldingPhase::foldConstants):
* dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::isStringPrototypeMethodSane):
* runtime/IntendedStructureChain.cpp:
(JSC::IntendedStructureChain::mayInterceptStoreTo):
* runtime/IntendedStructureChain.h:
* runtime/Structure.cpp:
(JSC::Structure::getConcurrently):
* runtime/Structure.h:
* runtime/StructureInlines.h:
(JSC::Structure::getConcurrently):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@173797 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/Source/JavaScriptCore/ChangeLog b/Source/JavaScriptCore/ChangeLog
index eb29040..27f1576 100644
--- a/Source/JavaScriptCore/ChangeLog
+++ b/Source/JavaScriptCore/ChangeLog
@@ -1,3 +1,47 @@
+2014-09-21 Filip Pizlo <fpizlo@apple.com>
+
+ Structure::getConcurrently() doesn't need to take a VM& argument.
+
+ Rubber stamped by Dan Bernstein.
+
+ Removed the extra argument, and then removed similar arguments from other methods until
+ I could build successfully again. It turned out that many methods took a VM& argument
+ just for calling getConcurrently().
+
+ * bytecode/CodeBlock.cpp:
+ (JSC::dumpStructure):
+ (JSC::dumpChain):
+ (JSC::CodeBlock::printGetByIdCacheStatus):
+ (JSC::CodeBlock::printPutByIdCacheStatus):
+ * bytecode/ComplexGetStatus.cpp:
+ (JSC::ComplexGetStatus::computeFor):
+ * bytecode/GetByIdStatus.cpp:
+ (JSC::GetByIdStatus::computeFromLLInt):
+ (JSC::GetByIdStatus::computeForStubInfo):
+ (JSC::GetByIdStatus::computeFor):
+ * bytecode/GetByIdStatus.h:
+ * bytecode/PutByIdStatus.cpp:
+ (JSC::PutByIdStatus::computeFromLLInt):
+ (JSC::PutByIdStatus::computeForStubInfo):
+ (JSC::PutByIdStatus::computeFor):
+ * bytecode/PutByIdStatus.h:
+ * dfg/DFGAbstractInterpreterInlines.h:
+ (JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
+ * dfg/DFGByteCodeParser.cpp:
+ (JSC::DFG::ByteCodeParser::parseBlock):
+ * dfg/DFGConstantFoldingPhase.cpp:
+ (JSC::DFG::ConstantFoldingPhase::foldConstants):
+ * dfg/DFGFixupPhase.cpp:
+ (JSC::DFG::FixupPhase::isStringPrototypeMethodSane):
+ * runtime/IntendedStructureChain.cpp:
+ (JSC::IntendedStructureChain::mayInterceptStoreTo):
+ * runtime/IntendedStructureChain.h:
+ * runtime/Structure.cpp:
+ (JSC::Structure::getConcurrently):
+ * runtime/Structure.h:
+ * runtime/StructureInlines.h:
+ (JSC::Structure::getConcurrently):
+
2014-09-20 Filip Pizlo <fpizlo@apple.com>
FTL OSRExit construction should be based on methods that return ExitValues rather than methods that add ExitValues to OSRExit
diff --git a/Source/JavaScriptCore/bytecode/CodeBlock.cpp b/Source/JavaScriptCore/bytecode/CodeBlock.cpp
index a1fede5..04c1663 100644
--- a/Source/JavaScriptCore/bytecode/CodeBlock.cpp
+++ b/Source/JavaScriptCore/bytecode/CodeBlock.cpp
@@ -291,19 +291,19 @@
it += 4; // Increment up to the value profiler.
}
-static void dumpStructure(PrintStream& out, const char* name, ExecState* exec, Structure* structure, const Identifier& ident)
+static void dumpStructure(PrintStream& out, const char* name, Structure* structure, const Identifier& ident)
{
if (!structure)
return;
out.printf("%s = %p", name, structure);
- PropertyOffset offset = structure->getConcurrently(exec->vm(), ident.impl());
+ PropertyOffset offset = structure->getConcurrently(ident.impl());
if (offset != invalidOffset)
out.printf(" (offset = %d)", offset);
}
-static void dumpChain(PrintStream& out, ExecState* exec, StructureChain* chain, const Identifier& ident)
+static void dumpChain(PrintStream& out, StructureChain* chain, const Identifier& ident)
{
out.printf("chain = %p: [", chain);
bool first = true;
@@ -314,7 +314,7 @@
first = false;
else
out.printf(", ");
- dumpStructure(out, "struct", exec, currentStructure->get(), ident);
+ dumpStructure(out, "struct", currentStructure->get(), ident);
}
out.printf("]");
}
@@ -331,7 +331,7 @@
out.printf(" llint(array_length)");
else if (Structure* structure = instruction[4].u.structure.get()) {
out.printf(" llint(");
- dumpStructure(out, "struct", exec, structure, ident);
+ dumpStructure(out, "struct", structure, ident);
out.printf(")");
}
@@ -368,17 +368,17 @@
if (baseStructure) {
out.printf(", ");
- dumpStructure(out, "struct", exec, baseStructure, ident);
+ dumpStructure(out, "struct", baseStructure, ident);
}
if (prototypeStructure) {
out.printf(", ");
- dumpStructure(out, "prototypeStruct", exec, baseStructure, ident);
+ dumpStructure(out, "prototypeStruct", baseStructure, ident);
}
if (chain) {
out.printf(", ");
- dumpChain(out, exec, chain, ident);
+ dumpChain(out, chain, ident);
}
if (list) {
@@ -387,10 +387,10 @@
if (i)
out.printf(", ");
out.printf("(");
- dumpStructure(out, "base", exec, list->at(i).structure(), ident);
+ dumpStructure(out, "base", list->at(i).structure(), ident);
if (list->at(i).chain()) {
out.printf(", ");
- dumpChain(out, exec, list->at(i).chain(), ident);
+ dumpChain(out, list->at(i).chain(), ident);
}
out.printf(")");
}
@@ -417,7 +417,7 @@
case op_put_by_id:
case op_put_by_id_out_of_line:
out.print(" llint(");
- dumpStructure(out, "struct", exec, structure, ident);
+ dumpStructure(out, "struct", structure, ident);
out.print(")");
break;
@@ -426,12 +426,12 @@
case op_put_by_id_transition_direct_out_of_line:
case op_put_by_id_transition_normal_out_of_line:
out.print(" llint(");
- dumpStructure(out, "prev", exec, structure, ident);
+ dumpStructure(out, "prev", structure, ident);
out.print(", ");
- dumpStructure(out, "next", exec, instruction[6].u.structure.get(), ident);
+ dumpStructure(out, "next", instruction[6].u.structure.get(), ident);
if (StructureChain* chain = instruction[7].u.structureChain.get()) {
out.print(", ");
- dumpChain(out, exec, chain, ident);
+ dumpChain(out, chain, ident);
}
out.print(")");
break;
@@ -454,17 +454,17 @@
switch (stubInfo.accessType) {
case access_put_by_id_replace:
out.print("replace, ");
- dumpStructure(out, "struct", exec, stubInfo.u.putByIdReplace.baseObjectStructure.get(), ident);
+ dumpStructure(out, "struct", stubInfo.u.putByIdReplace.baseObjectStructure.get(), ident);
break;
case access_put_by_id_transition_normal:
case access_put_by_id_transition_direct:
out.print("transition, ");
- dumpStructure(out, "prev", exec, stubInfo.u.putByIdTransition.previousStructure.get(), ident);
+ dumpStructure(out, "prev", stubInfo.u.putByIdTransition.previousStructure.get(), ident);
out.print(", ");
- dumpStructure(out, "next", exec, stubInfo.u.putByIdTransition.structure.get(), ident);
+ dumpStructure(out, "next", stubInfo.u.putByIdTransition.structure.get(), ident);
if (StructureChain* chain = stubInfo.u.putByIdTransition.chain.get()) {
out.print(", ");
- dumpChain(out, exec, chain, ident);
+ dumpChain(out, chain, ident);
}
break;
case access_put_by_id_list: {
@@ -477,21 +477,21 @@
if (access.isReplace()) {
out.print("replace, ");
- dumpStructure(out, "struct", exec, access.oldStructure(), ident);
+ dumpStructure(out, "struct", access.oldStructure(), ident);
} else if (access.isSetter()) {
out.print("setter, ");
- dumpStructure(out, "struct", exec, access.oldStructure(), ident);
+ dumpStructure(out, "struct", access.oldStructure(), ident);
} else if (access.isCustom()) {
out.print("custom, ");
- dumpStructure(out, "struct", exec, access.oldStructure(), ident);
+ dumpStructure(out, "struct", access.oldStructure(), ident);
} else if (access.isTransition()) {
out.print("transition, ");
- dumpStructure(out, "prev", exec, access.oldStructure(), ident);
+ dumpStructure(out, "prev", access.oldStructure(), ident);
out.print(", ");
- dumpStructure(out, "next", exec, access.newStructure(), ident);
+ dumpStructure(out, "next", access.newStructure(), ident);
if (access.chain()) {
out.print(", ");
- dumpChain(out, exec, access.chain(), ident);
+ dumpChain(out, access.chain(), ident);
}
} else
out.print("unknown");
diff --git a/Source/JavaScriptCore/bytecode/ComplexGetStatus.cpp b/Source/JavaScriptCore/bytecode/ComplexGetStatus.cpp
index eb44a78..bf591e5 100644
--- a/Source/JavaScriptCore/bytecode/ComplexGetStatus.cpp
+++ b/Source/JavaScriptCore/bytecode/ComplexGetStatus.cpp
@@ -62,11 +62,9 @@
ASSERT_UNUSED(currentObject, currentObject);
- result.m_offset = currentStructure->getConcurrently(
- *profiledBlock->vm(), uid, result.m_attributes);
+ result.m_offset = currentStructure->getConcurrently(uid, result.m_attributes);
} else {
- result.m_offset = headStructure->getConcurrently(
- *profiledBlock->vm(), uid, result.m_attributes);
+ result.m_offset = headStructure->getConcurrently(uid, result.m_attributes);
}
if (!isValidOffset(result.m_offset))
diff --git a/Source/JavaScriptCore/bytecode/GetByIdStatus.cpp b/Source/JavaScriptCore/bytecode/GetByIdStatus.cpp
index ecc65a2..356cfac 100644
--- a/Source/JavaScriptCore/bytecode/GetByIdStatus.cpp
+++ b/Source/JavaScriptCore/bytecode/GetByIdStatus.cpp
@@ -84,8 +84,7 @@
return GetByIdStatus(NoInformation, false);
unsigned attributesIgnored;
- PropertyOffset offset = structure->getConcurrently(
- *profiledBlock->vm(), uid, attributesIgnored);
+ PropertyOffset offset = structure->getConcurrently(uid, attributesIgnored);
if (!isValidOffset(offset))
return GetByIdStatus(NoInformation, false);
@@ -150,8 +149,7 @@
return GetByIdStatus(slowPathState, true);
unsigned attributesIgnored;
GetByIdVariant variant;
- variant.m_offset = structure->getConcurrently(
- *profiledBlock->vm(), uid, attributesIgnored);
+ variant.m_offset = structure->getConcurrently(uid, attributesIgnored);
if (!isValidOffset(variant.m_offset))
return GetByIdStatus(slowPathState, true);
@@ -263,7 +261,7 @@
return computeFor(profiledBlock, baselineMap, codeOrigin.bytecodeIndex, uid);
}
-GetByIdStatus GetByIdStatus::computeFor(VM& vm, const StructureSet& set, StringImpl* uid)
+GetByIdStatus GetByIdStatus::computeFor(const StructureSet& set, StringImpl* uid)
{
// For now we only handle the super simple self access case. We could handle the
// prototype case in the future.
@@ -286,7 +284,7 @@
return GetByIdStatus(TakesSlowPath);
unsigned attributes;
- PropertyOffset offset = structure->getConcurrently(vm, uid, attributes);
+ PropertyOffset offset = structure->getConcurrently(uid, attributes);
if (!isValidOffset(offset))
return GetByIdStatus(TakesSlowPath); // It's probably a prototype lookup. Give up on life for now, even though we could totally be way smarter about it.
if (attributes & Accessor)
diff --git a/Source/JavaScriptCore/bytecode/GetByIdStatus.h b/Source/JavaScriptCore/bytecode/GetByIdStatus.h
index a1cac94..b716f01 100644
--- a/Source/JavaScriptCore/bytecode/GetByIdStatus.h
+++ b/Source/JavaScriptCore/bytecode/GetByIdStatus.h
@@ -68,7 +68,7 @@
}
static GetByIdStatus computeFor(CodeBlock*, StubInfoMap&, unsigned bytecodeIndex, StringImpl* uid);
- static GetByIdStatus computeFor(VM&, const StructureSet&, StringImpl* uid);
+ static GetByIdStatus computeFor(const StructureSet&, StringImpl* uid);
static GetByIdStatus computeFor(CodeBlock* baselineBlock, CodeBlock* dfgBlock, StubInfoMap& baselineMap, StubInfoMap& dfgMap, CodeOrigin, StringImpl* uid);
diff --git a/Source/JavaScriptCore/bytecode/PutByIdStatus.cpp b/Source/JavaScriptCore/bytecode/PutByIdStatus.cpp
index 1a420e5..75cf2f1 100644
--- a/Source/JavaScriptCore/bytecode/PutByIdStatus.cpp
+++ b/Source/JavaScriptCore/bytecode/PutByIdStatus.cpp
@@ -75,7 +75,7 @@
if (instruction[0].u.opcode == LLInt::getOpcode(op_put_by_id)
|| instruction[0].u.opcode == LLInt::getOpcode(op_put_by_id_out_of_line)) {
- PropertyOffset offset = structure->getConcurrently(*profiledBlock->vm(), uid);
+ PropertyOffset offset = structure->getConcurrently(uid);
if (!isValidOffset(offset))
return PutByIdStatus(NoInformation);
@@ -94,7 +94,7 @@
ASSERT(newStructure);
ASSERT(chain);
- PropertyOffset offset = newStructure->getConcurrently(*profiledBlock->vm(), uid);
+ PropertyOffset offset = newStructure->getConcurrently(uid);
if (!isValidOffset(offset))
return PutByIdStatus(NoInformation);
@@ -146,8 +146,7 @@
case access_put_by_id_replace: {
PropertyOffset offset =
- stubInfo->u.putByIdReplace.baseObjectStructure->getConcurrently(
- *profiledBlock->vm(), uid);
+ stubInfo->u.putByIdReplace.baseObjectStructure->getConcurrently(uid);
if (isValidOffset(offset)) {
return PutByIdVariant::replace(
stubInfo->u.putByIdReplace.baseObjectStructure.get(), offset);
@@ -159,8 +158,7 @@
case access_put_by_id_transition_direct: {
ASSERT(stubInfo->u.putByIdTransition.previousStructure->transitionWatchpointSetHasBeenInvalidated());
PropertyOffset offset =
- stubInfo->u.putByIdTransition.structure->getConcurrently(
- *profiledBlock->vm(), uid);
+ stubInfo->u.putByIdTransition.structure->getConcurrently(uid);
if (isValidOffset(offset)) {
RefPtr<IntendedStructureChain> chain;
if (stubInfo->u.putByIdTransition.chain) {
@@ -204,7 +202,7 @@
switch (access.type()) {
case PutByIdAccess::Replace: {
Structure* structure = access.structure();
- PropertyOffset offset = structure->getConcurrently(*profiledBlock->vm(), uid);
+ PropertyOffset offset = structure->getConcurrently(uid);
if (!isValidOffset(offset))
return PutByIdStatus(slowPathState);
variant = PutByIdVariant::replace(structure, offset);
@@ -213,7 +211,7 @@
case PutByIdAccess::Transition: {
PropertyOffset offset =
- access.newStructure()->getConcurrently(*profiledBlock->vm(), uid);
+ access.newStructure()->getConcurrently(uid);
if (!isValidOffset(offset))
return PutByIdStatus(slowPathState);
RefPtr<IntendedStructureChain> chain;
@@ -310,7 +308,7 @@
return computeFor(baselineBlock, baselineMap, codeOrigin.bytecodeIndex, uid);
}
-PutByIdStatus PutByIdStatus::computeFor(VM& vm, JSGlobalObject* globalObject, const StructureSet& set, StringImpl* uid, bool isDirect)
+PutByIdStatus PutByIdStatus::computeFor(JSGlobalObject* globalObject, const StructureSet& set, StringImpl* uid, bool isDirect)
{
if (toUInt32FromStringImpl(uid) != PropertyName::NotAnIndex)
return PutByIdStatus(TakesSlowPath);
@@ -330,7 +328,7 @@
return PutByIdStatus(TakesSlowPath);
unsigned attributes;
- PropertyOffset offset = structure->getConcurrently(vm, uid, attributes);
+ PropertyOffset offset = structure->getConcurrently(uid, attributes);
if (isValidOffset(offset)) {
if (attributes & CustomAccessor)
return PutByIdStatus(MakesCalls);
@@ -370,7 +368,7 @@
chain = adoptRef(new IntendedStructureChain(globalObject, structure));
// If the prototype chain has setters or read-only properties, then give up.
- if (chain->mayInterceptStoreTo(vm, uid))
+ if (chain->mayInterceptStoreTo(uid))
return PutByIdStatus(TakesSlowPath);
// If the prototype chain hasn't been normalized (i.e. there are proxies or dictionaries)
diff --git a/Source/JavaScriptCore/bytecode/PutByIdStatus.h b/Source/JavaScriptCore/bytecode/PutByIdStatus.h
index 98ef1d7d..fd35ca0 100644
--- a/Source/JavaScriptCore/bytecode/PutByIdStatus.h
+++ b/Source/JavaScriptCore/bytecode/PutByIdStatus.h
@@ -71,7 +71,7 @@
}
static PutByIdStatus computeFor(CodeBlock*, StubInfoMap&, unsigned bytecodeIndex, StringImpl* uid);
- static PutByIdStatus computeFor(VM&, JSGlobalObject*, const StructureSet&, StringImpl* uid, bool isDirect);
+ static PutByIdStatus computeFor(JSGlobalObject*, const StructureSet&, StringImpl* uid, bool isDirect);
static PutByIdStatus computeFor(CodeBlock* baselineBlock, CodeBlock* dfgBlock, StubInfoMap& baselineMap, StubInfoMap& dfgMap, CodeOrigin, StringImpl* uid);
diff --git a/Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h b/Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h
index 83504b8..8e337f0 100644
--- a/Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h
+++ b/Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h
@@ -1422,8 +1422,7 @@
if (!value.m_structure.isTop() && !value.m_structure.isClobbered()
&& (node->child1().useKind() == CellUse || !(value.m_type & ~SpecCell))) {
GetByIdStatus status = GetByIdStatus::computeFor(
- m_graph.m_vm, value.m_structure.set(),
- m_graph.identifiers()[node->identifierNumber()]);
+ value.m_structure.set(), m_graph.identifiers()[node->identifierNumber()]);
if (status.isSimple()) {
// Figure out what the result is going to be - is it TOP, a constant, or maybe
// something more subtle?
@@ -1761,7 +1760,6 @@
AbstractValue& value = forNode(node->child1());
if (!value.m_structure.isTop() && !value.m_structure.isClobbered()) {
PutByIdStatus status = PutByIdStatus::computeFor(
- m_graph.m_vm,
m_graph.globalObjectFor(node->origin.semantic),
value.m_structure.set(),
m_graph.identifiers()[node->identifierNumber()],
diff --git a/Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp b/Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp
index 3a430cd..9612fea 100644
--- a/Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp
+++ b/Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp
@@ -3236,7 +3236,7 @@
case GlobalProperty:
case GlobalPropertyWithVarInjectionChecks: {
SpeculatedType prediction = getPrediction();
- GetByIdStatus status = GetByIdStatus::computeFor(*m_vm, structure, uid);
+ GetByIdStatus status = GetByIdStatus::computeFor(structure, uid);
if (status.state() != GetByIdStatus::Simple
|| status.numVariants() != 1
|| status[0].structureSet().size() != 1) {
@@ -3320,7 +3320,7 @@
switch (resolveType) {
case GlobalProperty:
case GlobalPropertyWithVarInjectionChecks: {
- PutByIdStatus status = PutByIdStatus::computeFor(*m_vm, globalObject, structure, uid, false);
+ PutByIdStatus status = PutByIdStatus::computeFor(globalObject, structure, uid, false);
if (status.numVariants() != 1
|| status[0].kind() != PutByIdVariant::Replace
|| status[0].structure().size() != 1) {
diff --git a/Source/JavaScriptCore/dfg/DFGConstantFoldingPhase.cpp b/Source/JavaScriptCore/dfg/DFGConstantFoldingPhase.cpp
index a0f8c3f..68d346e 100644
--- a/Source/JavaScriptCore/dfg/DFGConstantFoldingPhase.cpp
+++ b/Source/JavaScriptCore/dfg/DFGConstantFoldingPhase.cpp
@@ -251,7 +251,7 @@
break;
GetByIdStatus status = GetByIdStatus::computeFor(
- vm(), baseValue.m_structure.set(), m_graph.identifiers()[identifierNumber]);
+ baseValue.m_structure.set(), m_graph.identifiers()[identifierNumber]);
if (!status.isSimple())
break;
@@ -300,7 +300,6 @@
break;
PutByIdStatus status = PutByIdStatus::computeFor(
- vm(),
m_graph.globalObjectFor(origin.semantic),
baseValue.m_structure.set(),
m_graph.identifiers()[identifierNumber],
diff --git a/Source/JavaScriptCore/dfg/DFGFixupPhase.cpp b/Source/JavaScriptCore/dfg/DFGFixupPhase.cpp
index 78b08d7..1113a1f 100644
--- a/Source/JavaScriptCore/dfg/DFGFixupPhase.cpp
+++ b/Source/JavaScriptCore/dfg/DFGFixupPhase.cpp
@@ -1372,7 +1372,7 @@
{
unsigned attributesUnused;
PropertyOffset offset =
- stringPrototypeStructure->getConcurrently(vm(), uid, attributesUnused);
+ stringPrototypeStructure->getConcurrently(uid, attributesUnused);
if (!isValidOffset(offset))
return false;
diff --git a/Source/JavaScriptCore/runtime/IntendedStructureChain.cpp b/Source/JavaScriptCore/runtime/IntendedStructureChain.cpp
index 6abca71..4933e25 100644
--- a/Source/JavaScriptCore/runtime/IntendedStructureChain.cpp
+++ b/Source/JavaScriptCore/runtime/IntendedStructureChain.cpp
@@ -103,11 +103,11 @@
return true;
}
-bool IntendedStructureChain::mayInterceptStoreTo(VM& vm, StringImpl* uid)
+bool IntendedStructureChain::mayInterceptStoreTo(StringImpl* uid)
{
for (unsigned i = 0; i < m_vector.size(); ++i) {
unsigned attributes;
- PropertyOffset offset = m_vector[i]->getConcurrently(vm, uid, attributes);
+ PropertyOffset offset = m_vector[i]->getConcurrently(uid, attributes);
if (!isValidOffset(offset))
continue;
if (attributes & (ReadOnly | Accessor))
diff --git a/Source/JavaScriptCore/runtime/IntendedStructureChain.h b/Source/JavaScriptCore/runtime/IntendedStructureChain.h
index 5862d38..e742df8 100644
--- a/Source/JavaScriptCore/runtime/IntendedStructureChain.h
+++ b/Source/JavaScriptCore/runtime/IntendedStructureChain.h
@@ -49,7 +49,7 @@
bool isStillValid() const;
bool matches(StructureChain*) const;
- bool mayInterceptStoreTo(VM&, StringImpl* uid);
+ bool mayInterceptStoreTo(StringImpl* uid);
bool isNormalized();
bool takesSlowPathInDFGForImpureProperty();
diff --git a/Source/JavaScriptCore/runtime/Structure.cpp b/Source/JavaScriptCore/runtime/Structure.cpp
index 8d58d23..d0ecdf8 100644
--- a/Source/JavaScriptCore/runtime/Structure.cpp
+++ b/Source/JavaScriptCore/runtime/Structure.cpp
@@ -850,7 +850,7 @@
return PropertyTable::create(vm, numberOfSlotsForLastOffset(m_offset, m_inlineCapacity));
}
-PropertyOffset Structure::getConcurrently(VM&, StringImpl* uid, unsigned& attributes)
+PropertyOffset Structure::getConcurrently(StringImpl* uid, unsigned& attributes)
{
Vector<Structure*, 8> structures;
Structure* structure;
diff --git a/Source/JavaScriptCore/runtime/Structure.h b/Source/JavaScriptCore/runtime/Structure.h
index 94e6633..210cb88a 100644
--- a/Source/JavaScriptCore/runtime/Structure.h
+++ b/Source/JavaScriptCore/runtime/Structure.h
@@ -262,8 +262,8 @@
PropertyOffset get(VM&, PropertyName);
PropertyOffset get(VM&, PropertyName, unsigned& attributes);
- PropertyOffset getConcurrently(VM&, StringImpl* uid);
- PropertyOffset getConcurrently(VM&, StringImpl* uid, unsigned& attributes);
+ PropertyOffset getConcurrently(StringImpl* uid);
+ PropertyOffset getConcurrently(StringImpl* uid, unsigned& attributes);
void setHasGetterSetterPropertiesWithProtoCheck(bool is__proto__)
{
diff --git a/Source/JavaScriptCore/runtime/StructureInlines.h b/Source/JavaScriptCore/runtime/StructureInlines.h
index 9820989..0a99e0e 100644
--- a/Source/JavaScriptCore/runtime/StructureInlines.h
+++ b/Source/JavaScriptCore/runtime/StructureInlines.h
@@ -104,10 +104,10 @@
return entry->offset;
}
-inline PropertyOffset Structure::getConcurrently(VM& vm, StringImpl* uid)
+inline PropertyOffset Structure::getConcurrently(StringImpl* uid)
{
unsigned attributesIgnored;
- return getConcurrently(vm, uid, attributesIgnored);
+ return getConcurrently(uid, attributesIgnored);
}
inline bool Structure::hasIndexingHeader(const JSCell* cell) const