Why doesn't this throw an exception?
SOLVED: It checks the length and returns without throwing in NEW_STRING
} else if (length > i::String::kMaxLength) { \
result = MaybeLocal<String>(); \
ASSERTION: DCHECK((isolate)->has_pending_exception())
TRACE:
ASSIGN_RETURN_ON_EXCEPTION_VALUE(..)
DCHECK((isolate)->has_pending_exception()); \
ASSIGN_RETURN_ON_EXCEPTION(..)
ASSIGN_RETURN_ON_EXCEPTION_VALUE(isolate, dst, call, MaybeHandle<T>())
MaybeHandle<String> Factory::NewStringFromUtf8(Vector, PretenureFlag)
ASSIGN_RETURN_ON_EXCEPTION(
isolate(), result,
NewRawTwoByteString(non_ascii_start + utf16_length, pretenure), String);
i::MaybeHandle<i::String> NewString(i::Factory *, v8::NewStringType, i::Vector<const char>)
return factory->NewStringFromUtf8(string);
NEW_STRING(..)
NewString(i_isolate->factory(), type, \
i::Vector<const Char>(data, length)) \
Local<String> String::NewFromUtf8(Isolate *, const char *, NewStringType, int)
NEW_STRING(isolate, String, NewFromUtf8, char, data,
static_cast<v8::NewStringType>(type), length);