Permalink
Browse files

deps: ensure V8 5.4 ABI compatibility

V8 5.5 is not ABI-compatible with 5.4.
Make the necessary changes to V8's header files so that native addons
compiled against a previous version of node can still be loaded..

* Remove new fields from {Indexed|Named}PropertyHandlerConfiguration.
* Revert "[tracing] Support ConvertableToTraceFormat argument type."
  * This reverts commit 4810f41a521227ccab4f231aa4a439d790428953 from V8.
* Remove tests for getOwnPropertyDescriptor and defineProperty interceptors.

PR-URL: #11029
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Myles Borins <myles.borins@gmail.com>
  • Loading branch information...
targos authored and italoacasas committed Sep 29, 2016
1 parent fe2f058 commit 22e2288f3a2a9995fcd0554382b3382008a3166e
@@ -36,22 +36,19 @@ class TraceObject {
TraceObject() {}
~TraceObject();
- void Initialize(
- char phase, const uint8_t* category_enabled_flag, const char* name,
- const char* scope, uint64_t id, uint64_t bind_id, int num_args,
- const char** arg_names, const uint8_t* arg_types,
- const uint64_t* arg_values,
- std::unique_ptr<v8::ConvertableToTraceFormat>* arg_convertables,
- unsigned int flags);
+ void Initialize(char phase, const uint8_t* category_enabled_flag,
+ const char* name, const char* scope, uint64_t id,
+ uint64_t bind_id, int num_args, const char** arg_names,
+ const uint8_t* arg_types, const uint64_t* arg_values,
+ unsigned int flags);
void UpdateDuration();
- void InitializeForTesting(
- char phase, const uint8_t* category_enabled_flag, const char* name,
- const char* scope, uint64_t id, uint64_t bind_id, int num_args,
- const char** arg_names, const uint8_t* arg_types,
- const uint64_t* arg_values,
- std::unique_ptr<v8::ConvertableToTraceFormat>* arg_convertables,
- unsigned int flags, int pid, int tid, int64_t ts, int64_t tts,
- uint64_t duration, uint64_t cpu_duration);
+ void InitializeForTesting(char phase, const uint8_t* category_enabled_flag,
+ const char* name, const char* scope, uint64_t id,
+ uint64_t bind_id, int num_args,
+ const char** arg_names, const uint8_t* arg_types,
+ const uint64_t* arg_values, unsigned int flags,
+ int pid, int tid, int64_t ts, int64_t tts,
+ uint64_t duration, uint64_t cpu_duration);
int pid() const { return pid_; }
int tid() const { return tid_; }
@@ -67,9 +64,6 @@ class TraceObject {
const char** arg_names() { return arg_names_; }
uint8_t* arg_types() { return arg_types_; }
ArgValue* arg_values() { return arg_values_; }
- std::unique_ptr<v8::ConvertableToTraceFormat>* arg_convertables() {
- return arg_convertables_;
- }
unsigned int flags() const { return flags_; }
int64_t ts() { return ts_; }
int64_t tts() { return tts_; }
@@ -85,12 +79,10 @@ class TraceObject {
const uint8_t* category_enabled_flag_;
uint64_t id_;
uint64_t bind_id_;
- int num_args_ = 0;
+ int num_args_;
const char* arg_names_[kTraceMaxNumArgs];
uint8_t arg_types_[kTraceMaxNumArgs];
ArgValue arg_values_[kTraceMaxNumArgs];
- std::unique_ptr<v8::ConvertableToTraceFormat>
- arg_convertables_[kTraceMaxNumArgs];
char* parameter_copy_storage_ = nullptr;
unsigned int flags_;
int64_t ts_;
@@ -238,13 +230,11 @@ class TracingController {
void Initialize(TraceBuffer* trace_buffer);
const uint8_t* GetCategoryGroupEnabled(const char* category_group);
static const char* GetCategoryGroupName(const uint8_t* category_enabled_flag);
- uint64_t AddTraceEvent(
- char phase, const uint8_t* category_enabled_flag, const char* name,
- const char* scope, uint64_t id, uint64_t bind_id, int32_t num_args,
- const char** arg_names, const uint8_t* arg_types,
- const uint64_t* arg_values,
- std::unique_ptr<v8::ConvertableToTraceFormat>* arg_convertables,
- unsigned int flags);
+ uint64_t AddTraceEvent(char phase, const uint8_t* category_enabled_flag,
+ const char* name, const char* scope, uint64_t id,
+ uint64_t bind_id, int32_t num_args,
+ const char** arg_names, const uint8_t* arg_types,
+ const uint64_t* arg_values, unsigned int flags);
void UpdateTraceEventDuration(const uint8_t* category_enabled_flag,
const char* name, uint64_t handle);
@@ -7,8 +7,6 @@
#include <stddef.h>
#include <stdint.h>
-#include <memory>
-#include <string>
namespace v8 {
@@ -19,38 +17,24 @@ class Isolate;
*/
class Task {
public:
- virtual ~Task() = default;
+ virtual ~Task() {}
virtual void Run() = 0;
};
+
/**
- * An IdleTask represents a unit of work to be performed in idle time.
- * The Run method is invoked with an argument that specifies the deadline in
- * seconds returned by MonotonicallyIncreasingTime().
- * The idle task is expected to complete by this deadline.
- */
+* An IdleTask represents a unit of work to be performed in idle time.
+* The Run method is invoked with an argument that specifies the deadline in
+* seconds returned by MonotonicallyIncreasingTime().
+* The idle task is expected to complete by this deadline.
+*/
class IdleTask {
public:
- virtual ~IdleTask() = default;
+ virtual ~IdleTask() {}
virtual void Run(double deadline_in_seconds) = 0;
};
-/**
- * The interface represents complex arguments to trace events.
- */
-class ConvertableToTraceFormat {
- public:
- virtual ~ConvertableToTraceFormat() = default;
-
- /**
- * Append the class info to the provided |out| string. The appended
- * data must be a valid JSON object. Strings must be properly quoted, and
- * escaped. There is no processing applied to the content after it is
- * appended.
- */
- virtual void AppendAsTraceFormat(std::string* out) const = 0;
-};
/**
* V8 Platform abstraction layer.
@@ -70,7 +54,7 @@ class Platform {
kLongRunningTask
};
- virtual ~Platform() = default;
+ virtual ~Platform() {}
/**
* Gets the number of threads that are used to execute background tasks. Is
@@ -174,25 +158,6 @@ class Platform {
return 0;
}
- /**
- * Adds a trace event to the platform tracing system. This function call is
- * usually the result of a TRACE_* macro from trace_event_common.h when
- * tracing and the category of the particular trace are enabled. It is not
- * advisable to call this function on its own; it is really only meant to be
- * used by the trace macros. The returned handle can be used by
- * UpdateTraceEventDuration to update the duration of COMPLETE events.
- */
- virtual uint64_t AddTraceEvent(
- char phase, const uint8_t* category_enabled_flag, const char* name,
- const char* scope, uint64_t id, uint64_t bind_id, int32_t num_args,
- const char** arg_names, const uint8_t* arg_types,
- const uint64_t* arg_values,
- std::unique_ptr<ConvertableToTraceFormat>* arg_convertables,
- unsigned int flags) {
- return AddTraceEvent(phase, category_enabled_flag, name, scope, id, bind_id,
- num_args, arg_names, arg_types, arg_values, flags);
- }
-
/**
* Sets the duration field of a COMPLETE trace event. It must be called with
* the handle returned from AddTraceEvent().
View
@@ -5228,27 +5228,6 @@ struct NamedPropertyHandlerConfiguration {
query(query),
deleter(deleter),
enumerator(enumerator),
- definer(0),
- descriptor(0),
- data(data),
- flags(flags) {}
-
- NamedPropertyHandlerConfiguration(
- GenericNamedPropertyGetterCallback getter,
- GenericNamedPropertySetterCallback setter,
- GenericNamedPropertyDescriptorCallback descriptor,
- GenericNamedPropertyDeleterCallback deleter,
- GenericNamedPropertyEnumeratorCallback enumerator,
- GenericNamedPropertyDefinerCallback definer,
- Local<Value> data = Local<Value>(),
- PropertyHandlerFlags flags = PropertyHandlerFlags::kNone)
- : getter(getter),
- setter(setter),
- query(0),
- deleter(deleter),
- enumerator(enumerator),
- definer(definer),
- descriptor(descriptor),
data(data),
flags(flags) {}
@@ -5257,8 +5236,6 @@ struct NamedPropertyHandlerConfiguration {
GenericNamedPropertyQueryCallback query;
GenericNamedPropertyDeleterCallback deleter;
GenericNamedPropertyEnumeratorCallback enumerator;
- GenericNamedPropertyDefinerCallback definer;
- GenericNamedPropertyDescriptorCallback descriptor;
Local<Value> data;
PropertyHandlerFlags flags;
};
@@ -5279,27 +5256,6 @@ struct IndexedPropertyHandlerConfiguration {
query(query),
deleter(deleter),
enumerator(enumerator),
- definer(0),
- descriptor(0),
- data(data),
- flags(flags) {}
-
- IndexedPropertyHandlerConfiguration(
- IndexedPropertyGetterCallback getter,
- IndexedPropertySetterCallback setter,
- IndexedPropertyDescriptorCallback descriptor,
- IndexedPropertyDeleterCallback deleter,
- IndexedPropertyEnumeratorCallback enumerator,
- IndexedPropertyDefinerCallback definer,
- Local<Value> data = Local<Value>(),
- PropertyHandlerFlags flags = PropertyHandlerFlags::kNone)
- : getter(getter),
- setter(setter),
- query(0),
- deleter(deleter),
- enumerator(enumerator),
- definer(definer),
- descriptor(descriptor),
data(data),
flags(flags) {}
@@ -5308,8 +5264,6 @@ struct IndexedPropertyHandlerConfiguration {
IndexedPropertyQueryCallback query;
IndexedPropertyDeleterCallback deleter;
IndexedPropertyEnumeratorCallback enumerator;
- IndexedPropertyDefinerCallback definer;
- IndexedPropertyDescriptorCallback descriptor;
Local<Value> data;
PropertyHandlerFlags flags;
};
@@ -8289,8 +8243,8 @@ class Internals {
static const int kNodeIsPartiallyDependentShift = 4;
static const int kNodeIsActiveShift = 4;
- static const int kJSObjectType = 0xb9;
- static const int kJSApiObjectType = 0xb8;
+ static const int kJSObjectType = 0xb7;
+ static const int kJSApiObjectType = 0xb6;
static const int kFirstNonstringType = 0x80;
static const int kOddballType = 0x83;
static const int kForeignType = 0x87;
View
@@ -1579,8 +1579,8 @@ void ObjectTemplate::SetNamedPropertyHandler(
void ObjectTemplate::SetHandler(
const NamedPropertyHandlerConfiguration& config) {
ObjectTemplateSetNamedPropertyHandler(
- this, config.getter, config.setter, config.query, config.descriptor,
- config.deleter, config.enumerator, config.definer, config.data,
+ this, config.getter, config.setter, config.query, nullptr,
+ config.deleter, config.enumerator, nullptr, config.data,
config.flags);
}
@@ -1641,14 +1641,14 @@ void ObjectTemplate::SetAccessCheckCallbackAndHandler(
SET_FIELD_WRAPPED(info, set_callback, callback);
auto named_interceptor = CreateInterceptorInfo(
isolate, named_handler.getter, named_handler.setter, named_handler.query,
- named_handler.descriptor, named_handler.deleter, named_handler.enumerator,
- named_handler.definer, named_handler.data, named_handler.flags);
+ nullptr, named_handler.deleter, named_handler.enumerator,
+ nullptr, named_handler.data, named_handler.flags);
info->set_named_interceptor(*named_interceptor);
auto indexed_interceptor = CreateInterceptorInfo(
isolate, indexed_handler.getter, indexed_handler.setter,
- indexed_handler.query, indexed_handler.descriptor,
+ indexed_handler.query, nullptr,
indexed_handler.deleter, indexed_handler.enumerator,
- indexed_handler.definer, indexed_handler.data, indexed_handler.flags);
+ nullptr, indexed_handler.data, indexed_handler.flags);
info->set_indexed_interceptor(*indexed_interceptor);
if (data.IsEmpty()) {
@@ -1668,9 +1668,9 @@ void ObjectTemplate::SetHandler(
auto cons = EnsureConstructor(isolate, this);
EnsureNotInstantiated(cons, "v8::ObjectTemplate::SetHandler");
auto obj = CreateInterceptorInfo(isolate, config.getter, config.setter,
- config.query, config.descriptor,
+ config.query, nullptr,
config.deleter, config.enumerator,
- config.definer, config.data, config.flags);
+ nullptr, config.data, config.flags);
cons->set_indexed_property_handler(*obj);
}
@@ -178,17 +178,16 @@ double DefaultPlatform::MonotonicallyIncreasingTime() {
static_cast<double>(base::Time::kMicrosecondsPerSecond);
}
+
uint64_t DefaultPlatform::AddTraceEvent(
char phase, const uint8_t* category_enabled_flag, const char* name,
const char* scope, uint64_t id, uint64_t bind_id, int num_args,
const char** arg_names, const uint8_t* arg_types,
- const uint64_t* arg_values,
- std::unique_ptr<v8::ConvertableToTraceFormat>* arg_convertables,
- unsigned int flags) {
+ const uint64_t* arg_values, unsigned int flags) {
if (tracing_controller_) {
return tracing_controller_->AddTraceEvent(
phase, category_enabled_flag, name, scope, id, bind_id, num_args,
- arg_names, arg_types, arg_values, arg_convertables, flags);
+ arg_names, arg_types, arg_values, flags);
}
return 0;
@@ -53,13 +53,12 @@ class DefaultPlatform : public Platform {
const char* GetCategoryGroupName(
const uint8_t* category_enabled_flag) override;
using Platform::AddTraceEvent;
- uint64_t AddTraceEvent(
- char phase, const uint8_t* category_enabled_flag, const char* name,
- const char* scope, uint64_t id, uint64_t bind_id, int32_t num_args,
- const char** arg_names, const uint8_t* arg_types,
- const uint64_t* arg_values,
- std::unique_ptr<v8::ConvertableToTraceFormat>* arg_convertables,
- unsigned int flags) override;
+ uint64_t AddTraceEvent(char phase, const uint8_t* category_enabled_flag,
+ const char* name, const char* scope, uint64_t id,
+ uint64_t bind_id, int32_t num_args,
+ const char** arg_names, const uint8_t* arg_types,
+ const uint64_t* arg_values,
+ unsigned int flags) override;
void UpdateTraceEventDuration(const uint8_t* category_enabled_flag,
const char* name, uint64_t handle) override;
void SetTracingController(tracing::TracingController* tracing_controller);
@@ -5,7 +5,6 @@
#include "include/libplatform/v8-tracing.h"
#include "base/trace_event/common/trace_event_common.h"
-#include "include/v8-platform.h"
#include "src/base/platform/platform.h"
#include "src/base/platform/time.h"
@@ -31,13 +30,11 @@ V8_INLINE static void CopyTraceObjectParameter(char** buffer,
}
}
-void TraceObject::Initialize(
- char phase, const uint8_t* category_enabled_flag, const char* name,
- const char* scope, uint64_t id, uint64_t bind_id, int num_args,
- const char** arg_names, const uint8_t* arg_types,
- const uint64_t* arg_values,
- std::unique_ptr<v8::ConvertableToTraceFormat>* arg_convertables,
- unsigned int flags) {
+void TraceObject::Initialize(char phase, const uint8_t* category_enabled_flag,
+ const char* name, const char* scope, uint64_t id,
+ uint64_t bind_id, int num_args,
+ const char** arg_names, const uint8_t* arg_types,
+ const uint64_t* arg_values, unsigned int flags) {
pid_ = base::OS::GetCurrentProcessId();
tid_ = base::OS::GetCurrentThreadId();
phase_ = phase;
@@ -58,8 +55,6 @@ void TraceObject::Initialize(
arg_names_[i] = arg_names[i];
arg_values_[i].as_uint = arg_values[i];
arg_types_[i] = arg_types[i];
- if (arg_types[i] == TRACE_VALUE_TYPE_CONVERTABLE)
- arg_convertables_[i] = std::move(arg_convertables[i]);
}
bool copy = !!(flags & TRACE_EVENT_FLAG_COPY);
@@ -112,10 +107,8 @@ void TraceObject::InitializeForTesting(
char phase, const uint8_t* category_enabled_flag, const char* name,
const char* scope, uint64_t id, uint64_t bind_id, int num_args,
const char** arg_names, const uint8_t* arg_types,
- const uint64_t* arg_values,
- std::unique_ptr<v8::ConvertableToTraceFormat>* arg_convertables,
- unsigned int flags, int pid, int tid, int64_t ts, int64_t tts,
- uint64_t duration, uint64_t cpu_duration) {
+ const uint64_t* arg_values, unsigned int flags, int pid, int tid,
+ int64_t ts, int64_t tts, uint64_t duration, uint64_t cpu_duration) {
pid_ = pid;
tid_ = tid;
phase_ = phase;
Oops, something went wrong.

0 comments on commit 22e2288

Please sign in to comment.