void V8SubtleCrypto::verifyMethodCustom(const v8::FunctionCallbackInfo<v8::Value>& info) { v8::Isolate* isolate = info.GetIsolate(); ExceptionState exceptionState(ExceptionState::ExecutionContext, "verify", "SubtleCrypto", info.Holder(), isolate); // typedef (ArrayBuffer or ArrayBufferView) CryptoOperationData; // // Promise verify(Dictionary algorithm, CryptoKey key, // CryptoOperationData signature, // CryptoOperationData data); switch (info.Length()) { case 4: // Promise verify(Dictionary algorithm, CryptoKey key, ArrayBuffer signature, ArrayBuffer data); if (V8ArrayBuffer::hasInstance(info[2], isolate) && V8ArrayBuffer::hasInstance(info[3], isolate)) { verify1Method(info); return; } // Promise verify(Dictionary algorithm, CryptoKey key, ArrayBuffer signature, ArrayBufferView data); if (V8ArrayBuffer::hasInstance(info[2], isolate) && V8ArrayBufferView::hasInstance(info[3], isolate)) { verify2Method(info); return; } // Promise verify(Dictionary algorithm, CryptoKey key, ArrayBufferView signature, ArrayBuffer data); if (V8ArrayBufferView::hasInstance(info[2], isolate) && V8ArrayBuffer::hasInstance(info[3], isolate)) { verify3Method(info); return; } // Promise verify(Dictionary algorithm, CryptoKey key, ArrayBufferView signature, ArrayBufferView data); if (V8ArrayBufferView::hasInstance(info[2], isolate) && V8ArrayBufferView::hasInstance(info[3], isolate)) { verify4Method(info); return; } break; default: setArityTypeError(exceptionState, "[4]", info.Length()); exceptionState.throwIfNeeded(); return; break; } exceptionState.throwTypeError("No function was found that matched the signature provided."); exceptionState.throwIfNeeded(); }
void V8Element::animateMethodCustom(const v8::FunctionCallbackInfo<v8::Value>& info) { v8::Isolate* isolate = info.GetIsolate(); ExceptionState exceptionState(ExceptionState::ExecutionContext, "animate", "Element", info.Holder(), isolate); // AnimationPlayer animate( // (AnimationEffect or sequence<Dictionary>)? effect, // optional (double or Dictionary) timing); switch (info.Length()) { case 1: // null resolved as to AnimationEffect, as if the member were nullable: // (AnimationEffect? or sequence<Dictionary>) // instead of the *union* being nullable: // (AnimationEffect or sequence<Dictionary>)? // AnimationPlayer animate(AnimationEffect? effect); if (info[0]->IsNull()) { animate1Method(info); return; } // AnimationPlayer animate(AnimationEffect effect); if (V8AnimationEffect::hasInstance(info[0], isolate)) { animate1Method(info); return; } // [MeasureAs=ElementAnimateKeyframeListEffectNoTiming] // AnimationPlayer animate(sequence<Dictionary> effect); if (info[0]->IsArray()) { UseCounter::countIfNotPrivateScript(isolate, callingExecutionContext(isolate), UseCounter::ElementAnimateKeyframeListEffectNoTiming); animate2Method(info); return; } break; case 2: // As above, null resolved to AnimationEffect // AnimationPlayer animate(AnimationEffect? effect, Dictionary timing); if (info[0]->IsNull() && info[1]->IsObject()) { animate4Method(info); return; } // AnimationPlayer animate(AnimationEffect? effect, double timing); if (info[0]->IsNull()) { animate3Method(info); return; } // AnimationPlayer animate(AnimationEffect effect, Dictionary timing); if (V8AnimationEffect::hasInstance(info[0], isolate) && info[1]->IsObject()) { animate4Method(info); return; } // AnimationPlayer animate(AnimationEffect effect, double timing); if (V8AnimationEffect::hasInstance(info[0], isolate)) { animate3Method(info); return; } // [MeasureAs=ElementAnimateKeyframeListEffectObjectTiming] // AnimationPlayer animate(sequence<Dictionary> effect, Dictionary timing); if (info[0]->IsArray() && info[1]->IsObject()) { UseCounter::countIfNotPrivateScript(isolate, callingExecutionContext(isolate), UseCounter::ElementAnimateKeyframeListEffectObjectTiming); animate6Method(info); return; } // [MeasureAs=ElementAnimateKeyframeListEffectDoubleTiming] // AnimationPlayer animate(sequence<Dictionary> effect, double timing); if (info[0]->IsArray()) { UseCounter::countIfNotPrivateScript(isolate, callingExecutionContext(isolate), UseCounter::ElementAnimateKeyframeListEffectDoubleTiming); animate5Method(info); return; } break; default: setArityTypeError(exceptionState, "[1]", info.Length()); exceptionState.throwIfNeeded(); return; break; } exceptionState.throwTypeError("No function was found that matched the signature provided."); exceptionState.throwIfNeeded(); }