Changeset 192882 in webkit for trunk/Source/JavaScriptCore/ftl/FTLOperations.cpp
- Timestamp:
- Dec 1, 2015, 6:39:58 AM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/ftl/FTLOperations.cpp
r192876 r192882 165 165 FunctionExecutable* executable = nullptr; 166 166 JSScope* activation = nullptr; 167 JSValue boundThis; 168 bool isArrowFunction = false; 167 169 for (unsigned i = materialization->properties().size(); i--;) { 168 170 const ExitPropertyValue& property = materialization->properties()[i]; … … 171 173 if (property.location() == PromotedLocationDescriptor(FunctionActivationPLoc)) 172 174 activation = jsCast<JSScope*>(JSValue::decode(values[i])); 175 if (property.location() == PromotedLocationDescriptor(ArrowFunctionBoundThisPLoc)) { 176 isArrowFunction = true; 177 boundThis = JSValue::decode(values[i]); 178 } 173 179 } 174 180 RELEASE_ASSERT(executable && activation); 175 181 176 182 177 JSFunction* result = JSFunction::createWithInvalidatedReallocationWatchpoint(vm, executable, activation); 183 JSFunction* result = isArrowFunction 184 ? JSArrowFunction::createWithInvalidatedReallocationWatchpoint(vm, executable, activation, boundThis) 185 : JSFunction::createWithInvalidatedReallocationWatchpoint(vm, executable, activation); 178 186 179 187 return result;
Note:
See TracChangeset
for help on using the changeset viewer.