Structure::getConcurrently() doesn't need to take a VM& argument.
authorfpizlo@apple.com <fpizlo@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 21 Sep 2014 19:18:40 +0000 (19:18 +0000)
committerfpizlo@apple.com <fpizlo@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 21 Sep 2014 19:18:40 +0000 (19:18 +0000)
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: https://svn.webkit.org/repository/webkit/trunk@173797 268f45cc-cd09-0410-ab3c-d52691b4dbfc

16 files changed:
Source/JavaScriptCore/ChangeLog
Source/JavaScriptCore/bytecode/CodeBlock.cpp
Source/JavaScriptCore/bytecode/ComplexGetStatus.cpp
Source/JavaScriptCore/bytecode/GetByIdStatus.cpp
Source/JavaScriptCore/bytecode/GetByIdStatus.h
Source/JavaScriptCore/bytecode/PutByIdStatus.cpp
Source/JavaScriptCore/bytecode/PutByIdStatus.h
Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h
Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp
Source/JavaScriptCore/dfg/DFGConstantFoldingPhase.cpp
Source/JavaScriptCore/dfg/DFGFixupPhase.cpp
Source/JavaScriptCore/runtime/IntendedStructureChain.cpp
Source/JavaScriptCore/runtime/IntendedStructureChain.h
Source/JavaScriptCore/runtime/Structure.cpp
Source/JavaScriptCore/runtime/Structure.h
Source/JavaScriptCore/runtime/StructureInlines.h

index eb29040..27f1576 100644 (file)
@@ -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
index a1fede5..04c1663 100644 (file)
@@ -291,19 +291,19 @@ void CodeBlock::printGetByIdOp(PrintStream& out, ExecState* exec, int location,
     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 @@ static void dumpChain(PrintStream& out, ExecState* exec, StructureChain* chain,
             first = false;
         else
             out.printf(", ");
-        dumpStructure(out, "struct", exec, currentStructure->get(), ident);
+        dumpStructure(out, "struct", currentStructure->get(), ident);
     }
     out.printf("]");
 }
@@ -331,7 +331,7 @@ void CodeBlock::printGetByIdCacheStatus(PrintStream& out, ExecState* exec, int l
         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 @@ void CodeBlock::printGetByIdCacheStatus(PrintStream& out, ExecState* exec, int l
             
             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 @@ void CodeBlock::printGetByIdCacheStatus(PrintStream& out, ExecState* exec, int l
                     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 @@ void CodeBlock::printPutByIdCacheStatus(PrintStream& out, ExecState* exec, int l
         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 @@ void CodeBlock::printPutByIdCacheStatus(PrintStream& out, ExecState* exec, int l
         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 @@ void CodeBlock::printPutByIdCacheStatus(PrintStream& out, ExecState* exec, int l
             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 @@ void CodeBlock::printPutByIdCacheStatus(PrintStream& out, ExecState* exec, int l
                     
                     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");
index eb44a78..bf591e5 100644 (file)
@@ -62,11 +62,9 @@ ComplexGetStatus ComplexGetStatus::computeFor(
         
         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))
index ecc65a2..356cfac 100644 (file)
@@ -84,8 +84,7 @@ GetByIdStatus GetByIdStatus::computeFromLLInt(CodeBlock* profiledBlock, unsigned
         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 @@ GetByIdStatus GetByIdStatus::computeForStubInfo(
             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 @@ GetByIdStatus GetByIdStatus::computeFor(
     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 @@ GetByIdStatus GetByIdStatus::computeFor(VM& vm, const StructureSet& set, StringI
             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)
index a1cac94..b716f01 100644 (file)
@@ -68,7 +68,7 @@ public:
     }
     
     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);
     
index 1a420e5..75cf2f1 100644 (file)
@@ -75,7 +75,7 @@ PutByIdStatus PutByIdStatus::computeFromLLInt(CodeBlock* profiledBlock, unsigned
     
     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 @@ PutByIdStatus PutByIdStatus::computeFromLLInt(CodeBlock* profiledBlock, unsigned
     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 @@ PutByIdStatus PutByIdStatus::computeForStubInfo(
         
     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 @@ PutByIdStatus PutByIdStatus::computeForStubInfo(
     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 @@ PutByIdStatus PutByIdStatus::computeForStubInfo(
             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 @@ PutByIdStatus PutByIdStatus::computeForStubInfo(
                 
             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 @@ PutByIdStatus PutByIdStatus::computeFor(CodeBlock* baselineBlock, CodeBlock* dfg
     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 @@ PutByIdStatus PutByIdStatus::computeFor(VM& vm, JSGlobalObject* globalObject, co
             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 @@ PutByIdStatus PutByIdStatus::computeFor(VM& vm, JSGlobalObject* globalObject, co
             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)
index 98ef1d7..fd35ca0 100644 (file)
@@ -71,7 +71,7 @@ public:
     }
     
     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);
     
index 83504b8..8e337f0 100644 (file)
@@ -1422,8 +1422,7 @@ bool AbstractInterpreter<AbstractStateType>::executeEffects(unsigned clobberLimi
         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 @@ bool AbstractInterpreter<AbstractStateType>::executeEffects(unsigned clobberLimi
         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()],
index 3a430cd..9612fea 100644 (file)
@@ -3236,7 +3236,7 @@ bool ByteCodeParser::parseBlock(unsigned limit)
             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 @@ bool ByteCodeParser::parseBlock(unsigned limit)
             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) {
index a0f8c3f..68d346e 100644 (file)
@@ -251,7 +251,7 @@ private:
                     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 @@ private:
                     break;
                 
                 PutByIdStatus status = PutByIdStatus::computeFor(
-                    vm(),
                     m_graph.globalObjectFor(origin.semantic),
                     baseValue.m_structure.set(),
                     m_graph.identifiers()[identifierNumber],
index 78b08d7..1113a1f 100644 (file)
@@ -1372,7 +1372,7 @@ private:
     {
         unsigned attributesUnused;
         PropertyOffset offset =
-            stringPrototypeStructure->getConcurrently(vm(), uid, attributesUnused);
+            stringPrototypeStructure->getConcurrently(uid, attributesUnused);
         if (!isValidOffset(offset))
             return false;
         
index 6abca71..4933e25 100644 (file)
@@ -103,11 +103,11 @@ bool IntendedStructureChain::matches(StructureChain* chain) const
     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))
index 5862d38..e742df8 100644 (file)
@@ -49,7 +49,7 @@ public:
     
     bool isStillValid() const;
     bool matches(StructureChain*) const;
-    bool mayInterceptStoreTo(VM&, StringImpl* uid);
+    bool mayInterceptStoreTo(StringImpl* uid);
     bool isNormalized();
     
     bool takesSlowPathInDFGForImpureProperty();
index 8d58d23..d0ecdf8 100644 (file)
@@ -850,7 +850,7 @@ PropertyTable* Structure::copyPropertyTableForPinning(VM& vm)
     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;
index 94e6633..210cb88 100644 (file)
@@ -262,8 +262,8 @@ public:
     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__)
     {
index 9820989..0a99e0e 100644 (file)
@@ -104,10 +104,10 @@ ALWAYS_INLINE PropertyOffset Structure::get(VM& vm, PropertyName propertyName, u
     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