Skip to content

Commit a6df288

Browse files
cdumezdarinadler
authored andcommitted
Drop jsDynamicCast<>() in favor of dynamicDowncast<>()
https://bugs.webkit.org/show_bug.cgi?id=312710 Reviewed by Anne van Kesteren. Drop jsDynamicCast<>() in favor of dynamicDowncast<>() for casting consistency throughout the codebase. Canonical link: https://commits.webkit.org/311547@main
1 parent a09bb10 commit a6df288

176 files changed

Lines changed: 821 additions & 871 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Source/JavaScriptCore/API/JSAPIGlobalObject.mm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@
126126
RETURN_IF_EXCEPTION(scope, { });
127127

128128
URL base;
129-
if (JSString* referrerString = jsDynamicCast<JSString*>(referrer)) {
129+
if (JSString* referrerString = dynamicDowncast<JSString>(referrer)) {
130130
String value = referrerString->value(globalObject);
131131
RETURN_IF_EXCEPTION(scope, { });
132132
// It can be invalid URL because dynamic-import will be resolved with caller's source origin (this becomes referrer), and it can be non valid URL.

Source/JavaScriptCore/API/JSCallbackObjectFunctions.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -232,7 +232,7 @@ EncodedJSValue JSCallbackObject<Parent>::customToPrimitive(JSGlobalObject* globa
232232
VM& vm = getVM(globalObject);
233233
auto scope = DECLARE_THROW_SCOPE(vm);
234234

235-
JSCallbackObject* thisObject = jsDynamicCast<JSCallbackObject*>(callFrame->thisValue());
235+
JSCallbackObject* thisObject = dynamicDowncast<JSCallbackObject>(callFrame->thisValue());
236236
if (!thisObject)
237237
return throwVMTypeError(globalObject, scope, "JSCallbackObject[Symbol.toPrimitive] method called on incompatible |this| value."_s);
238238
PreferredPrimitiveType hint = toPreferredPrimitiveType(globalObject, callFrame->argument(0));

Source/JavaScriptCore/API/JSContext.mm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ - (JSValue *)evaluateJSScript:(JSScript *)script
136136
return [JSValue valueWithJSValueRef:result inContext:self];
137137
}
138138

139-
auto* apiGlobalObject = JSC::jsDynamicCast<JSC::JSAPIGlobalObject*>(globalObject);
139+
auto* apiGlobalObject = dynamicDowncast<JSC::JSAPIGlobalObject>(globalObject);
140140
if (!apiGlobalObject)
141141
return [JSValue valueWithNewPromiseRejectedWithReason:[JSValue valueWithNewErrorFromMessage:@"Context does not support module loading" inContext:self] inContext:self];
142142

Source/JavaScriptCore/API/JSObjectRef.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -864,9 +864,9 @@ JSObjectRef JSObjectGetProxyTarget(JSObjectRef objectRef)
864864
VM& vm = object->vm();
865865
JSLockHolder locker(vm);
866866
JSObject* result = nullptr;
867-
if (JSGlobalProxy* proxy = jsDynamicCast<JSGlobalProxy*>(object))
867+
if (JSGlobalProxy* proxy = dynamicDowncast<JSGlobalProxy>(object))
868868
result = proxy->target();
869-
else if (ProxyObject* proxy = jsDynamicCast<ProxyObject*>(object))
869+
else if (ProxyObject* proxy = dynamicDowncast<ProxyObject>(object))
870870
result = proxy->target();
871871
return toRef(result);
872872
}

Source/JavaScriptCore/API/JSTypedArray.cpp

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ JSTypedArrayType JSValueGetTypedArrayType(JSContextRef ctx, JSValueRef valueRef,
147147
return kJSTypedArrayTypeNone;
148148
JSObject* object = value.getObject();
149149

150-
if (jsDynamicCast<JSArrayBuffer*>(object))
150+
if (is<JSArrayBuffer>(object))
151151
return kJSTypedArrayTypeArrayBuffer;
152152

153153
return toJSTypedArrayType(object->type());
@@ -204,7 +204,7 @@ JSObjectRef JSObjectMakeTypedArrayWithArrayBuffer(JSContextRef ctx, JSTypedArray
204204
if (arrayType == kJSTypedArrayTypeNone || arrayType == kJSTypedArrayTypeArrayBuffer)
205205
return nullptr;
206206

207-
JSArrayBuffer* jsBuffer = jsDynamicCast<JSArrayBuffer*>(toJS(jsBufferRef));
207+
JSArrayBuffer* jsBuffer = dynamicDowncast<JSArrayBuffer>(toJS(jsBufferRef));
208208
if (!jsBuffer) {
209209
setException(ctx, exception, createTypeError(globalObject, "JSObjectMakeTypedArrayWithArrayBuffer expects buffer to be an Array Buffer object"_s));
210210
return nullptr;
@@ -232,7 +232,7 @@ JSObjectRef JSObjectMakeTypedArrayWithArrayBufferAndOffset(JSContextRef ctx, JST
232232
if (arrayType == kJSTypedArrayTypeNone || arrayType == kJSTypedArrayTypeArrayBuffer)
233233
return nullptr;
234234

235-
JSArrayBuffer* jsBuffer = jsDynamicCast<JSArrayBuffer*>(toJS(jsBufferRef));
235+
JSArrayBuffer* jsBuffer = dynamicDowncast<JSArrayBuffer>(toJS(jsBufferRef));
236236
if (!jsBuffer) {
237237
setException(ctx, exception, createTypeError(globalObject, "JSObjectMakeTypedArrayWithArrayBuffer expects buffer to be an Array Buffer object"_s));
238238
return nullptr;
@@ -251,7 +251,7 @@ void* JSObjectGetTypedArrayBytesPtr(JSContextRef ctx, JSObjectRef objectRef, JSV
251251
JSLockHolder locker(vm);
252252
JSObject* object = toJS(objectRef);
253253

254-
if (JSArrayBufferView* typedArray = jsDynamicCast<JSArrayBufferView*>(object)) {
254+
if (JSArrayBufferView* typedArray = dynamicDowncast<JSArrayBufferView>(object)) {
255255
if (ArrayBuffer* buffer = typedArray->possiblySharedBuffer()) {
256256
buffer->pinAndLock();
257257
return buffer->data();
@@ -266,7 +266,7 @@ size_t JSObjectGetTypedArrayLength(JSContextRef, JSObjectRef objectRef, JSValueR
266266
{
267267
JSObject* object = toJS(objectRef);
268268

269-
if (JSArrayBufferView* typedArray = jsDynamicCast<JSArrayBufferView*>(object))
269+
if (JSArrayBufferView* typedArray = dynamicDowncast<JSArrayBufferView>(object))
270270
return typedArray->length();
271271

272272
return 0;
@@ -276,7 +276,7 @@ size_t JSObjectGetTypedArrayByteLength(JSContextRef, JSObjectRef objectRef, JSVa
276276
{
277277
JSObject* object = toJS(objectRef);
278278

279-
if (JSArrayBufferView* typedArray = jsDynamicCast<JSArrayBufferView*>(object))
279+
if (JSArrayBufferView* typedArray = dynamicDowncast<JSArrayBufferView>(object))
280280
return typedArray->byteLength();
281281

282282
return 0;
@@ -286,7 +286,7 @@ size_t JSObjectGetTypedArrayByteOffset(JSContextRef, JSObjectRef objectRef, JSVa
286286
{
287287
JSObject* object = toJS(objectRef);
288288

289-
if (JSArrayBufferView* typedArray = jsDynamicCast<JSArrayBufferView*>(object))
289+
if (JSArrayBufferView* typedArray = dynamicDowncast<JSArrayBufferView>(object))
290290
return typedArray->byteOffset();
291291

292292
return 0;
@@ -300,7 +300,7 @@ JSObjectRef JSObjectGetTypedArrayBuffer(JSContextRef ctx, JSObjectRef objectRef,
300300
JSObject* object = toJS(objectRef);
301301

302302

303-
if (JSArrayBufferView* typedArray = jsDynamicCast<JSArrayBufferView*>(object)) {
303+
if (JSArrayBufferView* typedArray = dynamicDowncast<JSArrayBufferView>(object)) {
304304
if (ArrayBuffer* buffer = typedArray->possiblySharedBuffer())
305305
return toRef(vm.m_typedArrayController->toJS(globalObject, typedArray->realm(), *buffer));
306306

@@ -336,7 +336,7 @@ void* JSObjectGetArrayBufferBytesPtr(JSContextRef ctx, JSObjectRef objectRef, JS
336336
JSLockHolder locker(vm);
337337
JSObject* object = toJS(objectRef);
338338

339-
if (JSArrayBuffer* jsBuffer = jsDynamicCast<JSArrayBuffer*>(object)) {
339+
if (JSArrayBuffer* jsBuffer = dynamicDowncast<JSArrayBuffer>(object)) {
340340
ArrayBuffer* buffer = jsBuffer->impl();
341341
if (buffer->isWasmMemory()) {
342342
setException(ctx, exception, createTypeError(globalObject, "Cannot get the backing buffer for a WebAssembly.Memory"_s));
@@ -370,7 +370,7 @@ size_t JSObjectGetArrayBufferByteLength(JSContextRef, JSObjectRef objectRef, JSV
370370
return 0;
371371
}
372372

373-
if (JSArrayBuffer* jsBuffer = jsDynamicCast<JSArrayBuffer*>(object))
373+
if (JSArrayBuffer* jsBuffer = dynamicDowncast<JSArrayBuffer>(object))
374374
return jsBuffer->impl()->byteLength();
375375

376376
return 0;

Source/JavaScriptCore/API/JSWrapperMap.mm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -278,7 +278,7 @@ static void copyMethodsToObject(JSContext *context, Class objcClass, Protocol *p
278278
// to override normal builtins e.g. "toString" we check if
279279
// the existing value on the prototype chain is an ObjC
280280
// callback already.
281-
if ([existingMethod isObject] && JSC::jsDynamicCast<JSC::ObjCCallbackFunction*>(toJS(globalObject, [existingMethod JSValueRef])))
281+
if ([existingMethod isObject] && is<JSC::ObjCCallbackFunction>(toJS(globalObject, [existingMethod JSValueRef])))
282282
return;
283283
JSObjectRef method = objCCallbackFunctionForMethod(context, objcClass, protocol, isInstanceMethod, sel, types);
284284
if (method)

Source/JavaScriptCore/API/glib/JSCValue.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1553,7 +1553,7 @@ gboolean jsc_value_is_array_buffer(JSCValue* value)
15531553
if (!jsValue.isObject())
15541554
return FALSE;
15551555

1556-
return !!jsDynamicCast<JSArrayBuffer*>(jsValue.getObject());
1556+
return is<JSArrayBuffer>(jsValue.getObject());
15571557
}
15581558

15591559
/**

Source/JavaScriptCore/bytecode/ArrayProfile.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -158,14 +158,14 @@ void ArrayProfile::observeIndexedRead(JSCell* cell, unsigned index)
158158
{
159159
m_lastSeenStructureID = cell->structureID();
160160

161-
if (JSObject* object = jsDynamicCast<JSObject*>(cell)) {
161+
if (JSObject* object = dynamicDowncast<JSObject>(cell)) {
162162
if (hasAnyArrayStorage(object->indexingType()) && index >= object->getVectorLength())
163163
setOutOfBounds();
164164
else if (index >= object->getArrayLength())
165165
setOutOfBounds();
166166
}
167167

168-
if (JSString* string = jsDynamicCast<JSString*>(cell)) {
168+
if (JSString* string = dynamicDowncast<JSString>(cell)) {
169169
if (index >= string->length())
170170
setOutOfBounds();
171171
}

Source/JavaScriptCore/bytecode/CallLinkInfo.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -245,7 +245,7 @@ void DataOnlyCallLinkInfo::initialize(VM& vm, CodeBlock* owner, CallType callTyp
245245

246246
std::tuple<CodeBlock*, BytecodeIndex> CallLinkInfo::retrieveCaller(JSCell* owner)
247247
{
248-
auto* codeBlock = jsDynamicCast<CodeBlock*>(owner);
248+
auto* codeBlock = dynamicDowncast<CodeBlock>(owner);
249249
if (!codeBlock)
250250
return { };
251251
CodeOrigin codeOrigin = this->codeOrigin();
@@ -292,7 +292,7 @@ JSGlobalObject* CallLinkInfo::globalObjectForSlowPath(JSCell* owner)
292292
if (codeBlock)
293293
return codeBlock->globalObject();
294294
#if ENABLE(WEBASSEMBLY)
295-
auto* module = jsDynamicCast<JSWebAssemblyModule*>(owner);
295+
auto* module = dynamicDowncast<JSWebAssemblyModule>(owner);
296296
if (module)
297297
return module->realm();
298298
#endif
@@ -554,7 +554,7 @@ CodeBlock* DirectCallLinkInfo::retrieveCodeBlock(FunctionExecutable* functionExe
554554
if (!codeBlock)
555555
return nullptr;
556556

557-
CodeBlock* ownerCodeBlock = jsDynamicCast<CodeBlock*>(owner());
557+
CodeBlock* ownerCodeBlock = dynamicDowncast<CodeBlock>(owner());
558558
if (!ownerCodeBlock)
559559
return nullptr;
560560

@@ -587,7 +587,7 @@ void DirectCallLinkInfo::repatchSpeculatively()
587587
return;
588588
}
589589

590-
FunctionExecutable* functionExecutable = jsDynamicCast<FunctionExecutable*>(m_executable);
590+
FunctionExecutable* functionExecutable = dynamicDowncast<FunctionExecutable>(m_executable);
591591
if (!functionExecutable) {
592592
initialize();
593593
return;
@@ -611,7 +611,7 @@ void DirectCallLinkInfo::repatchSpeculatively()
611611
void DirectCallLinkInfo::validateSpeculativeRepatchOnMainThread(VM&)
612612
{
613613
constexpr bool verbose = false;
614-
FunctionExecutable* functionExecutable = jsDynamicCast<FunctionExecutable*>(m_executable);
614+
FunctionExecutable* functionExecutable = dynamicDowncast<FunctionExecutable>(m_executable);
615615
if (!functionExecutable)
616616
return;
617617

Source/JavaScriptCore/bytecode/CallVariant.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ void CallVariant::filter(JSValue value)
6060
return;
6161
}
6262

63-
if (JSFunction* function = jsDynamicCast<JSFunction*>(value)) {
63+
if (JSFunction* function = dynamicDowncast<JSFunction>(value)) {
6464
if (function->executable() == executable())
6565
*this = CallVariant(function);
6666
else

0 commit comments

Comments
 (0)