comparison modules/javafx.web/src/main/native/Source/JavaScriptCore/dfg/DFGDoesGC.cpp @ 11208:db2c977a840b

8220147: Cherry pick GTK WebKit 2.22.7 changes Reviewed-by: mbilla, kcr
author arajkumar
date Fri, 08 Mar 2019 14:03:47 +0530
parents ab4db0272524
children a1fb556cdd7d
comparison
equal deleted inserted replaced
5:443dd9acb80a 6:3b0c68b543d1
144 case RegExpExec: 144 case RegExpExec:
145 case RegExpExecNonGlobalOrSticky: 145 case RegExpExecNonGlobalOrSticky:
146 case RegExpTest: 146 case RegExpTest:
147 case RegExpMatchFast: 147 case RegExpMatchFast:
148 case RegExpMatchFastGlobal: 148 case RegExpMatchFastGlobal:
149 case CompareLess:
150 case CompareLessEq:
151 case CompareGreater:
152 case CompareGreaterEq:
153 case CompareBelow: 149 case CompareBelow:
154 case CompareBelowEq: 150 case CompareBelowEq:
155 case CompareEq:
156 case CompareStrictEq:
157 case CompareEqPtr: 151 case CompareEqPtr:
158 case SameValue: 152 case SameValue:
159 case Call: 153 case Call:
160 case DirectCall: 154 case DirectCall:
161 case TailCallInlinedCaller: 155 case TailCallInlinedCaller:
372 case ParseInt: // We might resolve a rope even though we don't clobber anything. 366 case ParseInt: // We might resolve a rope even though we don't clobber anything.
373 case SetAdd: 367 case SetAdd:
374 case MapSet: 368 case MapSet:
375 return true; 369 return true;
376 370
371 case CompareEq:
372 case CompareLess:
373 case CompareLessEq:
374 case CompareGreater:
375 case CompareGreaterEq:
376 if (node->isBinaryUseKind(Int32Use)
377 #if USE(JSVALUE64)
378 || node->isBinaryUseKind(Int52RepUse)
379 #endif
380 || node->isBinaryUseKind(DoubleRepUse)
381 || node->isBinaryUseKind(StringIdentUse)
382 )
383 return false;
384 if (node->op() == CompareEq) {
385 if (node->isBinaryUseKind(BooleanUse)
386 || node->isBinaryUseKind(SymbolUse)
387 || node->isBinaryUseKind(ObjectUse)
388 || node->isBinaryUseKind(ObjectUse, ObjectOrOtherUse) || node->isBinaryUseKind(ObjectOrOtherUse, ObjectUse))
389 return false;
390 }
391 return true;
392
393 case CompareStrictEq:
394 if (node->isBinaryUseKind(BooleanUse)
395 || node->isBinaryUseKind(Int32Use)
396 #if USE(JSVALUE64)
397 || node->isBinaryUseKind(Int52RepUse)
398 #endif
399 || node->isBinaryUseKind(DoubleRepUse)
400 || node->isBinaryUseKind(SymbolUse)
401 || node->isBinaryUseKind(SymbolUse, UntypedUse)
402 || node->isBinaryUseKind(UntypedUse, SymbolUse)
403 || node->isBinaryUseKind(StringIdentUse)
404 || node->isBinaryUseKind(ObjectUse, UntypedUse) || node->isBinaryUseKind(UntypedUse, ObjectUse)
405 || node->isBinaryUseKind(ObjectUse)
406 || node->isBinaryUseKind(MiscUse, UntypedUse) || node->isBinaryUseKind(UntypedUse, MiscUse)
407 || node->isBinaryUseKind(StringIdentUse, NotStringVarUse) || node->isBinaryUseKind(NotStringVarUse, StringIdentUse))
408 return false;
409 return true;
410
377 case GetIndexedPropertyStorage: 411 case GetIndexedPropertyStorage:
378 if (node->arrayMode().type() == Array::String) 412 if (node->arrayMode().type() == Array::String)
379 return true; 413 return true;
380 return false; 414 return false;
381 415