MCPcopy Create free account
hub / github.com/NativeScript/android / Ctor

Method Ctor

test-app/runtime/src/main/cpp/URLImpl.cpp:85–176  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

83}
84
85void URLImpl::Ctor(const v8::FunctionCallbackInfo<v8::Value> &args) {
86 auto count = args.Length();
87 auto value = args[0];
88 auto isolate = args.GetIsolate();
89 auto context = isolate->GetCurrentContext();
90 if (count >= 1 && !value->IsString()) {
91 isolate->ThrowException(
92 v8::Exception::TypeError(v8::String::Empty(isolate)));
93 return;
94 }
95
96 url_aggregator url;
97
98 auto url_string = ArgConverter::ConvertToString(args[0].As<v8::String>());
99
100 if (count > 1) {
101 if (args[1]->IsString()) {
102 auto base_string = ArgConverter::ConvertToString(args[1].As<v8::String>());
103 std::string_view base_string_view(base_string.data(), base_string.length());
104
105 if (!can_parse(url_string, &base_string_view)) {
106 isolate->ThrowException(
107 v8::Exception::TypeError(v8::String::Empty(isolate)));
108 return;
109 }
110 auto base_url = ada::parse<ada::url_aggregator>(base_string_view, nullptr);
111
112 auto result = ada::parse<ada::url_aggregator>(url_string, &base_url.value());
113
114 if (result) {
115 url = result.value();
116 } else {
117 isolate->ThrowException(
118 v8::Exception::TypeError(v8::String::Empty(isolate)));
119 return;
120 }
121 } else if (args[1]->IsObject()) {
122 auto base_string = ArgConverter::ConvertToString(
123 args[1]->ToString(context).ToLocalChecked());
124 std::string_view base_string_view(base_string.data(), base_string.length());
125 if (!can_parse(std::string_view(url_string.data(), url_string.length()),
126 &base_string_view)) {
127 isolate->ThrowException(
128 v8::Exception::TypeError(v8::String::Empty(isolate)));
129 return;
130 }
131
132
133 auto base_url = ada::parse<ada::url_aggregator>(base_string_view, nullptr);
134
135 auto result = ada::parse<ada::url_aggregator>(url_string, &base_url.value());
136
137 if (result) {
138 url = result.value();
139 } else {
140 isolate->ThrowException(
141 v8::Exception::TypeError(v8::String::Empty(isolate)));
142 return;

Callers

nothing calls this directly

Calls 13

can_parseFunction · 0.85
IsStringMethod · 0.80
valueMethod · 0.80
ToLocalCheckedMethod · 0.80
ThisMethod · 0.80
GetReturnValueMethod · 0.80
LengthMethod · 0.45
GetIsolateMethod · 0.45
dataMethod · 0.45
lengthMethod · 0.45
ToStringMethod · 0.45
BindFinalizerMethod · 0.45

Tested by

no test coverage detected