Changeset 268783 in webkit for trunk/Source/JavaScriptCore/ftl/FTLOSREntry.cpp
- Timestamp:
- Oct 20, 2020, 9:00:05 PM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/ftl/FTLOSREntry.cpp
r264804 r268783 75 75 JSValue valueOnStack = callFrame->r(virtualRegisterForArgumentIncludingThis(argument)).asanUnsafeJSValue(); 76 76 Optional<JSValue> reconstructedValue = values.argument(argument); 77 { 78 JSValue valueToValidate = reconstructedValue ? *reconstructedValue : valueOnStack; 79 auto flushFormat = entryCode->argumentFlushFormats()[argument]; 80 switch (flushFormat) { 81 case DFG::FlushedInt32: 82 if (!valueToValidate.isInt32()) 83 return nullptr; 84 break; 85 case DFG::FlushedBoolean: 86 if (!valueToValidate.isBoolean()) 87 return nullptr; 88 break; 89 case DFG::FlushedCell: 90 if (!valueToValidate.isCell()) 91 return nullptr; 92 break; 93 case DFG::FlushedJSValue: 94 break; 95 default: 96 dataLogLn("Unknown flush format for argument during FTL osr entry: ", flushFormat); 97 RELEASE_ASSERT_NOT_REACHED(); 98 break; 99 } 100 } 101 77 102 if (!argument) { 78 103 // |this| argument can be unboxed. We should store boxed value instead for loop OSR entry since FTL assumes that all arguments are flushed JSValue.
Note:
See TracChangeset
for help on using the changeset viewer.