Changeset 103604 in webkit for trunk/Source/JavaScriptCore/dfg/DFGAbstractState.cpp
- Timestamp:
- Dec 22, 2011, 9:47:17 PM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/dfg/DFGAbstractState.cpp
r103594 r103604 403 403 404 404 case GetByVal: { 405 PredictedType indexPrediction = m_graph[node.child2()].prediction(); 406 if (!(indexPrediction & PredictInt32) && indexPrediction) { 405 if (!node.prediction() || !m_graph[node.child1()].prediction() || !m_graph[node.child2()].prediction()) { 406 m_isValid = false; 407 break; 408 } 409 if (!isActionableArrayPrediction(m_graph[node.child1()].prediction()) || !m_graph[node.child2()].shouldSpeculateInteger()) { 407 410 clobberStructures(nodeIndex); 408 411 forNode(nodeIndex).makeTop(); … … 470 473 break; 471 474 } 475 ASSERT(m_graph[node.child1()].shouldSpeculateArray()); 472 476 forNode(node.child1()).filter(PredictArray); 473 477 forNode(node.child2()).filter(PredictInt32); … … 478 482 case PutByVal: 479 483 case PutByValAlias: { 480 PredictedType indexPrediction = m_graph[node.child2()].prediction(); 481 if (!(indexPrediction & PredictInt32) && indexPrediction) { 484 if (!m_graph[node.child1()].prediction() || !m_graph[node.child2()].prediction()) { 485 m_isValid = false; 486 break; 487 } 488 if (!m_graph[node.child2()].shouldSpeculateInteger() || !isActionableMutableArrayPrediction(m_graph[node.child1()].prediction())) { 489 ASSERT(node.op == PutByVal); 482 490 clobberStructures(nodeIndex); 483 491 forNode(nodeIndex).makeTop(); … … 539 547 break; 540 548 } 541 549 ASSERT(m_graph[node.child1()].shouldSpeculateArray()); 542 550 forNode(node.child1()).filter(PredictArray); 543 551 forNode(node.child2()).filter(PredictInt32);
Note:
See TracChangeset
for help on using the changeset viewer.