Changeset 172176 in webkit for trunk/Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp
- Timestamp:
- Aug 6, 2014, 2:32:55 PM (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp
r172149 r172176 1108 1108 addToGraph(CheckFunction, OpInfo(m_graph.freeze(function)), callTarget, thisArgument); 1109 1109 else { 1110 ASSERT(callLinkStatus.structure());1111 1110 ASSERT(callLinkStatus.executable()); 1112 1111 1113 addToGraph(CheckStructure, OpInfo(m_graph.addStructureSet(callLinkStatus.structure())), callTarget);1114 1112 addToGraph(CheckExecutable, OpInfo(callLinkStatus.executable()), callTarget, thisArgument); 1115 1113 } … … 3209 3207 } 3210 3208 3209 case op_get_enumerable_length: { 3210 set(VirtualRegister(currentInstruction[1].u.operand), addToGraph(GetEnumerableLength, 3211 get(VirtualRegister(currentInstruction[2].u.operand)))); 3212 NEXT_OPCODE(op_get_enumerable_length); 3213 } 3214 3215 case op_has_generic_property: { 3216 set(VirtualRegister(currentInstruction[1].u.operand), addToGraph(HasGenericProperty, 3217 get(VirtualRegister(currentInstruction[2].u.operand)), 3218 get(VirtualRegister(currentInstruction[3].u.operand)))); 3219 NEXT_OPCODE(op_has_generic_property); 3220 } 3221 3222 case op_has_structure_property: { 3223 set(VirtualRegister(currentInstruction[1].u.operand), addToGraph(HasStructureProperty, 3224 get(VirtualRegister(currentInstruction[2].u.operand)), 3225 get(VirtualRegister(currentInstruction[3].u.operand)), 3226 get(VirtualRegister(currentInstruction[4].u.operand)))); 3227 NEXT_OPCODE(op_has_structure_property); 3228 } 3229 3230 case op_has_indexed_property: { 3231 Node* base = get(VirtualRegister(currentInstruction[2].u.operand)); 3232 ArrayMode arrayMode = getArrayModeConsideringSlowPath(currentInstruction[4].u.arrayProfile, Array::Read); 3233 Node* property = get(VirtualRegister(currentInstruction[3].u.operand)); 3234 Node* hasIterableProperty = addToGraph(HasIndexedProperty, OpInfo(arrayMode.asWord()), base, property); 3235 set(VirtualRegister(currentInstruction[1].u.operand), hasIterableProperty); 3236 NEXT_OPCODE(op_has_indexed_property); 3237 } 3238 3239 case op_get_direct_pname: { 3240 SpeculatedType prediction = getPredictionWithoutOSRExit(); 3241 3242 Node* base = get(VirtualRegister(currentInstruction[2].u.operand)); 3243 Node* property = get(VirtualRegister(currentInstruction[3].u.operand)); 3244 Node* index = get(VirtualRegister(currentInstruction[4].u.operand)); 3245 Node* enumerator = get(VirtualRegister(currentInstruction[5].u.operand)); 3246 3247 addVarArgChild(base); 3248 addVarArgChild(property); 3249 addVarArgChild(index); 3250 addVarArgChild(enumerator); 3251 set(VirtualRegister(currentInstruction[1].u.operand), 3252 addToGraph(Node::VarArg, GetDirectPname, OpInfo(0), OpInfo(prediction))); 3253 3254 NEXT_OPCODE(op_get_direct_pname); 3255 } 3256 3257 case op_get_structure_property_enumerator: { 3258 set(VirtualRegister(currentInstruction[1].u.operand), addToGraph(GetStructurePropertyEnumerator, 3259 get(VirtualRegister(currentInstruction[2].u.operand)), 3260 get(VirtualRegister(currentInstruction[3].u.operand)))); 3261 NEXT_OPCODE(op_get_structure_property_enumerator); 3262 } 3263 3264 case op_get_generic_property_enumerator: { 3265 set(VirtualRegister(currentInstruction[1].u.operand), addToGraph(GetGenericPropertyEnumerator, 3266 get(VirtualRegister(currentInstruction[2].u.operand)), 3267 get(VirtualRegister(currentInstruction[3].u.operand)), 3268 get(VirtualRegister(currentInstruction[4].u.operand)))); 3269 NEXT_OPCODE(op_get_generic_property_enumerator); 3270 } 3271 3272 case op_next_enumerator_pname: { 3273 set(VirtualRegister(currentInstruction[1].u.operand), addToGraph(GetEnumeratorPname, 3274 get(VirtualRegister(currentInstruction[2].u.operand)), 3275 get(VirtualRegister(currentInstruction[3].u.operand)))); 3276 NEXT_OPCODE(op_next_enumerator_pname); 3277 } 3278 3279 case op_to_index_string: { 3280 set(VirtualRegister(currentInstruction[1].u.operand), addToGraph(ToIndexString, 3281 get(VirtualRegister(currentInstruction[2].u.operand)))); 3282 NEXT_OPCODE(op_to_index_string); 3283 } 3284 3211 3285 default: 3212 3286 // Parse failed! This should not happen because the capabilities checker
Note:
See TracChangeset
for help on using the changeset viewer.