Index: src/api.cc |
diff --git a/src/api.cc b/src/api.cc |
index 1203b01f33dfb8d46b2c1a974d589c4d8eaccf99..fa13b3c2af6a1ca28969609bba64ee64f32407dc 100644 |
--- a/src/api.cc |
+++ b/src/api.cc |
@@ -68,54 +68,63 @@ |
namespace v8 { |
-#define LOG_API(isolate, expr) LOG(isolate, ApiEntryCall(expr)) |
- |
+#define LOG_API(isolate, counter, message) \ |
+ i::Isolate* _log_isolate = isolate; \ |
jochen (gone - plz use gerrit)
2016/05/06 09:39:54
why's that required?
|
+ RUNTIME_COUNTER(_log_isolate, counter); \ |
+ LOG(_log_isolate, ApiEntryCall(#message)) |
#define ENTER_V8(isolate) i::VMState<v8::OTHER> __state__((isolate)) |
- |
-#define PREPARE_FOR_EXECUTION_GENERIC(isolate, context, function_name, \ |
- bailout_value, HandleScopeClass, \ |
- do_callback) \ |
- if (IsExecutionTerminatingCheck(isolate)) { \ |
- return bailout_value; \ |
- } \ |
- HandleScopeClass handle_scope(isolate); \ |
- CallDepthScope call_depth_scope(isolate, context, do_callback); \ |
- LOG_API(isolate, function_name); \ |
- ENTER_V8(isolate); \ |
+#define COMPILE_MESSAGE(x) _Pragma(#x) |
+#define PRAGMA_MESSAGE(x) COMPILE_MESSAGE(message(" " #x)) |
+ |
+#define RUNTIME_COUNTER(isolate, name) \ |
+ i::RuntimeCallStats* _runtime_stats = \ |
+ isolate->counters()->runtime_call_stats(); \ |
+ i::RuntimeCallTimerScope _runtime_timer(isolate, &_runtime_stats->API_##name); |
+ |
+#define PREPARE_FOR_EXECUTION_GENERIC(isolate, context, counter_name, \ |
+ function_name, bailout_value, \ |
+ HandleScopeClass, do_callback) \ |
+ if (IsExecutionTerminatingCheck(isolate)) { \ |
+ return bailout_value; \ |
+ } \ |
+ HandleScopeClass handle_scope(isolate); \ |
+ CallDepthScope call_depth_scope(isolate, context, do_callback); \ |
+ LOG_API(isolate, counter_name, function_name); \ |
+ ENTER_V8(isolate); \ |
bool has_pending_exception = false |
- |
-#define PREPARE_FOR_EXECUTION_WITH_CONTEXT( \ |
- context, function_name, bailout_value, HandleScopeClass, do_callback) \ |
- auto isolate = context.IsEmpty() \ |
- ? i::Isolate::Current() \ |
- : reinterpret_cast<i::Isolate*>(context->GetIsolate()); \ |
- PREPARE_FOR_EXECUTION_GENERIC(isolate, context, function_name, \ |
+#define PREPARE_FOR_EXECUTION_WITH_CONTEXT(context, counter_name, \ |
+ function_name, bailout_value, \ |
+ HandleScopeClass, do_callback) \ |
+ auto isolate = context.IsEmpty() \ |
+ ? i::Isolate::Current() \ |
+ : reinterpret_cast<i::Isolate*>(context->GetIsolate()); \ |
+ PREPARE_FOR_EXECUTION_GENERIC(isolate, context, counter_name, function_name, \ |
bailout_value, HandleScopeClass, do_callback); |
+#define PREPARE_FOR_EXECUTION_WITH_ISOLATE(isolate, counter_name, \ |
+ function_name, T) \ |
+ PREPARE_FOR_EXECUTION_GENERIC(isolate, Local<Context>(), counter_name, \ |
+ function_name, MaybeLocal<T>(), \ |
+ InternalEscapableScope, false); |
-#define PREPARE_FOR_EXECUTION_WITH_ISOLATE(isolate, function_name, T) \ |
- PREPARE_FOR_EXECUTION_GENERIC(isolate, Local<Context>(), function_name, \ |
- MaybeLocal<T>(), InternalEscapableScope, \ |
- false); |
- |
- |
-#define PREPARE_FOR_EXECUTION(context, function_name, T) \ |
- PREPARE_FOR_EXECUTION_WITH_CONTEXT(context, function_name, MaybeLocal<T>(), \ |
- InternalEscapableScope, false) |
+#define PREPARE_FOR_EXECUTION(context, counter_name, function_name, T) \ |
+ PREPARE_FOR_EXECUTION_WITH_CONTEXT(context, counter_name, function_name, \ |
+ MaybeLocal<T>(), InternalEscapableScope, \ |
+ false) |
+#define PREPARE_FOR_EXECUTION_WITH_CALLBACK(context, counter_name, \ |
+ function_name, T) \ |
+ PREPARE_FOR_EXECUTION_WITH_CONTEXT(context, counter_name, function_name, \ |
+ MaybeLocal<T>(), InternalEscapableScope, \ |
+ true) |
-#define PREPARE_FOR_EXECUTION_WITH_CALLBACK(context, function_name, T) \ |
- PREPARE_FOR_EXECUTION_WITH_CONTEXT(context, function_name, MaybeLocal<T>(), \ |
- InternalEscapableScope, true) |
- |
- |
-#define PREPARE_FOR_EXECUTION_PRIMITIVE(context, function_name, T) \ |
- PREPARE_FOR_EXECUTION_WITH_CONTEXT(context, function_name, Nothing<T>(), \ |
- i::HandleScope, false) |
- |
+#define PREPARE_FOR_EXECUTION_PRIMITIVE(context, counter_name, function_name, \ |
+ T) \ |
+ PREPARE_FOR_EXECUTION_WITH_CONTEXT(context, counter_name, function_name, \ |
+ Nothing<T>(), i::HandleScope, false) |
#define EXCEPTION_BAILOUT_CHECK_SCOPED(isolate, value) \ |
do { \ |
@@ -657,7 +666,7 @@ void SetResourceConstraints(i::Isolate* isolate, |
i::Object** V8::GlobalizeReference(i::Isolate* isolate, i::Object** obj) { |
- LOG_API(isolate, "Persistent::New"); |
+ LOG_API(isolate, Persistent_New, "Persistent::New"); |
i::Handle<i::Object> result = isolate->global_handles()->Create(*obj); |
#ifdef VERIFY_HEAP |
if (i::FLAG_verify_heap) { |
@@ -1146,7 +1155,7 @@ Local<FunctionTemplate> FunctionTemplate::New(Isolate* isolate, |
// Changes to the environment cannot be captured in the snapshot. Expect no |
// function templates when the isolate is created for serialization. |
DCHECK(!i_isolate->serializer_enabled()); |
- LOG_API(i_isolate, "FunctionTemplate::New"); |
+ LOG_API(i_isolate, FunctionTemplate_New, "FunctionTemplate::New"); |
ENTER_V8(i_isolate); |
return FunctionTemplateNew(i_isolate, callback, nullptr, data, signature, |
length, false); |
@@ -1159,7 +1168,8 @@ Local<FunctionTemplate> FunctionTemplate::NewWithFastHandler( |
v8::Local<Signature> signature, int length) { |
i::Isolate* i_isolate = reinterpret_cast<i::Isolate*>(isolate); |
DCHECK(!i_isolate->serializer_enabled()); |
- LOG_API(i_isolate, "FunctionTemplate::NewWithFastHandler"); |
+ LOG_API(i_isolate, FunctionTemplate_NewWithFastHandler, |
+ "FunctionTemplate::NewWithFastHandler"); |
ENTER_V8(i_isolate); |
return FunctionTemplateNew(i_isolate, callback, fast_handler, data, signature, |
length, false); |
@@ -1343,7 +1353,7 @@ static Local<ObjectTemplate> ObjectTemplateNew( |
// Changes to the environment cannot be captured in the snapshot. Expect no |
// object templates when the isolate is created for serialization. |
DCHECK(!isolate->serializer_enabled()); |
- LOG_API(isolate, "ObjectTemplate::New"); |
+ LOG_API(isolate, ObjectTemplate_New, "ObjectTemplate::New"); |
ENTER_V8(isolate); |
i::Handle<i::Struct> struct_obj = |
isolate->factory()->NewStruct(i::OBJECT_TEMPLATE_INFO_TYPE); |
@@ -1721,7 +1731,7 @@ int UnboundScript::GetId() { |
i::Handle<i::HeapObject> obj = |
i::Handle<i::HeapObject>::cast(Utils::OpenHandle(this)); |
i::Isolate* isolate = obj->GetIsolate(); |
- LOG_API(isolate, "v8::UnboundScript::GetId"); |
+ LOG_API(isolate, v8_UnboundScript_GetId, "v8::UnboundScript::GetId"); |
i::HandleScope scope(isolate); |
i::Handle<i::SharedFunctionInfo> function_info( |
i::SharedFunctionInfo::cast(*obj)); |
@@ -1734,7 +1744,7 @@ int UnboundScript::GetLineNumber(int code_pos) { |
i::Handle<i::SharedFunctionInfo> obj = |
i::Handle<i::SharedFunctionInfo>::cast(Utils::OpenHandle(this)); |
i::Isolate* isolate = obj->GetIsolate(); |
- LOG_API(isolate, "UnboundScript::GetLineNumber"); |
+ LOG_API(isolate, UnboundScript_GetLineNumber, "UnboundScript::GetLineNumber"); |
if (obj->script()->IsScript()) { |
i::Handle<i::Script> script(i::Script::cast(obj->script())); |
return i::Script::GetLineNumber(script, code_pos); |
@@ -1748,7 +1758,7 @@ Local<Value> UnboundScript::GetScriptName() { |
i::Handle<i::SharedFunctionInfo> obj = |
i::Handle<i::SharedFunctionInfo>::cast(Utils::OpenHandle(this)); |
i::Isolate* isolate = obj->GetIsolate(); |
- LOG_API(isolate, "UnboundScript::GetName"); |
+ LOG_API(isolate, UnboundScript_GetName, "UnboundScript::GetName"); |
if (obj->script()->IsScript()) { |
i::Object* name = i::Script::cast(obj->script())->name(); |
return Utils::ToLocal(i::Handle<i::Object>(name, isolate)); |
@@ -1762,7 +1772,7 @@ Local<Value> UnboundScript::GetSourceURL() { |
i::Handle<i::SharedFunctionInfo> obj = |
i::Handle<i::SharedFunctionInfo>::cast(Utils::OpenHandle(this)); |
i::Isolate* isolate = obj->GetIsolate(); |
- LOG_API(isolate, "UnboundScript::GetSourceURL"); |
+ LOG_API(isolate, UnboundScript_GetSourceURL, "UnboundScript::GetSourceURL"); |
if (obj->script()->IsScript()) { |
i::Object* url = i::Script::cast(obj->script())->source_url(); |
return Utils::ToLocal(i::Handle<i::Object>(url, isolate)); |
@@ -1776,7 +1786,8 @@ Local<Value> UnboundScript::GetSourceMappingURL() { |
i::Handle<i::SharedFunctionInfo> obj = |
i::Handle<i::SharedFunctionInfo>::cast(Utils::OpenHandle(this)); |
i::Isolate* isolate = obj->GetIsolate(); |
- LOG_API(isolate, "UnboundScript::GetSourceMappingURL"); |
+ LOG_API(isolate, UnboundScript_GetSourceMappingURL, |
+ "UnboundScript::GetSourceMappingURL"); |
if (obj->script()->IsScript()) { |
i::Object* url = i::Script::cast(obj->script())->source_mapping_url(); |
return Utils::ToLocal(i::Handle<i::Object>(url, isolate)); |
@@ -1787,7 +1798,8 @@ Local<Value> UnboundScript::GetSourceMappingURL() { |
MaybeLocal<Value> Script::Run(Local<Context> context) { |
- PREPARE_FOR_EXECUTION_WITH_CALLBACK(context, "v8::Script::Run()", Value) |
+ PREPARE_FOR_EXECUTION_WITH_CALLBACK(context, v8_Script_Run, "v8::Script::Run", |
+ Value) |
i::AggregatingHistogramTimerScope timer(isolate->counters()->compile_lazy()); |
i::TimerEventScope<i::TimerEventExecute> timer_scope(isolate); |
TRACE_EVENT0("v8", "V8.Execute"); |
@@ -1823,8 +1835,9 @@ MaybeLocal<UnboundScript> ScriptCompiler::CompileUnboundInternal( |
Isolate* v8_isolate, Source* source, CompileOptions options, |
bool is_module) { |
i::Isolate* isolate = reinterpret_cast<i::Isolate*>(v8_isolate); |
- PREPARE_FOR_EXECUTION_WITH_ISOLATE( |
- isolate, "v8::ScriptCompiler::CompileUnbound()", UnboundScript); |
+ PREPARE_FOR_EXECUTION_WITH_ISOLATE(isolate, v8_ScriptCompiler_CompileUnbound, |
+ "v8::ScriptCompiler::CompileUnbound", |
+ UnboundScript); |
// Don't try to produce any kind of cache when the debugger is loaded. |
if (isolate->debug()->is_loaded() && |
@@ -1983,8 +1996,9 @@ MaybeLocal<Function> ScriptCompiler::CompileFunctionInContext( |
Local<Context> v8_context, Source* source, size_t arguments_count, |
Local<String> arguments[], size_t context_extension_count, |
Local<Object> context_extensions[]) { |
- PREPARE_FOR_EXECUTION( |
- v8_context, "v8::ScriptCompiler::CompileFunctionInContext()", Function); |
+ PREPARE_FOR_EXECUTION(v8_context, v8_ScriptCompiler_CompileFunctionInContext, |
+ "v8::ScriptCompiler::CompileFunctionInContext", |
+ Function); |
i::Handle<i::String> source_string; |
auto factory = isolate->factory(); |
if (arguments_count) { |
@@ -2098,7 +2112,8 @@ MaybeLocal<Script> ScriptCompiler::Compile(Local<Context> context, |
StreamedSource* v8_source, |
Local<String> full_source_string, |
const ScriptOrigin& origin) { |
- PREPARE_FOR_EXECUTION(context, "v8::ScriptCompiler::Compile()", Script); |
+ PREPARE_FOR_EXECUTION(context, v8_ScriptCompiler_Compile, |
+ "v8::ScriptCompiler::Compile", Script); |
i::StreamedSource* source = v8_source->impl(); |
i::Handle<i::String> str = Utils::OpenHandle(*(full_source_string)); |
i::Handle<i::Script> script = isolate->factory()->NewScript(str); |
@@ -2297,7 +2312,8 @@ MaybeLocal<Value> v8::TryCatch::StackTrace(Local<Context> context) const { |
if (!HasCaught()) return v8::Local<Value>(); |
i::Object* raw_obj = reinterpret_cast<i::Object*>(exception_); |
if (!raw_obj->IsJSObject()) return v8::Local<Value>(); |
- PREPARE_FOR_EXECUTION(context, "v8::TryCatch::StackTrace", Value); |
+ PREPARE_FOR_EXECUTION(context, v8_TryCatch_StackTrace, |
+ "v8::TryCatch::StackTrace", Value); |
i::Handle<i::JSObject> obj(i::JSObject::cast(raw_obj), isolate_); |
i::Handle<i::String> name = isolate->factory()->stack_string(); |
Maybe<bool> maybe = i::JSReceiver::HasProperty(obj, name); |
@@ -2399,7 +2415,8 @@ v8::Local<v8::StackTrace> Message::GetStackTrace() const { |
Maybe<int> Message::GetLineNumber(Local<Context> context) const { |
- PREPARE_FOR_EXECUTION_PRIMITIVE(context, "v8::Message::GetLineNumber()", int); |
+ PREPARE_FOR_EXECUTION_PRIMITIVE(context, v8_Message_GetLineNumber, |
+ "v8::Message::GetLineNumber", int); |
i::Handle<i::JSFunction> fun = isolate->message_get_line_number(); |
i::Handle<i::Object> undefined = isolate->factory()->undefined_value(); |
i::Handle<i::Object> args[] = {Utils::OpenHandle(this)}; |
@@ -2431,8 +2448,8 @@ int Message::GetEndPosition() const { |
Maybe<int> Message::GetStartColumn(Local<Context> context) const { |
- PREPARE_FOR_EXECUTION_PRIMITIVE(context, "v8::Message::GetStartColumn()", |
- int); |
+ PREPARE_FOR_EXECUTION_PRIMITIVE(context, v8_Message_GetStartColumn, |
+ "v8::Message::GetStartColumn", int); |
i::Handle<i::JSFunction> fun = isolate->message_get_column_number(); |
i::Handle<i::Object> undefined = isolate->factory()->undefined_value(); |
i::Handle<i::Object> args[] = {Utils::OpenHandle(this)}; |
@@ -2454,7 +2471,8 @@ int Message::GetStartColumn() const { |
Maybe<int> Message::GetEndColumn(Local<Context> context) const { |
auto self = Utils::OpenHandle(this); |
- PREPARE_FOR_EXECUTION_PRIMITIVE(context, "v8::Message::GetEndColumn()", int); |
+ PREPARE_FOR_EXECUTION_PRIMITIVE(context, v8_Message_GetEndColumn, |
+ "v8::Message::GetEndColumn", int); |
i::Handle<i::JSFunction> fun = isolate->message_get_column_number(); |
i::Handle<i::Object> undefined = isolate->factory()->undefined_value(); |
i::Handle<i::Object> args[] = {self}; |
@@ -2498,7 +2516,8 @@ bool Message::IsOpaque() const { |
MaybeLocal<String> Message::GetSourceLine(Local<Context> context) const { |
- PREPARE_FOR_EXECUTION(context, "v8::Message::GetSourceLine()", String); |
+ PREPARE_FOR_EXECUTION(context, v8_Message_GetSourceLine, |
+ "v8::Message::GetSourceLine", String); |
i::Handle<i::JSFunction> fun = isolate->message_get_source_line(); |
i::Handle<i::Object> undefined = isolate->factory()->undefined_value(); |
i::Handle<i::Object> args[] = {Utils::OpenHandle(this)}; |
@@ -2743,7 +2762,7 @@ bool NativeWeakMap::Delete(Local<Value> v8_key) { |
MaybeLocal<Value> JSON::Parse(Isolate* v8_isolate, Local<String> json_string) { |
auto isolate = reinterpret_cast<i::Isolate*>(v8_isolate); |
- PREPARE_FOR_EXECUTION_WITH_ISOLATE(isolate, "JSON::Parse", Value); |
+ PREPARE_FOR_EXECUTION_WITH_ISOLATE(isolate, JSON_Parse, "JSON::Parse", Value); |
i::Handle<i::String> string = Utils::OpenHandle(*json_string); |
i::Handle<i::String> source = i::String::Flatten(string); |
auto maybe = source->IsSeqOneByteString() |
@@ -2757,7 +2776,7 @@ MaybeLocal<Value> JSON::Parse(Isolate* v8_isolate, Local<String> json_string) { |
MaybeLocal<Value> JSON::Parse(Local<Context> context, |
Local<String> json_string) { |
- PREPARE_FOR_EXECUTION(context, "JSON::Parse", Value); |
+ PREPARE_FOR_EXECUTION(context, JSON_Parse, "JSON::Parse", Value); |
i::Handle<i::String> string = Utils::OpenHandle(*json_string); |
i::Handle<i::String> source = i::String::Flatten(string); |
auto maybe = source->IsSeqOneByteString() |
@@ -2775,7 +2794,7 @@ Local<Value> JSON::Parse(Local<String> json_string) { |
MaybeLocal<String> JSON::Stringify(Local<Context> context, |
Local<Object> json_object) { |
- PREPARE_FOR_EXECUTION(context, "JSON::Stringify", String); |
+ PREPARE_FOR_EXECUTION(context, JSON_Stringify, "JSON::Stringify", String); |
i::Handle<i::Object> object = Utils::OpenHandle(*json_object); |
i::Handle<i::Object> maybe; |
has_pending_exception = |
@@ -3004,7 +3023,7 @@ bool Value::IsPromise() const { |
MaybeLocal<String> Value::ToString(Local<Context> context) const { |
auto obj = Utils::OpenHandle(this); |
if (obj->IsString()) return ToApiHandle<String>(obj); |
- PREPARE_FOR_EXECUTION(context, "ToString", String); |
+ PREPARE_FOR_EXECUTION(context, ToString, "ToString", String); |
Local<String> result; |
has_pending_exception = |
!ToLocal<String>(i::Object::ToString(isolate, obj), &result); |
@@ -3021,7 +3040,7 @@ Local<String> Value::ToString(Isolate* isolate) const { |
MaybeLocal<String> Value::ToDetailString(Local<Context> context) const { |
i::Handle<i::Object> obj = Utils::OpenHandle(this); |
if (obj->IsString()) return ToApiHandle<String>(obj); |
- PREPARE_FOR_EXECUTION(context, "ToDetailString", String); |
+ PREPARE_FOR_EXECUTION(context, ToDetailString, "ToDetailString", String); |
Local<String> result; |
i::Handle<i::Object> args[] = {obj}; |
has_pending_exception = !ToLocal<String>( |
@@ -3043,7 +3062,7 @@ Local<String> Value::ToDetailString(Isolate* isolate) const { |
MaybeLocal<Object> Value::ToObject(Local<Context> context) const { |
auto obj = Utils::OpenHandle(this); |
if (obj->IsJSReceiver()) return ToApiHandle<Object>(obj); |
- PREPARE_FOR_EXECUTION(context, "ToObject", Object); |
+ PREPARE_FOR_EXECUTION(context, ToObject, "ToObject", Object); |
Local<Object> result; |
has_pending_exception = |
!ToLocal<Object>(i::Object::ToObject(isolate, obj), &result); |
@@ -3074,7 +3093,7 @@ Local<Boolean> Value::ToBoolean(Isolate* v8_isolate) const { |
MaybeLocal<Number> Value::ToNumber(Local<Context> context) const { |
auto obj = Utils::OpenHandle(this); |
if (obj->IsNumber()) return ToApiHandle<Number>(obj); |
- PREPARE_FOR_EXECUTION(context, "ToNumber", Number); |
+ PREPARE_FOR_EXECUTION(context, ToNumber, "ToNumber", Number); |
Local<Number> result; |
has_pending_exception = !ToLocal<Number>(i::Object::ToNumber(obj), &result); |
RETURN_ON_FAILED_EXECUTION(Number); |
@@ -3090,7 +3109,7 @@ Local<Number> Value::ToNumber(Isolate* isolate) const { |
MaybeLocal<Integer> Value::ToInteger(Local<Context> context) const { |
auto obj = Utils::OpenHandle(this); |
if (obj->IsSmi()) return ToApiHandle<Integer>(obj); |
- PREPARE_FOR_EXECUTION(context, "ToInteger", Integer); |
+ PREPARE_FOR_EXECUTION(context, ToInteger, "ToInteger", Integer); |
Local<Integer> result; |
has_pending_exception = |
!ToLocal<Integer>(i::Object::ToInteger(isolate, obj), &result); |
@@ -3108,7 +3127,7 @@ MaybeLocal<Int32> Value::ToInt32(Local<Context> context) const { |
auto obj = Utils::OpenHandle(this); |
if (obj->IsSmi()) return ToApiHandle<Int32>(obj); |
Local<Int32> result; |
- PREPARE_FOR_EXECUTION(context, "ToInt32", Int32); |
+ PREPARE_FOR_EXECUTION(context, ToInt32, "ToInt32", Int32); |
has_pending_exception = |
!ToLocal<Int32>(i::Object::ToInt32(isolate, obj), &result); |
RETURN_ON_FAILED_EXECUTION(Int32); |
@@ -3125,7 +3144,7 @@ MaybeLocal<Uint32> Value::ToUint32(Local<Context> context) const { |
auto obj = Utils::OpenHandle(this); |
if (obj->IsSmi()) return ToApiHandle<Uint32>(obj); |
Local<Uint32> result; |
- PREPARE_FOR_EXECUTION(context, "ToUint32", Uint32); |
+ PREPARE_FOR_EXECUTION(context, ToUint32, "ToUint32", Uint32); |
has_pending_exception = |
!ToLocal<Uint32>(i::Object::ToUint32(isolate, obj), &result); |
RETURN_ON_FAILED_EXECUTION(Uint32); |
@@ -3140,62 +3159,55 @@ Local<Uint32> Value::ToUint32(Isolate* isolate) const { |
void i::Internals::CheckInitializedImpl(v8::Isolate* external_isolate) { |
i::Isolate* isolate = reinterpret_cast<i::Isolate*>(external_isolate); |
- Utils::ApiCheck(isolate != NULL && |
- !isolate->IsDead(), |
- "v8::internal::Internals::CheckInitialized()", |
+ Utils::ApiCheck(isolate != NULL && !isolate->IsDead(), |
+ "v8::internal::Internals::CheckInitialized", |
"Isolate is not initialized or V8 has died"); |
} |
void External::CheckCast(v8::Value* that) { |
- Utils::ApiCheck(Utils::OpenHandle(that)->IsExternal(), |
- "v8::External::Cast()", |
+ Utils::ApiCheck(Utils::OpenHandle(that)->IsExternal(), "v8::External::Cast", |
"Could not convert to external"); |
} |
void v8::Object::CheckCast(Value* that) { |
i::Handle<i::Object> obj = Utils::OpenHandle(that); |
- Utils::ApiCheck(obj->IsJSReceiver(), "v8::Object::Cast()", |
+ Utils::ApiCheck(obj->IsJSReceiver(), "v8::Object::Cast", |
"Could not convert to object"); |
} |
void v8::Function::CheckCast(Value* that) { |
i::Handle<i::Object> obj = Utils::OpenHandle(that); |
- Utils::ApiCheck(obj->IsCallable(), "v8::Function::Cast()", |
+ Utils::ApiCheck(obj->IsCallable(), "v8::Function::Cast", |
"Could not convert to function"); |
} |
void v8::Boolean::CheckCast(v8::Value* that) { |
i::Handle<i::Object> obj = Utils::OpenHandle(that); |
- Utils::ApiCheck(obj->IsBoolean(), |
- "v8::Boolean::Cast()", |
+ Utils::ApiCheck(obj->IsBoolean(), "v8::Boolean::Cast", |
"Could not convert to boolean"); |
} |
void v8::Name::CheckCast(v8::Value* that) { |
i::Handle<i::Object> obj = Utils::OpenHandle(that); |
- Utils::ApiCheck(obj->IsName(), |
- "v8::Name::Cast()", |
- "Could not convert to name"); |
+ Utils::ApiCheck(obj->IsName(), "v8::Name::Cast", "Could not convert to name"); |
} |
void v8::String::CheckCast(v8::Value* that) { |
i::Handle<i::Object> obj = Utils::OpenHandle(that); |
- Utils::ApiCheck(obj->IsString(), |
- "v8::String::Cast()", |
+ Utils::ApiCheck(obj->IsString(), "v8::String::Cast", |
"Could not convert to string"); |
} |
void v8::Symbol::CheckCast(v8::Value* that) { |
i::Handle<i::Object> obj = Utils::OpenHandle(that); |
- Utils::ApiCheck(obj->IsSymbol(), |
- "v8::Symbol::Cast()", |
+ Utils::ApiCheck(obj->IsSymbol(), "v8::Symbol::Cast", |
"Could not convert to symbol"); |
} |
@@ -3210,62 +3222,56 @@ void v8::Number::CheckCast(v8::Value* that) { |
void v8::Integer::CheckCast(v8::Value* that) { |
i::Handle<i::Object> obj = Utils::OpenHandle(that); |
- Utils::ApiCheck(obj->IsNumber(), |
- "v8::Integer::Cast()", |
+ Utils::ApiCheck(obj->IsNumber(), "v8::Integer::Cast", |
"Could not convert to number"); |
} |
void v8::Int32::CheckCast(v8::Value* that) { |
- Utils::ApiCheck(that->IsInt32(), "v8::Int32::Cast()", |
+ Utils::ApiCheck(that->IsInt32(), "v8::Int32::Cast", |
"Could not convert to 32-bit signed integer"); |
} |
void v8::Uint32::CheckCast(v8::Value* that) { |
- Utils::ApiCheck(that->IsUint32(), "v8::Uint32::Cast()", |
+ Utils::ApiCheck(that->IsUint32(), "v8::Uint32::Cast", |
"Could not convert to 32-bit unsigned integer"); |
} |
void v8::Array::CheckCast(Value* that) { |
i::Handle<i::Object> obj = Utils::OpenHandle(that); |
- Utils::ApiCheck(obj->IsJSArray(), |
- "v8::Array::Cast()", |
+ Utils::ApiCheck(obj->IsJSArray(), "v8::Array::Cast", |
"Could not convert to array"); |
} |
void v8::Map::CheckCast(Value* that) { |
i::Handle<i::Object> obj = Utils::OpenHandle(that); |
- Utils::ApiCheck(obj->IsJSMap(), "v8::Map::Cast()", |
- "Could not convert to Map"); |
+ Utils::ApiCheck(obj->IsJSMap(), "v8::Map::Cast", "Could not convert to Map"); |
} |
void v8::Set::CheckCast(Value* that) { |
i::Handle<i::Object> obj = Utils::OpenHandle(that); |
- Utils::ApiCheck(obj->IsJSSet(), "v8::Set::Cast()", |
- "Could not convert to Set"); |
+ Utils::ApiCheck(obj->IsJSSet(), "v8_Set_Cast", "Could not convert to Set"); |
} |
void v8::Promise::CheckCast(Value* that) { |
- Utils::ApiCheck(that->IsPromise(), |
- "v8::Promise::Cast()", |
+ Utils::ApiCheck(that->IsPromise(), "v8::Promise::Cast", |
"Could not convert to promise"); |
} |
void v8::Promise::Resolver::CheckCast(Value* that) { |
- Utils::ApiCheck(that->IsPromise(), |
- "v8::Promise::Resolver::Cast()", |
+ Utils::ApiCheck(that->IsPromise(), "v8::Promise::Resolver::Cast", |
"Could not convert to promise resolver"); |
} |
void v8::Proxy::CheckCast(Value* that) { |
- Utils::ApiCheck(that->IsProxy(), "v8::Proxy::Cast()", |
+ Utils::ApiCheck(that->IsProxy(), "v8::Proxy::Cast", |
"Could not convert to proxy"); |
} |
@@ -3402,7 +3408,7 @@ bool Value::BooleanValue() const { |
Maybe<double> Value::NumberValue(Local<Context> context) const { |
auto obj = Utils::OpenHandle(this); |
if (obj->IsNumber()) return Just(obj->Number()); |
- PREPARE_FOR_EXECUTION_PRIMITIVE(context, "NumberValue", double); |
+ PREPARE_FOR_EXECUTION_PRIMITIVE(context, NumberValue, "NumberValue", double); |
i::Handle<i::Object> num; |
has_pending_exception = !i::Object::ToNumber(obj).ToHandle(&num); |
RETURN_ON_FAILED_EXECUTION_PRIMITIVE(double); |
@@ -3423,7 +3429,8 @@ Maybe<int64_t> Value::IntegerValue(Local<Context> context) const { |
if (obj->IsNumber()) { |
return Just(NumberToInt64(*obj)); |
} |
- PREPARE_FOR_EXECUTION_PRIMITIVE(context, "IntegerValue", int64_t); |
+ PREPARE_FOR_EXECUTION_PRIMITIVE(context, IntegerValue, "IntegerValue", |
+ int64_t); |
i::Handle<i::Object> num; |
has_pending_exception = !i::Object::ToInteger(isolate, obj).ToHandle(&num); |
RETURN_ON_FAILED_EXECUTION_PRIMITIVE(int64_t); |
@@ -3447,7 +3454,7 @@ int64_t Value::IntegerValue() const { |
Maybe<int32_t> Value::Int32Value(Local<Context> context) const { |
auto obj = Utils::OpenHandle(this); |
if (obj->IsNumber()) return Just(NumberToInt32(*obj)); |
- PREPARE_FOR_EXECUTION_PRIMITIVE(context, "Int32Value", int32_t); |
+ PREPARE_FOR_EXECUTION_PRIMITIVE(context, Int32Value, "Int32Value", int32_t); |
i::Handle<i::Object> num; |
has_pending_exception = !i::Object::ToInt32(isolate, obj).ToHandle(&num); |
RETURN_ON_FAILED_EXECUTION_PRIMITIVE(int32_t); |
@@ -3466,7 +3473,8 @@ int32_t Value::Int32Value() const { |
Maybe<uint32_t> Value::Uint32Value(Local<Context> context) const { |
auto obj = Utils::OpenHandle(this); |
if (obj->IsNumber()) return Just(NumberToUint32(*obj)); |
- PREPARE_FOR_EXECUTION_PRIMITIVE(context, "Uint32Value", uint32_t); |
+ PREPARE_FOR_EXECUTION_PRIMITIVE(context, Uint32Value, "Uint32Value", |
+ uint32_t); |
i::Handle<i::Object> num; |
has_pending_exception = !i::Object::ToUint32(isolate, obj).ToHandle(&num); |
RETURN_ON_FAILED_EXECUTION_PRIMITIVE(uint32_t); |
@@ -3488,7 +3496,7 @@ MaybeLocal<Uint32> Value::ToArrayIndex(Local<Context> context) const { |
if (i::Smi::cast(*self)->value() >= 0) return Utils::Uint32ToLocal(self); |
return Local<Uint32>(); |
} |
- PREPARE_FOR_EXECUTION(context, "ToArrayIndex", Uint32); |
+ PREPARE_FOR_EXECUTION(context, ToArrayIndex, "ToArrayIndex", Uint32); |
i::Handle<i::Object> string_obj; |
has_pending_exception = |
!i::Object::ToString(isolate, self).ToHandle(&string_obj); |
@@ -3557,7 +3565,8 @@ bool Value::SameValue(Local<Value> that) const { |
Maybe<bool> v8::Object::Set(v8::Local<v8::Context> context, |
v8::Local<Value> key, v8::Local<Value> value) { |
- PREPARE_FOR_EXECUTION_PRIMITIVE(context, "v8::Object::Set()", bool); |
+ PREPARE_FOR_EXECUTION_PRIMITIVE(context, v8_Object_Set, "v8::Object::Set", |
+ bool); |
auto self = Utils::OpenHandle(this); |
auto key_obj = Utils::OpenHandle(*key); |
auto value_obj = Utils::OpenHandle(*value); |
@@ -3577,7 +3586,8 @@ bool v8::Object::Set(v8::Local<Value> key, v8::Local<Value> value) { |
Maybe<bool> v8::Object::Set(v8::Local<v8::Context> context, uint32_t index, |
v8::Local<Value> value) { |
- PREPARE_FOR_EXECUTION_PRIMITIVE(context, "v8::Object::Set()", bool); |
+ PREPARE_FOR_EXECUTION_PRIMITIVE(context, v8_Object_Set, "v8::Object::Set", |
+ bool); |
auto self = Utils::OpenHandle(this); |
auto value_obj = Utils::OpenHandle(*value); |
has_pending_exception = i::Object::SetElement(isolate, self, index, value_obj, |
@@ -3596,8 +3606,8 @@ bool v8::Object::Set(uint32_t index, v8::Local<Value> value) { |
Maybe<bool> v8::Object::CreateDataProperty(v8::Local<v8::Context> context, |
v8::Local<Name> key, |
v8::Local<Value> value) { |
- PREPARE_FOR_EXECUTION_PRIMITIVE(context, "v8::Object::CreateDataProperty()", |
- bool); |
+ PREPARE_FOR_EXECUTION_PRIMITIVE(context, v8_Object_CreateDataProperty, |
+ "v8::Object::CreateDataProperty", bool); |
i::Handle<i::JSReceiver> self = Utils::OpenHandle(this); |
i::Handle<i::Name> key_obj = Utils::OpenHandle(*key); |
i::Handle<i::Object> value_obj = Utils::OpenHandle(*value); |
@@ -3615,8 +3625,8 @@ Maybe<bool> v8::Object::CreateDataProperty(v8::Local<v8::Context> context, |
Maybe<bool> v8::Object::CreateDataProperty(v8::Local<v8::Context> context, |
uint32_t index, |
v8::Local<Value> value) { |
- PREPARE_FOR_EXECUTION_PRIMITIVE(context, "v8::Object::CreateDataProperty()", |
- bool); |
+ PREPARE_FOR_EXECUTION_PRIMITIVE(context, v8_Object_CreateDataProperty, |
+ "v8::Object::CreateDataProperty", bool); |
i::Handle<i::JSReceiver> self = Utils::OpenHandle(this); |
i::Handle<i::Object> value_obj = Utils::OpenHandle(*value); |
@@ -3633,8 +3643,8 @@ Maybe<bool> v8::Object::DefineOwnProperty(v8::Local<v8::Context> context, |
v8::Local<Name> key, |
v8::Local<Value> value, |
v8::PropertyAttribute attributes) { |
- PREPARE_FOR_EXECUTION_PRIMITIVE(context, "v8::Object::DefineOwnProperty()", |
- bool); |
+ PREPARE_FOR_EXECUTION_PRIMITIVE(context, v8_Object_DefineOwnProperty, |
+ "v8::Object::DefineOwnProperty", bool); |
i::Handle<i::JSReceiver> self = Utils::OpenHandle(this); |
i::Handle<i::Name> key_obj = Utils::OpenHandle(*key); |
i::Handle<i::Object> value_obj = Utils::OpenHandle(*value); |
@@ -3677,7 +3687,8 @@ static i::MaybeHandle<i::Object> DefineObjectProperty( |
Maybe<bool> v8::Object::ForceSet(v8::Local<v8::Context> context, |
v8::Local<Value> key, v8::Local<Value> value, |
v8::PropertyAttribute attribs) { |
- PREPARE_FOR_EXECUTION_PRIMITIVE(context, "v8::Object::ForceSet()", bool); |
+ PREPARE_FOR_EXECUTION_PRIMITIVE(context, v8_Object_ForceSet, |
+ "v8::Object::ForceSet", bool); |
auto self = i::Handle<i::JSObject>::cast(Utils::OpenHandle(this)); |
auto key_obj = Utils::OpenHandle(*key); |
auto value_obj = Utils::OpenHandle(*value); |
@@ -3693,7 +3704,7 @@ Maybe<bool> v8::Object::ForceSet(v8::Local<v8::Context> context, |
bool v8::Object::ForceSet(v8::Local<Value> key, v8::Local<Value> value, |
v8::PropertyAttribute attribs) { |
i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate(); |
- PREPARE_FOR_EXECUTION_GENERIC(isolate, Local<Context>(), |
+ PREPARE_FOR_EXECUTION_GENERIC(isolate, Local<Context>(), v8_Object_ForceSet, |
"v8::Object::ForceSet", false, i::HandleScope, |
false); |
i::Handle<i::JSObject> self = |
@@ -3711,7 +3722,8 @@ bool v8::Object::ForceSet(v8::Local<Value> key, v8::Local<Value> value, |
Maybe<bool> v8::Object::SetPrivate(Local<Context> context, Local<Private> key, |
Local<Value> value) { |
- PREPARE_FOR_EXECUTION_PRIMITIVE(context, "v8::Object::SetPrivate()", bool); |
+ PREPARE_FOR_EXECUTION_PRIMITIVE(context, v8_Object_SetPrivate, |
+ "v8::Object::SetPrivate", bool); |
auto self = Utils::OpenHandle(this); |
auto key_obj = Utils::OpenHandle(reinterpret_cast<Name*>(*key)); |
auto value_obj = Utils::OpenHandle(*value); |
@@ -3737,7 +3749,7 @@ Maybe<bool> v8::Object::SetPrivate(Local<Context> context, Local<Private> key, |
MaybeLocal<Value> v8::Object::Get(Local<v8::Context> context, |
Local<Value> key) { |
- PREPARE_FOR_EXECUTION(context, "v8::Object::Get()", Value); |
+ PREPARE_FOR_EXECUTION(context, v8_Object_Get, "v8::Object::Get", Value); |
auto self = Utils::OpenHandle(this); |
auto key_obj = Utils::OpenHandle(*key); |
i::Handle<i::Object> result; |
@@ -3755,7 +3767,7 @@ Local<Value> v8::Object::Get(v8::Local<Value> key) { |
MaybeLocal<Value> v8::Object::Get(Local<Context> context, uint32_t index) { |
- PREPARE_FOR_EXECUTION(context, "v8::Object::Get()", Value); |
+ PREPARE_FOR_EXECUTION(context, v8_Object_Get, "v8::Object::Get", Value); |
auto self = Utils::OpenHandle(this); |
i::Handle<i::Object> result; |
has_pending_exception = |
@@ -3779,8 +3791,9 @@ MaybeLocal<Value> v8::Object::GetPrivate(Local<Context> context, |
Maybe<PropertyAttribute> v8::Object::GetPropertyAttributes( |
Local<Context> context, Local<Value> key) { |
- PREPARE_FOR_EXECUTION_PRIMITIVE( |
- context, "v8::Object::GetPropertyAttributes()", PropertyAttribute); |
+ PREPARE_FOR_EXECUTION_PRIMITIVE(context, v8_Object_GetPropertyAttributes, |
+ "v8::Object::GetPropertyAttributes", |
+ PropertyAttribute); |
auto self = Utils::OpenHandle(this); |
auto key_obj = Utils::OpenHandle(*key); |
if (!key_obj->IsName()) { |
@@ -3808,8 +3821,8 @@ PropertyAttribute v8::Object::GetPropertyAttributes(v8::Local<Value> key) { |
MaybeLocal<Value> v8::Object::GetOwnPropertyDescriptor(Local<Context> context, |
Local<String> key) { |
- PREPARE_FOR_EXECUTION(context, "v8::Object::GetOwnPropertyDescriptor()", |
- Value); |
+ PREPARE_FOR_EXECUTION(context, v8_Object_GetOwnPropertyDescriptor, |
+ "v8::Object::GetOwnPropertyDescriptor", Value); |
i::Handle<i::JSReceiver> obj = Utils::OpenHandle(this); |
i::Handle<i::String> key_name = Utils::OpenHandle(*key); |
@@ -3841,7 +3854,8 @@ Local<Value> v8::Object::GetPrototype() { |
Maybe<bool> v8::Object::SetPrototype(Local<Context> context, |
Local<Value> value) { |
- PREPARE_FOR_EXECUTION_PRIMITIVE(context, "v8::Object::SetPrototype()", bool); |
+ PREPARE_FOR_EXECUTION_PRIMITIVE(context, v8_Object_SetPrototype, |
+ "v8::Object::SetPrototype", bool); |
auto self = Utils::OpenHandle(this); |
auto value_obj = Utils::OpenHandle(*value); |
// We do not allow exceptions thrown while setting the prototype |
@@ -3879,7 +3893,8 @@ Local<Object> v8::Object::FindInstanceInPrototypeChain( |
MaybeLocal<Array> v8::Object::GetPropertyNames(Local<Context> context) { |
- PREPARE_FOR_EXECUTION(context, "v8::Object::GetPropertyNames()", Array); |
+ PREPARE_FOR_EXECUTION(context, v8_Object_GetPropertyNames, |
+ "v8::Object::GetPropertyNames", Array); |
auto self = Utils::OpenHandle(this); |
i::Handle<i::FixedArray> value; |
has_pending_exception = |
@@ -3901,7 +3916,8 @@ Local<Array> v8::Object::GetPropertyNames() { |
MaybeLocal<Array> v8::Object::GetOwnPropertyNames(Local<Context> context) { |
- PREPARE_FOR_EXECUTION(context, "v8::Object::GetOwnPropertyNames()", Array); |
+ PREPARE_FOR_EXECUTION(context, v8_Object_GetOwnPropertyNames, |
+ "v8::Object::GetOwnPropertyNames", Array); |
auto self = Utils::OpenHandle(this); |
i::Handle<i::FixedArray> value; |
has_pending_exception = |
@@ -3923,7 +3939,8 @@ Local<Array> v8::Object::GetOwnPropertyNames() { |
MaybeLocal<String> v8::Object::ObjectProtoToString(Local<Context> context) { |
- PREPARE_FOR_EXECUTION(context, "v8::Object::ObjectProtoToString", String); |
+ PREPARE_FOR_EXECUTION(context, v8_Object_ObjectProtoToString, |
+ "v8::Object::ObjectProtoToString", String); |
auto obj = Utils::OpenHandle(this); |
Local<String> result; |
has_pending_exception = |
@@ -3947,8 +3964,8 @@ Local<String> v8::Object::GetConstructorName() { |
Maybe<bool> v8::Object::SetIntegrityLevel(Local<Context> context, |
IntegrityLevel level) { |
- PREPARE_FOR_EXECUTION_PRIMITIVE(context, "v8::Object::SetIntegrityLevel()", |
- bool); |
+ PREPARE_FOR_EXECUTION_PRIMITIVE(context, v8_Object_SetIntegrityLevel, |
+ "v8::Object::SetIntegrityLevel", bool); |
auto self = Utils::OpenHandle(this); |
i::JSReceiver::IntegrityLevel i_level = |
level == IntegrityLevel::kFrozen ? i::FROZEN : i::SEALED; |
@@ -3960,7 +3977,8 @@ Maybe<bool> v8::Object::SetIntegrityLevel(Local<Context> context, |
} |
Maybe<bool> v8::Object::Delete(Local<Context> context, Local<Value> key) { |
- PREPARE_FOR_EXECUTION_PRIMITIVE(context, "v8::Object::Delete()", bool); |
+ PREPARE_FOR_EXECUTION_PRIMITIVE(context, v8_Object_Delete, |
+ "v8::Object::Delete", bool); |
auto self = Utils::OpenHandle(this); |
auto key_obj = Utils::OpenHandle(*key); |
Maybe<bool> result = |
@@ -3984,7 +4002,8 @@ Maybe<bool> v8::Object::DeletePrivate(Local<Context> context, |
Maybe<bool> v8::Object::Has(Local<Context> context, Local<Value> key) { |
- PREPARE_FOR_EXECUTION_PRIMITIVE(context, "v8::Object::Get()", bool); |
+ PREPARE_FOR_EXECUTION_PRIMITIVE(context, v8_Object_Get, "v8::Object::Get", |
+ bool); |
auto self = Utils::OpenHandle(this); |
auto key_obj = Utils::OpenHandle(*key); |
Maybe<bool> maybe = Nothing<bool>(); |
@@ -4017,8 +4036,8 @@ Maybe<bool> v8::Object::HasPrivate(Local<Context> context, Local<Private> key) { |
Maybe<bool> v8::Object::Delete(Local<Context> context, uint32_t index) { |
- PREPARE_FOR_EXECUTION_PRIMITIVE(context, "v8::Object::DeleteProperty()", |
- bool); |
+ PREPARE_FOR_EXECUTION_PRIMITIVE(context, v8_Object_DeleteProperty, |
+ "v8::Object::DeleteProperty", bool); |
auto self = Utils::OpenHandle(this); |
Maybe<bool> result = i::JSReceiver::DeleteElement(self, index); |
has_pending_exception = result.IsNothing(); |
@@ -4034,7 +4053,8 @@ bool v8::Object::Delete(uint32_t index) { |
Maybe<bool> v8::Object::Has(Local<Context> context, uint32_t index) { |
- PREPARE_FOR_EXECUTION_PRIMITIVE(context, "v8::Object::Get()", bool); |
+ PREPARE_FOR_EXECUTION_PRIMITIVE(context, v8_Object_Get, "v8::Object::Get", |
+ bool); |
auto self = Utils::OpenHandle(this); |
auto maybe = i::JSReceiver::HasElement(self, index); |
has_pending_exception = maybe.IsNothing(); |
@@ -4055,7 +4075,8 @@ static Maybe<bool> ObjectSetAccessor(Local<Context> context, Object* self, |
Setter setter, Data data, |
AccessControl settings, |
PropertyAttribute attributes) { |
- PREPARE_FOR_EXECUTION_PRIMITIVE(context, "v8::Object::SetAccessor()", bool); |
+ PREPARE_FOR_EXECUTION_PRIMITIVE(context, v8_Object_SetAccessor, |
+ "v8::Object::SetAccessor", bool); |
if (!Utils::OpenHandle(self)->IsJSObject()) return Just(false); |
i::Handle<i::JSObject> obj = |
i::Handle<i::JSObject>::cast(Utils::OpenHandle(self)); |
@@ -4127,8 +4148,8 @@ void Object::SetAccessorProperty(Local<Name> name, Local<Function> getter, |
Maybe<bool> v8::Object::HasOwnProperty(Local<Context> context, |
Local<Name> key) { |
- PREPARE_FOR_EXECUTION_PRIMITIVE(context, "v8::Object::HasOwnProperty()", |
- bool); |
+ PREPARE_FOR_EXECUTION_PRIMITIVE(context, v8_Object_HasOwnProperty, |
+ "v8::Object::HasOwnProperty", bool); |
auto self = Utils::OpenHandle(this); |
auto key_val = Utils::OpenHandle(*key); |
auto result = i::JSReceiver::HasOwnProperty(self, key_val); |
@@ -4146,8 +4167,8 @@ bool v8::Object::HasOwnProperty(Local<String> key) { |
Maybe<bool> v8::Object::HasRealNamedProperty(Local<Context> context, |
Local<Name> key) { |
- PREPARE_FOR_EXECUTION_PRIMITIVE(context, "v8::Object::HasRealNamedProperty()", |
- bool); |
+ PREPARE_FOR_EXECUTION_PRIMITIVE(context, v8_Object_HasRealNamedProperty, |
+ "v8::Object::HasRealNamedProperty", bool); |
auto self = Utils::OpenHandle(this); |
if (!self->IsJSObject()) return Just(false); |
auto key_val = Utils::OpenHandle(*key); |
@@ -4167,8 +4188,8 @@ bool v8::Object::HasRealNamedProperty(Local<String> key) { |
Maybe<bool> v8::Object::HasRealIndexedProperty(Local<Context> context, |
uint32_t index) { |
- PREPARE_FOR_EXECUTION_PRIMITIVE(context, |
- "v8::Object::HasRealIndexedProperty()", bool); |
+ PREPARE_FOR_EXECUTION_PRIMITIVE(context, v8_Object_HasRealIndexedProperty, |
+ "v8::Object::HasRealIndexedProperty", bool); |
auto self = Utils::OpenHandle(this); |
if (!self->IsJSObject()) return Just(false); |
auto result = i::JSObject::HasRealElementProperty( |
@@ -4188,7 +4209,8 @@ bool v8::Object::HasRealIndexedProperty(uint32_t index) { |
Maybe<bool> v8::Object::HasRealNamedCallbackProperty(Local<Context> context, |
Local<Name> key) { |
PREPARE_FOR_EXECUTION_PRIMITIVE( |
- context, "v8::Object::HasRealNamedCallbackProperty()", bool); |
+ context, v8_Object_HasRealNamedCallbackProperty, |
+ "v8::Object::HasRealNamedCallbackProperty", bool); |
auto self = Utils::OpenHandle(this); |
if (!self->IsJSObject()) return Just(false); |
auto key_val = Utils::OpenHandle(*key); |
@@ -4222,8 +4244,9 @@ bool v8::Object::HasIndexedLookupInterceptor() { |
MaybeLocal<Value> v8::Object::GetRealNamedPropertyInPrototypeChain( |
Local<Context> context, Local<Name> key) { |
- PREPARE_FOR_EXECUTION( |
- context, "v8::Object::GetRealNamedPropertyInPrototypeChain()", Value); |
+ PREPARE_FOR_EXECUTION(context, v8_Object_GetRealNamedPropertyInPrototypeChain, |
+ "v8::Object::GetRealNamedPropertyInPrototypeChain", |
+ Value); |
i::Handle<i::JSReceiver> self = Utils::OpenHandle(this); |
if (!self->IsJSObject()) return MaybeLocal<Value>(); |
i::Handle<i::Name> key_obj = Utils::OpenHandle(*key); |
@@ -4254,7 +4277,8 @@ Maybe<PropertyAttribute> |
v8::Object::GetRealNamedPropertyAttributesInPrototypeChain( |
Local<Context> context, Local<Name> key) { |
PREPARE_FOR_EXECUTION_PRIMITIVE( |
- context, "v8::Object::GetRealNamedPropertyAttributesInPrototypeChain()", |
+ context, v8_Object_GetRealNamedPropertyAttributesInPrototypeChain, |
+ "v8::Object::GetRealNamedPropertyAttributesInPrototypeChain", |
PropertyAttribute); |
i::Handle<i::JSReceiver> self = Utils::OpenHandle(this); |
if (!self->IsJSObject()) return Nothing<PropertyAttribute>(); |
@@ -4284,7 +4308,8 @@ v8::Object::GetRealNamedPropertyAttributesInPrototypeChain(Local<String> key) { |
MaybeLocal<Value> v8::Object::GetRealNamedProperty(Local<Context> context, |
Local<Name> key) { |
- PREPARE_FOR_EXECUTION(context, "v8::Object::GetRealNamedProperty()", Value); |
+ PREPARE_FOR_EXECUTION(context, v8_Object_GetRealNamedProperty, |
+ "v8::Object::GetRealNamedProperty", Value); |
auto self = Utils::OpenHandle(this); |
auto key_obj = Utils::OpenHandle(*key); |
i::LookupIterator it = i::LookupIterator::PropertyOrElement( |
@@ -4307,8 +4332,8 @@ Local<Value> v8::Object::GetRealNamedProperty(Local<String> key) { |
Maybe<PropertyAttribute> v8::Object::GetRealNamedPropertyAttributes( |
Local<Context> context, Local<Name> key) { |
PREPARE_FOR_EXECUTION_PRIMITIVE( |
- context, "v8::Object::GetRealNamedPropertyAttributes()", |
- PropertyAttribute); |
+ context, v8_Object_GetRealNamedPropertyAttributes, |
+ "v8::Object::GetRealNamedPropertyAttributes", PropertyAttribute); |
auto self = Utils::OpenHandle(this); |
auto key_obj = Utils::OpenHandle(*key); |
i::LookupIterator it = i::LookupIterator::PropertyOrElement( |
@@ -4419,8 +4444,8 @@ bool v8::Object::IsCallable() { |
MaybeLocal<Value> Object::CallAsFunction(Local<Context> context, |
Local<Value> recv, int argc, |
Local<Value> argv[]) { |
- PREPARE_FOR_EXECUTION_WITH_CALLBACK(context, "v8::Object::CallAsFunction()", |
- Value); |
+ PREPARE_FOR_EXECUTION_WITH_CALLBACK(context, v8_Object_CallAsFunction, |
+ "v8::Object::CallAsFunction", Value); |
i::TimerEventScope<i::TimerEventExecute> timer_scope(isolate); |
TRACE_EVENT0("v8", "V8.Execute"); |
auto self = Utils::OpenHandle(this); |
@@ -4446,8 +4471,8 @@ Local<v8::Value> Object::CallAsFunction(v8::Local<v8::Value> recv, int argc, |
MaybeLocal<Value> Object::CallAsConstructor(Local<Context> context, int argc, |
Local<Value> argv[]) { |
- PREPARE_FOR_EXECUTION_WITH_CALLBACK(context, |
- "v8::Object::CallAsConstructor()", Value); |
+ PREPARE_FOR_EXECUTION_WITH_CALLBACK(context, v8_Object_CallAsConstructor, |
+ "v8::Object::CallAsConstructor", Value); |
i::TimerEventScope<i::TimerEventExecute> timer_scope(isolate); |
TRACE_EVENT0("v8", "V8.Execute"); |
auto self = Utils::OpenHandle(this); |
@@ -4473,7 +4498,7 @@ MaybeLocal<Function> Function::New(Local<Context> context, |
FunctionCallback callback, Local<Value> data, |
int length) { |
i::Isolate* isolate = Utils::OpenHandle(*context)->GetIsolate(); |
- LOG_API(isolate, "Function::New"); |
+ LOG_API(isolate, Function_New, "Function::New"); |
ENTER_V8(isolate); |
return FunctionTemplateNew(isolate, callback, nullptr, data, |
Local<Signature>(), length, true) |
@@ -4496,8 +4521,8 @@ Local<v8::Object> Function::NewInstance() const { |
MaybeLocal<Object> Function::NewInstance(Local<Context> context, int argc, |
v8::Local<v8::Value> argv[]) const { |
- PREPARE_FOR_EXECUTION_WITH_CALLBACK(context, "v8::Function::NewInstance()", |
- Object); |
+ PREPARE_FOR_EXECUTION_WITH_CALLBACK(context, v8_Function_NewInstance, |
+ "v8::Function::NewInstance", Object); |
i::TimerEventScope<i::TimerEventExecute> timer_scope(isolate); |
TRACE_EVENT0("v8", "V8.Execute"); |
auto self = Utils::OpenHandle(this); |
@@ -4521,7 +4546,8 @@ Local<v8::Object> Function::NewInstance(int argc, |
MaybeLocal<v8::Value> Function::Call(Local<Context> context, |
v8::Local<v8::Value> recv, int argc, |
v8::Local<v8::Value> argv[]) { |
- PREPARE_FOR_EXECUTION_WITH_CALLBACK(context, "v8::Function::Call()", Value); |
+ PREPARE_FOR_EXECUTION_WITH_CALLBACK(context, v8_Function_Call, |
+ "v8::Function::Call", Value); |
i::TimerEventScope<i::TimerEventExecute> timer_scope(isolate); |
TRACE_EVENT0("v8", "V8.Execute"); |
auto self = Utils::OpenHandle(this); |
@@ -5234,7 +5260,7 @@ int String::WriteUtf8(char* buffer, |
int* nchars_ref, |
int options) const { |
i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate(); |
- LOG_API(isolate, "String::WriteUtf8"); |
+ LOG_API(isolate, String_WriteUtf8, "String::WriteUtf8"); |
ENTER_V8(isolate); |
i::Handle<i::String> str = Utils::OpenHandle(this); |
if (options & HINT_MANY_WRITES_EXPECTED) { |
@@ -5287,7 +5313,7 @@ static inline int WriteHelper(const String* string, |
int length, |
int options) { |
i::Isolate* isolate = Utils::OpenHandle(string)->GetIsolate(); |
- LOG_API(isolate, "String::Write"); |
+ LOG_API(isolate, String_Write, "String::Write"); |
ENTER_V8(isolate); |
DCHECK(start >= 0 && length >= -1); |
i::Handle<i::String> str = Utils::OpenHandle(string); |
@@ -5661,7 +5687,7 @@ Local<Context> v8::Context::New(v8::Isolate* external_isolate, |
v8::Local<ObjectTemplate> global_template, |
v8::Local<Value> global_object) { |
i::Isolate* isolate = reinterpret_cast<i::Isolate*>(external_isolate); |
- LOG_API(isolate, "Context::New"); |
+ LOG_API(isolate, Context_New, "Context::New"); |
i::HandleScope scope(isolate); |
ExtensionConfiguration no_extensions; |
if (extensions == NULL) extensions = &no_extensions; |
@@ -5764,7 +5790,8 @@ size_t Context::EstimatedSize() { |
MaybeLocal<v8::Object> ObjectTemplate::NewInstance(Local<Context> context) { |
- PREPARE_FOR_EXECUTION(context, "v8::ObjectTemplate::NewInstance()", Object); |
+ PREPARE_FOR_EXECUTION(context, v8_ObjectTemplate_NewInstance, |
+ "v8::ObjectTemplate::NewInstance", Object); |
auto self = Utils::OpenHandle(this); |
Local<Object> result; |
has_pending_exception = |
@@ -5781,8 +5808,8 @@ Local<v8::Object> ObjectTemplate::NewInstance() { |
MaybeLocal<v8::Function> FunctionTemplate::GetFunction(Local<Context> context) { |
- PREPARE_FOR_EXECUTION(context, "v8::FunctionTemplate::GetFunction()", |
- Function); |
+ PREPARE_FOR_EXECUTION(context, v8_FunctionTemplate_GetFunction, |
+ "v8::FunctionTemplate::GetFunction", Function); |
auto self = Utils::OpenHandle(this); |
Local<Function> result; |
has_pending_exception = |
@@ -5808,7 +5835,7 @@ bool FunctionTemplate::HasInstance(v8::Local<v8::Value> value) { |
Local<External> v8::External::New(Isolate* isolate, void* value) { |
STATIC_ASSERT(sizeof(value) == sizeof(i::Address)); |
i::Isolate* i_isolate = reinterpret_cast<i::Isolate*>(isolate); |
- LOG_API(i_isolate, "External::New"); |
+ LOG_API(i_isolate, External_New, "External::New"); |
ENTER_V8(i_isolate); |
i::Handle<i::JSObject> external = i_isolate->factory()->NewExternal(value); |
return Utils::ExternalToLocal(external); |
@@ -5876,42 +5903,43 @@ inline i::MaybeHandle<i::String> NewString(i::Factory* factory, |
STATIC_ASSERT(v8::String::kMaxLength == i::String::kMaxLength); |
- |
-template <typename Char> |
-inline MaybeLocal<String> NewString(Isolate* v8_isolate, const char* location, |
- const char* env, const Char* data, |
- v8::NewStringType type, int length) { |
- i::Isolate* isolate = reinterpret_cast<internal::Isolate*>(v8_isolate); |
- if (length == 0) return String::Empty(v8_isolate); |
- // TODO(dcarney): throw a context free exception. |
- if (length > i::String::kMaxLength) return MaybeLocal<String>(); |
- ENTER_V8(isolate); |
- LOG_API(isolate, env); |
- if (length < 0) length = StringLength(data); |
- i::Handle<i::String> result = |
- NewString(isolate->factory(), type, i::Vector<const Char>(data, length)) |
- .ToHandleChecked(); |
- return Utils::ToLocal(result); |
-} |
- |
} // anonymous namespace |
+// TODO(dcarney): throw a context free exception. |
+#define NEW_STRING(isolate, counter_name, function_name, Char, data, type, \ |
+ length) \ |
+ MaybeLocal<String> result; \ |
+ if (length == 0) { \ |
+ result = String::Empty(isolate); \ |
+ } else if (length > i::String::kMaxLength) { \ |
+ result = MaybeLocal<String>(); \ |
+ } else { \ |
+ i::Isolate* i_isolate = reinterpret_cast<internal::Isolate*>(isolate); \ |
+ ENTER_V8(i_isolate); \ |
+ LOG_API(i_isolate, counter_name, function_name); \ |
+ if (length < 0) length = StringLength(data); \ |
+ i::Handle<i::String> handle_result = \ |
+ NewString(i_isolate->factory(), type, \ |
+ i::Vector<const Char>(data, length)) \ |
+ .ToHandleChecked(); \ |
+ result = Utils::ToLocal(handle_result); \ |
+ } |
Local<String> String::NewFromUtf8(Isolate* isolate, |
const char* data, |
NewStringType type, |
int length) { |
- RETURN_TO_LOCAL_UNCHECKED( |
- NewString(isolate, "v8::String::NewFromUtf8()", "String::NewFromUtf8", |
- data, static_cast<v8::NewStringType>(type), length), |
- String); |
+ NEW_STRING(isolate, String_NewFromUtf8, "v8::String::NewFromUtf8", char, data, |
+ static_cast<v8::NewStringType>(type), length); |
+ RETURN_TO_LOCAL_UNCHECKED(result, String); |
} |
MaybeLocal<String> String::NewFromUtf8(Isolate* isolate, const char* data, |
v8::NewStringType type, int length) { |
- return NewString(isolate, "v8::String::NewFromUtf8()", "String::NewFromUtf8", |
- data, type, length); |
+ NEW_STRING(isolate, String_NewFromUtf8, "v8::String::NewFromUtf8", char, data, |
+ type, length); |
+ return result; |
} |
@@ -5919,18 +5947,17 @@ Local<String> String::NewFromOneByte(Isolate* isolate, |
const uint8_t* data, |
NewStringType type, |
int length) { |
- RETURN_TO_LOCAL_UNCHECKED( |
- NewString(isolate, "v8::String::NewFromOneByte()", |
- "String::NewFromOneByte", data, |
- static_cast<v8::NewStringType>(type), length), |
- String); |
+ NEW_STRING(isolate, String_NewFromOneByte, "v8::String::NewFromOneByte", |
+ uint8_t, data, static_cast<v8::NewStringType>(type), length); |
+ RETURN_TO_LOCAL_UNCHECKED(result, String); |
} |
MaybeLocal<String> String::NewFromOneByte(Isolate* isolate, const uint8_t* data, |
v8::NewStringType type, int length) { |
- return NewString(isolate, "v8::String::NewFromOneByte()", |
- "String::NewFromOneByte", data, type, length); |
+ NEW_STRING(isolate, String_NewFromOneByte, "v8::String::NewFromOneByte", |
+ uint8_t, data, type, length); |
+ return result; |
} |
@@ -5938,19 +5965,18 @@ Local<String> String::NewFromTwoByte(Isolate* isolate, |
const uint16_t* data, |
NewStringType type, |
int length) { |
- RETURN_TO_LOCAL_UNCHECKED( |
- NewString(isolate, "v8::String::NewFromTwoByte()", |
- "String::NewFromTwoByte", data, |
- static_cast<v8::NewStringType>(type), length), |
- String); |
+ NEW_STRING(isolate, String_NewFromTwoByte, "v8::String::NewFromTwoByte", |
+ uint16_t, data, static_cast<v8::NewStringType>(type), length); |
+ RETURN_TO_LOCAL_UNCHECKED(result, String); |
} |
MaybeLocal<String> String::NewFromTwoByte(Isolate* isolate, |
const uint16_t* data, |
v8::NewStringType type, int length) { |
- return NewString(isolate, "v8::String::NewFromTwoByte()", |
- "String::NewFromTwoByte", data, type, length); |
+ NEW_STRING(isolate, String_NewFromTwoByte, "v8::String::NewFromTwoByte", |
+ uint16_t, data, type, length); |
+ return result; |
} |
@@ -5958,7 +5984,7 @@ Local<String> v8::String::Concat(Local<String> left, Local<String> right) { |
i::Handle<i::String> left_string = Utils::OpenHandle(*left); |
i::Isolate* isolate = left_string->GetIsolate(); |
ENTER_V8(isolate); |
- LOG_API(isolate, "v8::String::Concat"); |
+ LOG_API(isolate, v8_String_Concat, "v8::String::Concat"); |
i::Handle<i::String> right_string = Utils::OpenHandle(*right); |
// If we are steering towards a range error, do not wait for the error to be |
// thrown, and return the null handle instead. |
@@ -5980,7 +6006,7 @@ MaybeLocal<String> v8::String::NewExternalTwoByte( |
} |
i::Isolate* i_isolate = reinterpret_cast<i::Isolate*>(isolate); |
ENTER_V8(i_isolate); |
- LOG_API(i_isolate, "String::NewExternalTwoByte"); |
+ LOG_API(i_isolate, String_NewExternalTwoByte, "String::NewExternalTwoByte"); |
i::Handle<i::String> string = i_isolate->factory() |
->NewExternalStringFromTwoByte(resource) |
.ToHandleChecked(); |
@@ -6004,7 +6030,7 @@ MaybeLocal<String> v8::String::NewExternalOneByte( |
} |
i::Isolate* i_isolate = reinterpret_cast<i::Isolate*>(isolate); |
ENTER_V8(i_isolate); |
- LOG_API(i_isolate, "String::NewExternalOneByte"); |
+ LOG_API(i_isolate, String_NewExternalOneByte, "String::NewExternalOneByte"); |
i::Handle<i::String> string = i_isolate->factory() |
->NewExternalStringFromOneByte(resource) |
.ToHandleChecked(); |
@@ -6087,7 +6113,7 @@ Isolate* v8::Object::GetIsolate() { |
Local<v8::Object> v8::Object::New(Isolate* isolate) { |
i::Isolate* i_isolate = reinterpret_cast<i::Isolate*>(isolate); |
- LOG_API(i_isolate, "Object::New"); |
+ LOG_API(i_isolate, Object_New, "Object::New"); |
ENTER_V8(i_isolate); |
i::Handle<i::JSObject> obj = |
i_isolate->factory()->NewJSObject(i_isolate->object_function()); |
@@ -6097,7 +6123,7 @@ Local<v8::Object> v8::Object::New(Isolate* isolate) { |
Local<v8::Value> v8::NumberObject::New(Isolate* isolate, double value) { |
i::Isolate* i_isolate = reinterpret_cast<i::Isolate*>(isolate); |
- LOG_API(i_isolate, "NumberObject::New"); |
+ LOG_API(i_isolate, NumberObject_New, "NumberObject::New"); |
ENTER_V8(i_isolate); |
i::Handle<i::Object> number = i_isolate->factory()->NewNumber(value); |
i::Handle<i::Object> obj = |
@@ -6110,14 +6136,14 @@ double v8::NumberObject::ValueOf() const { |
i::Handle<i::Object> obj = Utils::OpenHandle(this); |
i::Handle<i::JSValue> jsvalue = i::Handle<i::JSValue>::cast(obj); |
i::Isolate* isolate = jsvalue->GetIsolate(); |
- LOG_API(isolate, "NumberObject::NumberValue"); |
+ LOG_API(isolate, NumberObject_NumberValue, "NumberObject::NumberValue"); |
return jsvalue->value()->Number(); |
} |
Local<v8::Value> v8::BooleanObject::New(Isolate* isolate, bool value) { |
i::Isolate* i_isolate = reinterpret_cast<i::Isolate*>(isolate); |
- LOG_API(i_isolate, "BooleanObject::New"); |
+ LOG_API(i_isolate, BooleanObject_New, "BooleanObject::New"); |
ENTER_V8(i_isolate); |
i::Handle<i::Object> boolean(value ? i_isolate->heap()->true_value() |
: i_isolate->heap()->false_value(), |
@@ -6137,7 +6163,7 @@ bool v8::BooleanObject::ValueOf() const { |
i::Handle<i::Object> obj = Utils::OpenHandle(this); |
i::Handle<i::JSValue> jsvalue = i::Handle<i::JSValue>::cast(obj); |
i::Isolate* isolate = jsvalue->GetIsolate(); |
- LOG_API(isolate, "BooleanObject::BooleanValue"); |
+ LOG_API(isolate, BooleanObject_BooleanValue, "BooleanObject::BooleanValue"); |
return jsvalue->value()->IsTrue(); |
} |
@@ -6145,7 +6171,7 @@ bool v8::BooleanObject::ValueOf() const { |
Local<v8::Value> v8::StringObject::New(Local<String> value) { |
i::Handle<i::String> string = Utils::OpenHandle(*value); |
i::Isolate* isolate = string->GetIsolate(); |
- LOG_API(isolate, "StringObject::New"); |
+ LOG_API(isolate, StringObject_New, "StringObject::New"); |
ENTER_V8(isolate); |
i::Handle<i::Object> obj = |
i::Object::ToObject(isolate, string).ToHandleChecked(); |
@@ -6157,7 +6183,7 @@ Local<v8::String> v8::StringObject::ValueOf() const { |
i::Handle<i::Object> obj = Utils::OpenHandle(this); |
i::Handle<i::JSValue> jsvalue = i::Handle<i::JSValue>::cast(obj); |
i::Isolate* isolate = jsvalue->GetIsolate(); |
- LOG_API(isolate, "StringObject::StringValue"); |
+ LOG_API(isolate, StringObject_StringValue, "StringObject::StringValue"); |
return Utils::ToLocal( |
i::Handle<i::String>(i::String::cast(jsvalue->value()))); |
} |
@@ -6165,7 +6191,7 @@ Local<v8::String> v8::StringObject::ValueOf() const { |
Local<v8::Value> v8::SymbolObject::New(Isolate* isolate, Local<Symbol> value) { |
i::Isolate* i_isolate = reinterpret_cast<i::Isolate*>(isolate); |
- LOG_API(i_isolate, "SymbolObject::New"); |
+ LOG_API(i_isolate, SymbolObject_New, "SymbolObject::New"); |
ENTER_V8(i_isolate); |
i::Handle<i::Object> obj = i::Object::ToObject( |
i_isolate, Utils::OpenHandle(*value)).ToHandleChecked(); |
@@ -6177,7 +6203,7 @@ Local<v8::Symbol> v8::SymbolObject::ValueOf() const { |
i::Handle<i::Object> obj = Utils::OpenHandle(this); |
i::Handle<i::JSValue> jsvalue = i::Handle<i::JSValue>::cast(obj); |
i::Isolate* isolate = jsvalue->GetIsolate(); |
- LOG_API(isolate, "SymbolObject::SymbolValue"); |
+ LOG_API(isolate, SymbolObject_SymbolValue, "SymbolObject::SymbolValue"); |
return Utils::ToLocal( |
i::Handle<i::Symbol>(i::Symbol::cast(jsvalue->value()))); |
} |
@@ -6188,7 +6214,7 @@ MaybeLocal<v8::Value> v8::Date::New(Local<Context> context, double time) { |
// Introduce only canonical NaN value into the VM, to avoid signaling NaNs. |
time = std::numeric_limits<double>::quiet_NaN(); |
} |
- PREPARE_FOR_EXECUTION(context, "Date::New", Value); |
+ PREPARE_FOR_EXECUTION(context, Date_New, "Date::New", Value); |
Local<Value> result; |
has_pending_exception = !ToLocal<Value>( |
i::JSDate::New(isolate->date_function(), isolate->date_function(), time), |
@@ -6208,14 +6234,15 @@ double v8::Date::ValueOf() const { |
i::Handle<i::Object> obj = Utils::OpenHandle(this); |
i::Handle<i::JSDate> jsdate = i::Handle<i::JSDate>::cast(obj); |
i::Isolate* isolate = jsdate->GetIsolate(); |
- LOG_API(isolate, "Date::NumberValue"); |
+ LOG_API(isolate, Date_NumberValue, "Date::NumberValue"); |
return jsdate->value()->Number(); |
} |
void v8::Date::DateTimeConfigurationChangeNotification(Isolate* isolate) { |
i::Isolate* i_isolate = reinterpret_cast<i::Isolate*>(isolate); |
- LOG_API(i_isolate, "Date::DateTimeConfigurationChangeNotification"); |
+ LOG_API(i_isolate, Date_DateTimeConfigurationChangeNotification, |
+ "Date::DateTimeConfigurationChangeNotification"); |
ENTER_V8(i_isolate); |
i_isolate->date_cache()->ResetDateCache(); |
if (!i_isolate->eternal_handles()->Exists( |
@@ -6235,7 +6262,7 @@ void v8::Date::DateTimeConfigurationChangeNotification(Isolate* isolate) { |
MaybeLocal<v8::RegExp> v8::RegExp::New(Local<Context> context, |
Local<String> pattern, Flags flags) { |
- PREPARE_FOR_EXECUTION(context, "RegExp::New", RegExp); |
+ PREPARE_FOR_EXECUTION(context, RegExp_New, "RegExp::New", RegExp); |
Local<v8::RegExp> result; |
has_pending_exception = |
!ToLocal<RegExp>(i::JSRegExp::New(Utils::OpenHandle(*pattern), |
@@ -6280,7 +6307,7 @@ v8::RegExp::Flags v8::RegExp::GetFlags() const { |
Local<v8::Array> v8::Array::New(Isolate* isolate, int length) { |
i::Isolate* i_isolate = reinterpret_cast<i::Isolate*>(isolate); |
- LOG_API(i_isolate, "Array::New"); |
+ LOG_API(i_isolate, Array_New, "Array::New"); |
ENTER_V8(i_isolate); |
int real_length = length > 0 ? length : 0; |
i::Handle<i::JSArray> obj = i_isolate->factory()->NewJSArray(real_length); |
@@ -6304,7 +6331,8 @@ uint32_t v8::Array::Length() const { |
MaybeLocal<Object> Array::CloneElementAt(Local<Context> context, |
uint32_t index) { |
- PREPARE_FOR_EXECUTION(context, "v8::Array::CloneElementAt()", Object); |
+ PREPARE_FOR_EXECUTION(context, v8_Array_CloneElementAt, |
+ "v8::Array::CloneElementAt", Object); |
auto self = Utils::OpenHandle(this); |
if (!self->HasFastObjectElements()) return Local<Object>(); |
i::FixedArray* elms = i::FixedArray::cast(self->elements()); |
@@ -6325,7 +6353,7 @@ Local<Object> Array::CloneElementAt(uint32_t index) { return Local<Object>(); } |
Local<v8::Map> v8::Map::New(Isolate* isolate) { |
i::Isolate* i_isolate = reinterpret_cast<i::Isolate*>(isolate); |
- LOG_API(i_isolate, "Map::New"); |
+ LOG_API(i_isolate, Map_New, "Map::New"); |
ENTER_V8(i_isolate); |
i::Handle<i::JSMap> obj = i_isolate->factory()->NewJSMap(); |
return Utils::ToLocal(obj); |
@@ -6341,14 +6369,14 @@ size_t v8::Map::Size() const { |
void Map::Clear() { |
auto self = Utils::OpenHandle(this); |
i::Isolate* isolate = self->GetIsolate(); |
- LOG_API(isolate, "Map::Clear"); |
+ LOG_API(isolate, Map_Clear, "Map::Clear"); |
ENTER_V8(isolate); |
i::JSMap::Clear(self); |
} |
MaybeLocal<Value> Map::Get(Local<Context> context, Local<Value> key) { |
- PREPARE_FOR_EXECUTION(context, "Map::Get", Value); |
+ PREPARE_FOR_EXECUTION(context, Map_Get, "Map::Get", Value); |
auto self = Utils::OpenHandle(this); |
Local<Value> result; |
i::Handle<i::Object> argv[] = {Utils::OpenHandle(*key)}; |
@@ -6363,7 +6391,7 @@ MaybeLocal<Value> Map::Get(Local<Context> context, Local<Value> key) { |
MaybeLocal<Map> Map::Set(Local<Context> context, Local<Value> key, |
Local<Value> value) { |
- PREPARE_FOR_EXECUTION(context, "Map::Set", Map); |
+ PREPARE_FOR_EXECUTION(context, Map_Set, "Map::Set", Map); |
auto self = Utils::OpenHandle(this); |
i::Handle<i::Object> result; |
i::Handle<i::Object> argv[] = {Utils::OpenHandle(*key), |
@@ -6377,7 +6405,7 @@ MaybeLocal<Map> Map::Set(Local<Context> context, Local<Value> key, |
Maybe<bool> Map::Has(Local<Context> context, Local<Value> key) { |
- PREPARE_FOR_EXECUTION_PRIMITIVE(context, "Map::Has", bool); |
+ PREPARE_FOR_EXECUTION_PRIMITIVE(context, Map_Has, "Map::Has", bool); |
auto self = Utils::OpenHandle(this); |
i::Handle<i::Object> result; |
i::Handle<i::Object> argv[] = {Utils::OpenHandle(*key)}; |
@@ -6390,7 +6418,7 @@ Maybe<bool> Map::Has(Local<Context> context, Local<Value> key) { |
Maybe<bool> Map::Delete(Local<Context> context, Local<Value> key) { |
- PREPARE_FOR_EXECUTION_PRIMITIVE(context, "Map::Delete", bool); |
+ PREPARE_FOR_EXECUTION_PRIMITIVE(context, Map_Delete, "Map::Delete", bool); |
auto self = Utils::OpenHandle(this); |
i::Handle<i::Object> result; |
i::Handle<i::Object> argv[] = {Utils::OpenHandle(*key)}; |
@@ -6406,7 +6434,7 @@ Local<Array> Map::AsArray() const { |
i::Handle<i::JSMap> obj = Utils::OpenHandle(this); |
i::Isolate* isolate = obj->GetIsolate(); |
i::Factory* factory = isolate->factory(); |
- LOG_API(isolate, "Map::AsArray"); |
+ LOG_API(isolate, Map_AsArray, "Map::AsArray"); |
ENTER_V8(isolate); |
i::Handle<i::OrderedHashMap> table(i::OrderedHashMap::cast(obj->table())); |
int size = table->NumberOfElements(); |
@@ -6425,7 +6453,7 @@ Local<Array> Map::AsArray() const { |
Local<v8::Set> v8::Set::New(Isolate* isolate) { |
i::Isolate* i_isolate = reinterpret_cast<i::Isolate*>(isolate); |
- LOG_API(i_isolate, "Set::New"); |
+ LOG_API(i_isolate, Set_New, "Set::New"); |
ENTER_V8(i_isolate); |
i::Handle<i::JSSet> obj = i_isolate->factory()->NewJSSet(); |
return Utils::ToLocal(obj); |
@@ -6441,14 +6469,14 @@ size_t v8::Set::Size() const { |
void Set::Clear() { |
auto self = Utils::OpenHandle(this); |
i::Isolate* isolate = self->GetIsolate(); |
- LOG_API(isolate, "Set::Clear"); |
+ LOG_API(isolate, Set_Clear, "Set::Clear"); |
ENTER_V8(isolate); |
i::JSSet::Clear(self); |
} |
MaybeLocal<Set> Set::Add(Local<Context> context, Local<Value> key) { |
- PREPARE_FOR_EXECUTION(context, "Set::Add", Set); |
+ PREPARE_FOR_EXECUTION(context, Set_Add, "Set::Add", Set); |
auto self = Utils::OpenHandle(this); |
i::Handle<i::Object> result; |
i::Handle<i::Object> argv[] = {Utils::OpenHandle(*key)}; |
@@ -6461,7 +6489,7 @@ MaybeLocal<Set> Set::Add(Local<Context> context, Local<Value> key) { |
Maybe<bool> Set::Has(Local<Context> context, Local<Value> key) { |
- PREPARE_FOR_EXECUTION_PRIMITIVE(context, "Set::Has", bool); |
+ PREPARE_FOR_EXECUTION_PRIMITIVE(context, Set_Has, "Set::Has", bool); |
auto self = Utils::OpenHandle(this); |
i::Handle<i::Object> result; |
i::Handle<i::Object> argv[] = {Utils::OpenHandle(*key)}; |
@@ -6474,7 +6502,7 @@ Maybe<bool> Set::Has(Local<Context> context, Local<Value> key) { |
Maybe<bool> Set::Delete(Local<Context> context, Local<Value> key) { |
- PREPARE_FOR_EXECUTION_PRIMITIVE(context, "Set::Delete", bool); |
+ PREPARE_FOR_EXECUTION_PRIMITIVE(context, Set_Delete, "Set::Delete", bool); |
auto self = Utils::OpenHandle(this); |
i::Handle<i::Object> result; |
i::Handle<i::Object> argv[] = {Utils::OpenHandle(*key)}; |
@@ -6490,7 +6518,7 @@ Local<Array> Set::AsArray() const { |
i::Handle<i::JSSet> obj = Utils::OpenHandle(this); |
i::Isolate* isolate = obj->GetIsolate(); |
i::Factory* factory = isolate->factory(); |
- LOG_API(isolate, "Set::AsArray"); |
+ LOG_API(isolate, Set_AsArray, "Set::AsArray"); |
ENTER_V8(isolate); |
i::Handle<i::OrderedHashSet> table(i::OrderedHashSet::cast(obj->table())); |
int length = table->NumberOfElements(); |
@@ -6508,7 +6536,8 @@ Local<Array> Set::AsArray() const { |
MaybeLocal<Promise::Resolver> Promise::Resolver::New(Local<Context> context) { |
- PREPARE_FOR_EXECUTION(context, "Promise::Resolver::New", Resolver); |
+ PREPARE_FOR_EXECUTION(context, Promise_Resolver_New, "Promise::Resolver::New", |
+ Resolver); |
i::Handle<i::Object> result; |
has_pending_exception = |
!i::Execution::Call(isolate, isolate->promise_create(), |
@@ -6533,7 +6562,8 @@ Local<Promise> Promise::Resolver::GetPromise() { |
Maybe<bool> Promise::Resolver::Resolve(Local<Context> context, |
Local<Value> value) { |
- PREPARE_FOR_EXECUTION_PRIMITIVE(context, "Promise::Resolver::Resolve", bool); |
+ PREPARE_FOR_EXECUTION_PRIMITIVE(context, Promise_Resolver_Resolve, |
+ "Promise::Resolver::Resolve", bool); |
auto self = Utils::OpenHandle(this); |
i::Handle<i::Object> argv[] = {self, Utils::OpenHandle(*value)}; |
has_pending_exception = |
@@ -6554,7 +6584,8 @@ void Promise::Resolver::Resolve(Local<Value> value) { |
Maybe<bool> Promise::Resolver::Reject(Local<Context> context, |
Local<Value> value) { |
- PREPARE_FOR_EXECUTION_PRIMITIVE(context, "Promise::Resolver::Resolve", bool); |
+ PREPARE_FOR_EXECUTION_PRIMITIVE(context, Promise_Resolver_Resolve, |
+ "Promise::Resolver::Resolve", bool); |
auto self = Utils::OpenHandle(this); |
i::Handle<i::Object> argv[] = {self, Utils::OpenHandle(*value)}; |
has_pending_exception = |
@@ -6577,7 +6608,7 @@ namespace { |
MaybeLocal<Promise> DoChain(Value* value, Local<Context> context, |
Local<Function> handler) { |
- PREPARE_FOR_EXECUTION(context, "Promise::Chain", Promise); |
+ PREPARE_FOR_EXECUTION(context, Promise_Chain, "Promise::Chain", Promise); |
auto self = Utils::OpenHandle(value); |
i::Handle<i::Object> argv[] = {Utils::OpenHandle(*handler)}; |
i::Handle<i::Object> result; |
@@ -6605,7 +6636,7 @@ Local<Promise> Promise::Chain(Local<Function> handler) { |
MaybeLocal<Promise> Promise::Catch(Local<Context> context, |
Local<Function> handler) { |
- PREPARE_FOR_EXECUTION(context, "Promise::Catch", Promise); |
+ PREPARE_FOR_EXECUTION(context, Promise_Catch, "Promise::Catch", Promise); |
auto self = Utils::OpenHandle(this); |
i::Handle<i::Object> argv[] = { Utils::OpenHandle(*handler) }; |
i::Handle<i::Object> result; |
@@ -6625,7 +6656,7 @@ Local<Promise> Promise::Catch(Local<Function> handler) { |
MaybeLocal<Promise> Promise::Then(Local<Context> context, |
Local<Function> handler) { |
- PREPARE_FOR_EXECUTION(context, "Promise::Then", Promise); |
+ PREPARE_FOR_EXECUTION(context, Promise_Then, "Promise::Then", Promise); |
auto self = Utils::OpenHandle(this); |
i::Handle<i::Object> argv[] = { Utils::OpenHandle(*handler) }; |
i::Handle<i::Object> result; |
@@ -6646,7 +6677,7 @@ Local<Promise> Promise::Then(Local<Function> handler) { |
bool Promise::HasHandler() { |
i::Handle<i::JSReceiver> promise = Utils::OpenHandle(this); |
i::Isolate* isolate = promise->GetIsolate(); |
- LOG_API(isolate, "Promise::HasRejectHandler"); |
+ LOG_API(isolate, Promise_HasRejectHandler, "Promise::HasRejectHandler"); |
ENTER_V8(isolate); |
i::Handle<i::Symbol> key = isolate->factory()->promise_has_handler_symbol(); |
return i::JSReceiver::GetDataProperty(promise, key)->IsTrue(); |
@@ -6681,7 +6712,7 @@ void Proxy::Revoke() { |
MaybeLocal<Proxy> Proxy::New(Local<Context> context, Local<Object> local_target, |
Local<Object> local_handler) { |
- PREPARE_FOR_EXECUTION(context, "Proxy::New", Proxy); |
+ PREPARE_FOR_EXECUTION(context, Proxy_New, "Proxy::New", Proxy); |
i::Handle<i::JSReceiver> target = Utils::OpenHandle(*local_target); |
i::Handle<i::JSReceiver> handler = Utils::OpenHandle(*local_handler); |
Local<Proxy> result; |
@@ -6704,7 +6735,7 @@ bool v8::ArrayBuffer::IsNeuterable() const { |
v8::ArrayBuffer::Contents v8::ArrayBuffer::Externalize() { |
i::Handle<i::JSArrayBuffer> self = Utils::OpenHandle(this); |
i::Isolate* isolate = self->GetIsolate(); |
- Utils::ApiCheck(!self->is_external(), "v8::ArrayBuffer::Externalize", |
+ Utils::ApiCheck(!self->is_external(), "v8_ArrayBuffer_Externalize", |
"ArrayBuffer already externalized"); |
self->set_is_external(true); |
isolate->heap()->UnregisterArrayBuffer(*self); |
@@ -6731,7 +6762,7 @@ void v8::ArrayBuffer::Neuter() { |
"Only externalized ArrayBuffers can be neutered"); |
Utils::ApiCheck(obj->is_neuterable(), "v8::ArrayBuffer::Neuter", |
"Only neuterable ArrayBuffers can be neutered"); |
- LOG_API(obj->GetIsolate(), "v8::ArrayBuffer::Neuter()"); |
+ LOG_API(obj->GetIsolate(), v8_ArrayBuffer_Neuter, "v8::ArrayBuffer::Neuter"); |
ENTER_V8(isolate); |
obj->Neuter(); |
} |
@@ -6745,7 +6776,7 @@ size_t v8::ArrayBuffer::ByteLength() const { |
Local<ArrayBuffer> v8::ArrayBuffer::New(Isolate* isolate, size_t byte_length) { |
i::Isolate* i_isolate = reinterpret_cast<i::Isolate*>(isolate); |
- LOG_API(i_isolate, "v8::ArrayBuffer::New(size_t)"); |
+ LOG_API(i_isolate, v8_ArrayBuffer_New, "v8::ArrayBuffer::New"); |
ENTER_V8(i_isolate); |
i::Handle<i::JSArrayBuffer> obj = |
i_isolate->factory()->NewJSArrayBuffer(i::SharedFlag::kNotShared); |
@@ -6760,7 +6791,7 @@ Local<ArrayBuffer> v8::ArrayBuffer::New(Isolate* isolate, void* data, |
// Embedders must guarantee that the external backing store is valid. |
CHECK(byte_length == 0 || data != NULL); |
i::Isolate* i_isolate = reinterpret_cast<i::Isolate*>(isolate); |
- LOG_API(i_isolate, "v8::ArrayBuffer::New(void*, size_t)"); |
+ LOG_API(i_isolate, v8_ArrayBuffer_New, "v8::ArrayBuffer::New"); |
ENTER_V8(i_isolate); |
i::Handle<i::JSArrayBuffer> obj = |
i_isolate->factory()->NewJSArrayBuffer(i::SharedFlag::kNotShared); |
@@ -6833,49 +6864,46 @@ size_t v8::TypedArray::Length() { |
return static_cast<size_t>(obj->length_value()); |
} |
- |
-#define TYPED_ARRAY_NEW(Type, type, TYPE, ctype, size) \ |
- Local<Type##Array> Type##Array::New(Local<ArrayBuffer> array_buffer, \ |
- size_t byte_offset, size_t length) { \ |
- i::Isolate* isolate = Utils::OpenHandle(*array_buffer)->GetIsolate(); \ |
- LOG_API(isolate, \ |
- "v8::" #Type "Array::New(Local<ArrayBuffer>, size_t, size_t)"); \ |
- ENTER_V8(isolate); \ |
- if (!Utils::ApiCheck(length <= static_cast<size_t>(i::Smi::kMaxValue), \ |
- "v8::" #Type \ |
- "Array::New(Local<ArrayBuffer>, size_t, size_t)", \ |
- "length exceeds max allowed value")) { \ |
- return Local<Type##Array>(); \ |
- } \ |
- i::Handle<i::JSArrayBuffer> buffer = Utils::OpenHandle(*array_buffer); \ |
- i::Handle<i::JSTypedArray> obj = isolate->factory()->NewJSTypedArray( \ |
- i::kExternal##Type##Array, buffer, byte_offset, length); \ |
- return Utils::ToLocal##Type##Array(obj); \ |
- } \ |
- Local<Type##Array> Type##Array::New( \ |
- Local<SharedArrayBuffer> shared_array_buffer, size_t byte_offset, \ |
- size_t length) { \ |
- CHECK(i::FLAG_harmony_sharedarraybuffer); \ |
- i::Isolate* isolate = \ |
- Utils::OpenHandle(*shared_array_buffer)->GetIsolate(); \ |
- LOG_API(isolate, "v8::" #Type \ |
- "Array::New(Local<SharedArrayBuffer>, size_t, size_t)"); \ |
- ENTER_V8(isolate); \ |
- if (!Utils::ApiCheck( \ |
- length <= static_cast<size_t>(i::Smi::kMaxValue), \ |
- "v8::" #Type \ |
- "Array::New(Local<SharedArrayBuffer>, size_t, size_t)", \ |
- "length exceeds max allowed value")) { \ |
- return Local<Type##Array>(); \ |
- } \ |
- i::Handle<i::JSArrayBuffer> buffer = \ |
- Utils::OpenHandle(*shared_array_buffer); \ |
- i::Handle<i::JSTypedArray> obj = isolate->factory()->NewJSTypedArray( \ |
- i::kExternal##Type##Array, buffer, byte_offset, length); \ |
- return Utils::ToLocal##Type##Array(obj); \ |
+#define TYPED_ARRAY_NEW(Type, type, TYPE, ctype, size) \ |
+ Local<Type##Array> Type##Array::New(Local<ArrayBuffer> array_buffer, \ |
+ size_t byte_offset, size_t length) { \ |
+ i::Isolate* isolate = Utils::OpenHandle(*array_buffer)->GetIsolate(); \ |
+ LOG_API(isolate, v8_##Type##Array_New, \ |
+ "v8::" #Type "Array::New(Local<ArrayBuffer>, size_t, size_t)"); \ |
+ ENTER_V8(isolate); \ |
+ if (!Utils::ApiCheck(length <= static_cast<size_t>(i::Smi::kMaxValue), \ |
+ "v8::" #Type \ |
+ "Array::New(Local<ArrayBuffer>, size_t, size_t)", \ |
+ "length exceeds max allowed value")) { \ |
+ return Local<Type##Array>(); \ |
+ } \ |
+ i::Handle<i::JSArrayBuffer> buffer = Utils::OpenHandle(*array_buffer); \ |
+ i::Handle<i::JSTypedArray> obj = isolate->factory()->NewJSTypedArray( \ |
+ i::kExternal##Type##Array, buffer, byte_offset, length); \ |
+ return Utils::ToLocal##Type##Array(obj); \ |
+ } \ |
+ Local<Type##Array> Type##Array::New( \ |
+ Local<SharedArrayBuffer> shared_array_buffer, size_t byte_offset, \ |
+ size_t length) { \ |
+ CHECK(i::FLAG_harmony_sharedarraybuffer); \ |
+ i::Isolate* isolate = \ |
+ Utils::OpenHandle(*shared_array_buffer)->GetIsolate(); \ |
+ LOG_API(isolate, v8_##Type##Array_New, "v8::" #Type "Array::New"); \ |
+ ENTER_V8(isolate); \ |
+ if (!Utils::ApiCheck( \ |
+ length <= static_cast<size_t>(i::Smi::kMaxValue), \ |
+ "v8::" #Type \ |
+ "Array::New(Local<SharedArrayBuffer>, size_t, size_t)", \ |
+ "length exceeds max allowed value")) { \ |
+ return Local<Type##Array>(); \ |
+ } \ |
+ i::Handle<i::JSArrayBuffer> buffer = \ |
+ Utils::OpenHandle(*shared_array_buffer); \ |
+ i::Handle<i::JSTypedArray> obj = isolate->factory()->NewJSTypedArray( \ |
+ i::kExternal##Type##Array, buffer, byte_offset, length); \ |
+ return Utils::ToLocal##Type##Array(obj); \ |
} |
- |
TYPED_ARRAYS(TYPED_ARRAY_NEW) |
#undef TYPED_ARRAY_NEW |
@@ -6883,7 +6911,7 @@ Local<DataView> DataView::New(Local<ArrayBuffer> array_buffer, |
size_t byte_offset, size_t byte_length) { |
i::Handle<i::JSArrayBuffer> buffer = Utils::OpenHandle(*array_buffer); |
i::Isolate* isolate = buffer->GetIsolate(); |
- LOG_API(isolate, "v8::DataView::New(Local<ArrayBuffer>, size_t, size_t)"); |
+ LOG_API(isolate, v8_DataView_New, "v8::DataView::New"); |
ENTER_V8(isolate); |
i::Handle<i::JSDataView> obj = |
isolate->factory()->NewJSDataView(buffer, byte_offset, byte_length); |
@@ -6896,8 +6924,7 @@ Local<DataView> DataView::New(Local<SharedArrayBuffer> shared_array_buffer, |
CHECK(i::FLAG_harmony_sharedarraybuffer); |
i::Handle<i::JSArrayBuffer> buffer = Utils::OpenHandle(*shared_array_buffer); |
i::Isolate* isolate = buffer->GetIsolate(); |
- LOG_API(isolate, |
- "v8::DataView::New(Local<SharedArrayBuffer>, size_t, size_t)"); |
+ LOG_API(isolate, v8_DataView_New, "v8::DataView::New"); |
ENTER_V8(isolate); |
i::Handle<i::JSDataView> obj = |
isolate->factory()->NewJSDataView(buffer, byte_offset, byte_length); |
@@ -6913,7 +6940,7 @@ bool v8::SharedArrayBuffer::IsExternal() const { |
v8::SharedArrayBuffer::Contents v8::SharedArrayBuffer::Externalize() { |
i::Handle<i::JSArrayBuffer> self = Utils::OpenHandle(this); |
i::Isolate* isolate = self->GetIsolate(); |
- Utils::ApiCheck(!self->is_external(), "v8::SharedArrayBuffer::Externalize", |
+ Utils::ApiCheck(!self->is_external(), "v8_SharedArrayBuffer_Externalize", |
"SharedArrayBuffer already externalized"); |
self->set_is_external(true); |
isolate->heap()->UnregisterArrayBuffer(*self); |
@@ -6941,7 +6968,7 @@ Local<SharedArrayBuffer> v8::SharedArrayBuffer::New(Isolate* isolate, |
size_t byte_length) { |
CHECK(i::FLAG_harmony_sharedarraybuffer); |
i::Isolate* i_isolate = reinterpret_cast<i::Isolate*>(isolate); |
- LOG_API(i_isolate, "v8::SharedArrayBuffer::New(size_t)"); |
+ LOG_API(i_isolate, v8_SharedArrayBuffer_New, "v8::SharedArrayBuffer::New"); |
ENTER_V8(i_isolate); |
i::Handle<i::JSArrayBuffer> obj = |
i_isolate->factory()->NewJSArrayBuffer(i::SharedFlag::kShared); |
@@ -6958,7 +6985,7 @@ Local<SharedArrayBuffer> v8::SharedArrayBuffer::New( |
// Embedders must guarantee that the external backing store is valid. |
CHECK(byte_length == 0 || data != NULL); |
i::Isolate* i_isolate = reinterpret_cast<i::Isolate*>(isolate); |
- LOG_API(i_isolate, "v8::SharedArrayBuffer::New(void*, size_t)"); |
+ LOG_API(i_isolate, v8_SharedArrayBuffer_New, "v8::SharedArrayBuffer::New"); |
ENTER_V8(i_isolate); |
i::Handle<i::JSArrayBuffer> obj = |
i_isolate->factory()->NewJSArrayBuffer(i::SharedFlag::kShared); |
@@ -6971,7 +6998,7 @@ Local<SharedArrayBuffer> v8::SharedArrayBuffer::New( |
Local<Symbol> v8::Symbol::New(Isolate* isolate, Local<String> name) { |
i::Isolate* i_isolate = reinterpret_cast<i::Isolate*>(isolate); |
- LOG_API(i_isolate, "Symbol::New()"); |
+ LOG_API(i_isolate, Symbol_New, "Symbol::New"); |
ENTER_V8(i_isolate); |
i::Handle<i::Symbol> result = i_isolate->factory()->NewSymbol(); |
if (!name.IsEmpty()) result->set_name(*Utils::OpenHandle(*name)); |
@@ -7044,7 +7071,7 @@ Local<Symbol> v8::Symbol::GetIsConcatSpreadable(Isolate* isolate) { |
Local<Private> v8::Private::New(Isolate* isolate, Local<String> name) { |
i::Isolate* i_isolate = reinterpret_cast<i::Isolate*>(isolate); |
- LOG_API(i_isolate, "Private::New()"); |
+ LOG_API(i_isolate, Private_New, "Private::New"); |
ENTER_V8(i_isolate); |
i::Handle<i::Symbol> symbol = i_isolate->factory()->NewPrivateSymbol(); |
if (!name.IsEmpty()) symbol->set_name(*Utils::OpenHandle(*name)); |
@@ -7970,11 +7997,10 @@ String::Value::~Value() { |
i::DeleteArray(str_); |
} |
- |
#define DEFINE_ERROR(NAME, name) \ |
Local<Value> Exception::NAME(v8::Local<v8::String> raw_message) { \ |
i::Isolate* isolate = i::Isolate::Current(); \ |
- LOG_API(isolate, #NAME); \ |
+ LOG_API(isolate, NAME, #NAME); \ |
ENTER_V8(isolate); \ |
i::Object* error; \ |
{ \ |
@@ -8090,7 +8116,7 @@ void Debug::SendCommand(Isolate* isolate, |
MaybeLocal<Value> Debug::Call(Local<Context> context, |
v8::Local<v8::Function> fun, |
v8::Local<v8::Value> data) { |
- PREPARE_FOR_EXECUTION(context, "v8::Debug::Call()", Value); |
+ PREPARE_FOR_EXECUTION(context, v8_Debug_Call, "v8::Debug::Call", Value); |
i::Handle<i::Object> data_obj; |
if (data.IsEmpty()) { |
data_obj = isolate->factory()->undefined_value(); |
@@ -8115,7 +8141,8 @@ Local<Value> Debug::Call(v8::Local<v8::Function> fun, |
MaybeLocal<Value> Debug::GetMirror(Local<Context> context, |
v8::Local<v8::Value> obj) { |
- PREPARE_FOR_EXECUTION(context, "v8::Debug::GetMirror()", Value); |
+ PREPARE_FOR_EXECUTION(context, v8_Debug_GetMirror, "v8::Debug::GetMirror", |
+ Value); |
i::Debug* isolate_debug = isolate->debug(); |
has_pending_exception = !isolate_debug->Load(); |
RETURN_ON_FAILED_EXECUTION(Value); |
@@ -8835,6 +8862,9 @@ void InvokeAccessorGetterCallback( |
v8::AccessorNameGetterCallback getter) { |
// Leaving JavaScript. |
Isolate* isolate = reinterpret_cast<Isolate*>(info.GetIsolate()); |
+ RuntimeCallTimerScope timer( |
+ isolate, |
+ &isolate->counters()->runtime_call_stats()->AccessorGetterCallback); |
Address getter_address = reinterpret_cast<Address>(reinterpret_cast<intptr_t>( |
getter)); |
VMState<EXTERNAL> state(isolate); |
@@ -8846,6 +8876,9 @@ void InvokeAccessorGetterCallback( |
void InvokeFunctionCallback(const v8::FunctionCallbackInfo<v8::Value>& info, |
v8::FunctionCallback callback) { |
Isolate* isolate = reinterpret_cast<Isolate*>(info.GetIsolate()); |
+ RuntimeCallTimerScope timer( |
+ isolate, |
+ &isolate->counters()->runtime_call_stats()->InvokeFunctionCallback); |
Address callback_address = |
reinterpret_cast<Address>(reinterpret_cast<intptr_t>(callback)); |
VMState<EXTERNAL> state(isolate); |