Skip to content

Commit 4bc13e0

Browse files
authored
Merge pull request #5400 from cloudflare/jasnell/inline-multiple-jsvalue-apis
2 parents b73058a + a01f781 commit 4bc13e0

File tree

2 files changed

+192
-191
lines changed

2 files changed

+192
-191
lines changed

src/workerd/jsg/jsvalue.c++

Lines changed: 4 additions & 191 deletions
Original file line numberDiff line numberDiff line change
@@ -61,14 +61,6 @@ void JsMap::delete_(Lock& js, kj::StringPtr name) {
6161
delete_(js, js.strIntern(name));
6262
}
6363

64-
void JsObject::set(Lock& js, const JsValue& name, const JsValue& value) {
65-
check(inner->Set(js.v8Context(), name.inner, value.inner));
66-
}
67-
68-
void JsObject::set(Lock& js, kj::StringPtr name, const JsValue& value) {
69-
set(js, js.strIntern(name), value);
70-
}
71-
7264
void JsObject::defineProperty(Lock& js, kj::StringPtr name, const JsValue& value) {
7365
v8::Local<v8::String> nameStr = js.strIntern(name);
7466
check(inner->DefineOwnProperty(js.v8Context(), nameStr, value));
@@ -85,35 +77,6 @@ void JsObject::setNonEnumerable(Lock& js, const JsSymbol& name, const JsValue& v
8577
js.v8Context(), name.inner, value.inner, v8::PropertyAttribute::DontEnum));
8678
}
8779

