Changeset 260735 in webkit
- Timestamp:
- Apr 26, 2020 5:37:15 PM (4 years ago)
- Location:
- trunk/Source/JavaScriptCore
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/API/JSObjectRef.cpp
r260343 r260735 706 706 VM& vm = globalObject->vm(); 707 707 JSLockHolder locker(vm); 708 CallData callData;709 708 JSCell* cell = toJS(object); 710 return cell-> methodTable(vm)->getCallData(cell, callData) != CallType::None;709 return cell->isFunction(vm); 711 710 } 712 711 -
trunk/Source/JavaScriptCore/ChangeLog
r260733 r260735 1 2020-04-26 Ross Kirsling <ross.kirsling@sony.com> 2 3 [JSC] Clearly distinguish isConstructor from getConstructData 4 https://bugs.webkit.org/show_bug.cgi?id=211053 5 6 Reviewed by Sam Weinig. 7 8 Follow-up to r260722. Remove the isConstructor overload that duplicates getConstructData 9 and clearly distinguish the usage of these two functions. 10 11 * runtime/JSCJSValue.h: 12 * runtime/JSCJSValueInlines.h: 13 * runtime/JSCell.h: 14 * runtime/JSCellInlines.h: 15 (JSC::JSCell::isConstructor): 16 Remove isConstructor overload. 17 18 * runtime/JSBoundFunction.cpp: 19 (JSC::JSBoundFunction::create): 20 Don't use getConstructData if you don't need ConstructData. 21 22 * runtime/ReflectObject.cpp: 23 (JSC::reflectObjectConstruct): 24 Use getConstructData if you need ConstructData. 25 26 * API/JSObjectRef.cpp: 27 (JSObjectIsFunction): 28 Use isFunction (leftover spot from last patch). 29 1 30 2020-04-26 Alexey Shvayka <shvaikalesh@gmail.com> 2 31 -
trunk/Source/JavaScriptCore/runtime/JSBoundFunction.cpp
r258410 r260735 206 206 207 207 bool isJSFunction = getJSFunction(targetFunction); 208 ConstructData constructData; 209 ConstructType constructType = JSC::getConstructData(vm, targetFunction, constructData); 210 bool canConstruct = constructType != ConstructType::None; 208 bool canConstruct = targetFunction->isConstructor(vm); 211 209 212 210 NativeExecutable* executable = vm.getBoundFunction(isJSFunction, canConstruct); -
trunk/Source/JavaScriptCore/runtime/JSCJSValue.h
r260722 r260735 236 236 bool isFunction(VM&) const; 237 237 bool isConstructor(VM&) const; 238 bool isConstructor(VM&, ConstructType&, ConstructData&) const;239 238 bool isUndefined() const; 240 239 bool isNull() const; -
trunk/Source/JavaScriptCore/runtime/JSCJSValueInlines.h
r260722 r260735 888 888 return false; 889 889 return asCell()->isConstructor(vm); 890 }891 892 inline bool JSValue::isConstructor(VM& vm, ConstructType& constructType, ConstructData& constructData) const893 {894 if (!isCell())895 return false;896 return asCell()->isConstructor(vm, constructType, constructData);897 890 } 898 891 -
trunk/Source/JavaScriptCore/runtime/JSCell.h
r260722 r260735 110 110 bool isFunction(VM&); 111 111 bool isConstructor(VM&); 112 bool isConstructor(VM&, ConstructType&, ConstructData&);113 112 bool inherits(VM&, const ClassInfo*) const; 114 113 template<typename Target> bool inherits(VM&) const; -
trunk/Source/JavaScriptCore/runtime/JSCellInlines.h
r260722 r260735 243 243 inline bool JSCell::isConstructor(VM& vm) 244 244 { 245 ConstructType constructType; 246 ConstructData constructData; 247 return isConstructor(vm, constructType, constructData); 248 } 249 250 inline bool JSCell::isConstructor(VM& vm, ConstructType& constructType, ConstructData& constructData) 251 { 252 constructType = methodTable(vm)->getConstructData(this, constructData); 253 return constructType != ConstructType::None; 245 ConstructData ignoredConstructData; 246 return methodTable(vm)->getConstructData(this, ignoredConstructData) != ConstructType::None; 254 247 } 255 248 -
trunk/Source/JavaScriptCore/runtime/ReflectObject.cpp
r251425 r260735 98 98 99 99 ConstructData constructData; 100 ConstructType constructType ;101 if ( !target.isConstructor(vm, constructType, constructData))100 ConstructType constructType = getConstructData(vm, target, constructData); 101 if (constructType == ConstructType::None) 102 102 return JSValue::encode(throwTypeError(globalObject, scope, "Reflect.construct requires the first argument be a constructor"_s)); 103 103
Note: See TracChangeset
for help on using the changeset viewer.