88-
JsValue JsObject::get(Lock& js, const JsValue& name) {
89-
return JsValue(check(inner->Get(js.v8Context(), name.inner)));
90-
}
91-
92-
JsValue JsObject::get(Lock& js, kj::StringPtr name) {
93-
return get(js, js.strIntern(name));
94-
}
95-
96-
bool JsObject::has(Lock& js, const JsValue& name, HasOption option) {
97-
if (option == HasOption::OWN) {
98-
KJ_ASSERT(name.inner->IsName());
99-
return check(inner->HasOwnProperty(js.v8Context(), name.inner.As<v8::Name>()));
100-
} else {
101-
return check(inner->Has(js.v8Context(), name.inner));
102-
}
103-
}
104-
105-
bool JsObject::has(Lock& js, kj::StringPtr name, HasOption option) {
106-
return has(js, js.strIntern(name), option);
107-
}
108-
109-
void JsObject::delete_(Lock& js, const JsValue& name) {
110-
check(inner->Delete(js.v8Context(), name.inner));
111-
}
112-
113-
void JsObject::delete_(Lock& js, kj::StringPtr name) {
114-
delete_(js, js.strIntern(name));
115-
}
116-
11780
void JsObject::setPrivate(Lock& js, kj::StringPtr name, const JsValue& value) {
11881
auto p = v8::Private::ForApi(js.v8Isolate, v8StrIntern(js.v8Isolate, name));
11982
check(inner->SetPrivate(js.v8Context(), p, value.inner));
@@ -297,14 +260,6 @@ JsArray::operator JsObject() const {
297260
return JsObject(inner.As<v8::Object>());
298261
}
299262

300-
int JsString::length(jsg::Lock& js) const {
301-
return inner->Length();
302-
}
303-
304-
size_t JsString::utf8Length(jsg::Lock& js) const {
305-
return inner->Utf8LengthV2(js.v8Isolate);
306-
}
307-
308263
kj::String JsString::toString(jsg::Lock& js) const {
309264
auto buf = kj::heapArray<char>(inner->Utf8LengthV2(js.v8Isolate) + 1);
310265
inner->WriteUtf8V2(js.v8Isolate, buf.begin(), buf.size(), v8::String::WriteFlags::kNullTerminate);
@@ -428,99 +383,6 @@ JsDate::operator kj::Date() const {
428383
return kj::UNIX_EPOCH + (int64_t(inner->ValueOf()) * kj::MILLISECONDS);
429384
}
430385

431-
JsObject Lock::global() {
432-
return JsObject(v8Context()->Global());
433-
}
434-
435-
JsValue Lock::undefined() {
436-
return JsValue(v8::Undefined(v8Isolate));
437-
}
438-
439-
JsValue Lock::null() {
440-
return JsValue(v8::Null(v8Isolate));
441-
}
442-
443-
JsBoolean Lock::boolean(bool val) {
444-
return JsBoolean(v8::Boolean::New(v8Isolate, val));
445-
}
446-
447-
JsNumber Lock::num(double val) {
448-
return JsNumber(v8::Number::New(v8Isolate, val));
449-
}
450-
451-
JsNumber Lock::num(float val) {
452-
return JsNumber(v8::Number::New(v8Isolate, val));
453-
}
454-
455-
JsInt32 Lock::num(int8_t val) {
456-
return JsInt32(v8::Integer::New(v8Isolate, val).As<v8::Int32>());
457-
}
458-
459-
JsInt32 Lock::num(int16_t val) {
460-
return JsInt32(v8::Integer::New(v8Isolate, val).As<v8::Int32>());
461-
}
462-
463-
JsInt32 Lock::num(int32_t val) {
464-
return JsInt32(v8::Integer::New(v8Isolate, val).As<v8::Int32>());
465-
}
466-
467-
JsBigInt Lock::bigInt(int64_t val) {
468-
return JsBigInt(v8::BigInt::New(v8Isolate, val));
469-
}
470-
471-
JsUint32 Lock::num(uint8_t val) {
472-
return JsUint32(v8::Integer::NewFromUnsigned(v8Isolate, val).As<v8::Uint32>());
473-
}
474-
475-
JsUint32 Lock::num(uint16_t val) {
476-
return JsUint32(v8::Integer::NewFromUnsigned(v8Isolate, val).As<v8::Uint32>());
477-
}
478-
479-
JsUint32 Lock::num(uint32_t val) {
480-
return JsUint32(v8::Integer::NewFromUnsigned(v8Isolate, val).As<v8::Uint32>());
481-
}
482-
483-
JsBigInt Lock::bigInt(uint64_t val) {
484-
return JsBigInt(v8::BigInt::NewFromUnsigned(v8Isolate, val));
485-
}
486-
487-
JsString Lock::str() {
488-
return JsString(v8::String::Empty(v8Isolate));
489-
}
490-
491-
JsString Lock::str(kj::ArrayPtr<const char16_t> str) {
492-
return JsString(check(v8::String::NewFromTwoByte(v8Isolate,
493-
reinterpret_cast<const uint16_t*>(str.begin()), v8::NewStringType::kNormal, str.size())));
494-
}
495-
496-
JsString Lock::str(kj::ArrayPtr<const uint16_t> str) {
497-
return JsString(check(
498-
v8::String::NewFromTwoByte(v8Isolate, str.begin(), v8::NewStringType::kNormal, str.size())));
499-
}
500-
501-
JsString Lock::str(kj::ArrayPtr<const char> str) {
502-
return JsString(check(
503-
v8::String::NewFromUtf8(v8Isolate, str.begin(), v8::NewStringType::kNormal, str.size())));
504-
}
505-
506-
JsString Lock::str(kj::ArrayPtr<const kj::byte> str) {
507-
return JsString(check(
508-
v8::String::NewFromOneByte(v8Isolate, str.begin(), v8::NewStringType::kNormal, str.size())));
509-
}
510-
511-
JsString Lock::strIntern(kj::StringPtr str) {
512-
return JsString(check(v8::String::NewFromUtf8(
513-
v8Isolate, str.begin(), v8::NewStringType::kInternalized, str.size())));
514-
}
515-
516-
JsString Lock::strExtern(kj::ArrayPtr<const char> str) {
517-
return JsString(newExternalOneByteString(*this, str));
518-
}
519-
520-
JsString Lock::strExtern(kj::ArrayPtr<const uint16_t> str) {
521-
return JsString(newExternalTwoByteString(*this, str));
522-
}
523-
524386
JsRegExp Lock::regexp(kj::StringPtr str, RegExpFlags flags, kj::Maybe<uint32_t> backtrackLimit) {
525387
KJ_IF_SOME(limit, backtrackLimit) {
526388
return JsRegExp(check(v8::RegExp::NewWithBacktrackLimit(
@@ -530,10 +392,6 @@ JsRegExp Lock::regexp(kj::StringPtr str, RegExpFlags flags, kj::Maybe<uint32_t>
530392
v8::RegExp::New(v8Context(), v8Str(v8Isolate, str), static_cast<v8::RegExp::Flags>(flags))));
531393
}
532394

533-
JsObject Lock::obj() {
534-
return JsObject(v8::Object::New(v8Isolate));
535-
}
536-
537395
JsObject Lock::obj(kj::ArrayPtr<kj::StringPtr> keys, kj::ArrayPtr<JsValue> values) {
538396
KJ_DASSERT(keys.size() == values.size());
539397
v8::LocalVector<v8::Name> keys_(v8Isolate, keys.size());
@@ -558,46 +416,6 @@ JsObject Lock::objNoProto(kj::ArrayPtr<kj::StringPtr> keys, kj::ArrayPtr<JsValue
558416
v8::Object::New(v8Isolate, v8::Null(v8Isolate), keys_.data(), values_.data(), keys.size()));
559417
}
560418

561-
JsObject Lock::objNoProto() {
562-
return JsObject(v8::Object::New(v8Isolate, v8::Null(v8Isolate), nullptr, nullptr, 0));
563-
}
564-
565-
JsMap Lock::map() {
566-
return JsMap(v8::Map::New(v8Isolate));
567-
}
568-
569-
JsValue Lock::external(void* ptr) {
570-
return JsValue(v8::External::New(v8Isolate, ptr));
571-
}
572-
573-
JsValue Lock::error(kj::StringPtr message) {
574-
return JsValue(v8::Exception::Error(v8Str(v8Isolate, message)));
575-
}
576-
577-
JsValue Lock::typeError(kj::StringPtr message) {
578-
return JsValue(v8::Exception::TypeError(v8Str(v8Isolate, message)));
579-
}
580-
581-
JsValue Lock::rangeError(kj::StringPtr message) {
582-
return JsValue(v8::Exception::RangeError(v8Str(v8Isolate, message)));
583-
}
584-
585-
BufferSource Lock::bytes(kj::Array<kj::byte> data) {
586-
return BufferSource(*this, BackingStore::from(*this, kj::mv(data)));
587-
}
588-
589-
JsSymbol Lock::symbol(kj::StringPtr str) {
590-
return JsSymbol(v8::Symbol::New(v8Isolate, v8StrIntern(v8Isolate, str)));
591-
}
592-
593-
JsSymbol Lock::symbolShared(kj::StringPtr str) {
594-
return JsSymbol(v8::Symbol::For(v8Isolate, v8StrIntern(v8Isolate, str)));
595-
}
596-
597-
JsSymbol Lock::symbolInternal(kj::StringPtr str) {
598-
return JsSymbol(v8::Symbol::ForApi(v8Isolate, v8StrIntern(v8Isolate, str)));
599-
}
600-
601419
JsArray Lock::arr(kj::ArrayPtr<JsValue> values) {
602420
v8::LocalVector<v8::Value> items(v8Isolate, values.size());
603421
for (size_t n = 0; n < values.size(); n++) {
@@ -613,15 +431,6 @@ JsArray Lock::arr(kj::ArrayPtr<JsValue> values) {
613431
JS_V8_SYMBOLS(V)
614432
#undef V
615433

616-
JsDate Lock::date(double timestamp) {
617-
return JsDate(check(v8::Date::New(v8Context(), timestamp)).As<v8::Date>());
618-
}
619-
620-
JsDate Lock::date(kj::Date date) {
621-
return JsDate(jsg::check(v8::Date::New(v8Context(), (date - kj::UNIX_EPOCH) / kj::MILLISECONDS))
622-
.As<v8::Date>());
623-
}
624-
625434
JsDate Lock::date(kj::StringPtr date) {
626435
v8::Local<v8::Value> converted = check(v8::Date::Parse(v8Context(), str(date)));
627436
KJ_REQUIRE(converted->IsDate());
@@ -772,4 +581,8 @@ uint JsFunction::hashCode() const {
772581
return kj::hashCode(obj->GetIdentityHash());
773582
}
774583

584+
BufferSource Lock::bytes(kj::Array<kj::byte> data) {
585+
return BufferSource(*this, BackingStore::from(*this, kj::mv(data)));
586+
}
587+
775588
} // namespace workerd::jsg

0 commit comments

Comments
 (0)