Merge pull request #34 from electron/remove-compat
Remove native_mate/compat.h
This commit is contained in:
commit
ddec87224c
11 changed files with 36 additions and 178 deletions
|
@ -31,7 +31,7 @@ Arguments::Arguments()
|
||||||
insufficient_arguments_(false) {
|
insufficient_arguments_(false) {
|
||||||
}
|
}
|
||||||
|
|
||||||
Arguments::Arguments(const MATE_METHOD_ARGS_TYPE& info)
|
Arguments::Arguments(const v8::FunctionCallbackInfo<v8::Value>& info)
|
||||||
: isolate_(info.GetIsolate()),
|
: isolate_(info.GetIsolate()),
|
||||||
info_(&info),
|
info_(&info),
|
||||||
next_(0),
|
next_(0),
|
||||||
|
@ -57,16 +57,16 @@ v8::Local<v8::Value> Arguments::ThrowError() const {
|
||||||
}
|
}
|
||||||
|
|
||||||
v8::Local<v8::Value> Arguments::ThrowError(const std::string& message) const {
|
v8::Local<v8::Value> Arguments::ThrowError(const std::string& message) const {
|
||||||
MATE_THROW_EXCEPTION(isolate_, v8::Exception::Error(
|
isolate_->ThrowException(v8::Exception::Error(
|
||||||
StringToV8(isolate_, message)));
|
StringToV8(isolate_, message)));
|
||||||
return MATE_UNDEFINED(isolate_);
|
return v8::Undefined(isolate_);
|
||||||
}
|
}
|
||||||
|
|
||||||
v8::Local<v8::Value> Arguments::ThrowTypeError(
|
v8::Local<v8::Value> Arguments::ThrowTypeError(
|
||||||
const std::string& message) const {
|
const std::string& message) const {
|
||||||
MATE_THROW_EXCEPTION(isolate_, v8::Exception::TypeError(
|
isolate_->ThrowException(v8::Exception::TypeError(
|
||||||
StringToV8(isolate_, message)));
|
StringToV8(isolate_, message)));
|
||||||
return MATE_UNDEFINED(isolate_);
|
return v8::Undefined(isolate_);
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace mate
|
} // namespace mate
|
||||||
|
|
|
@ -6,7 +6,6 @@
|
||||||
#define NATIVE_MATE_ARGUMENTS_H_
|
#define NATIVE_MATE_ARGUMENTS_H_
|
||||||
|
|
||||||
#include "base/macros.h"
|
#include "base/macros.h"
|
||||||
#include "native_mate/compat.h"
|
|
||||||
#include "native_mate/converter.h"
|
#include "native_mate/converter.h"
|
||||||
|
|
||||||
namespace mate {
|
namespace mate {
|
||||||
|
@ -17,7 +16,7 @@ namespace mate {
|
||||||
class Arguments {
|
class Arguments {
|
||||||
public:
|
public:
|
||||||
Arguments();
|
Arguments();
|
||||||
explicit Arguments(const MATE_METHOD_ARGS_TYPE& info);
|
explicit Arguments(const v8::FunctionCallbackInfo<v8::Value>& info);
|
||||||
~Arguments();
|
~Arguments();
|
||||||
|
|
||||||
v8::Local<v8::Object> GetHolder() const {
|
v8::Local<v8::Object> GetHolder() const {
|
||||||
|
@ -75,12 +74,10 @@ class Arguments {
|
||||||
return info_->Length();
|
return info_->Length();
|
||||||
}
|
}
|
||||||
|
|
||||||
#if NODE_VERSION_AT_LEAST(0, 11, 0)
|
|
||||||
template<typename T>
|
template<typename T>
|
||||||
void Return(T val) {
|
void Return(T val) {
|
||||||
info_->GetReturnValue().Set(ConvertToV8(isolate_, val));
|
info_->GetReturnValue().Set(ConvertToV8(isolate_, val));
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
v8::Local<v8::Value> PeekNext() const;
|
v8::Local<v8::Value> PeekNext() const;
|
||||||
|
|
||||||
|
@ -92,7 +89,7 @@ class Arguments {
|
||||||
|
|
||||||
private:
|
private:
|
||||||
v8::Isolate* isolate_;
|
v8::Isolate* isolate_;
|
||||||
const MATE_METHOD_ARGS_TYPE* info_;
|
const v8::FunctionCallbackInfo<v8::Value>* info_;
|
||||||
int next_;
|
int next_;
|
||||||
bool insufficient_arguments_;
|
bool insufficient_arguments_;
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,134 +0,0 @@
|
||||||
// Copyright 2014 Cheng Zhao. All rights reserved.
|
|
||||||
// Use of this source code is governed by MIT license that can be found in the
|
|
||||||
// LICENSE file.
|
|
||||||
|
|
||||||
#ifndef NATIVE_MATE_COMPAT_H_
|
|
||||||
#define NATIVE_MATE_COMPAT_H_
|
|
||||||
|
|
||||||
#include "node_version.h"
|
|
||||||
|
|
||||||
#if NODE_VERSION_AT_LEAST(0, 11, 0)
|
|
||||||
|
|
||||||
#define MATE_HANDLE_SCOPE(isolate) v8::HandleScope handle_scope(isolate)
|
|
||||||
|
|
||||||
#define MATE_METHOD_ARGS_TYPE v8::FunctionCallbackInfo<v8::Value>
|
|
||||||
#define MATE_METHOD_RETURN_TYPE void
|
|
||||||
|
|
||||||
#define MATE_METHOD_RETURN_VALUE(value) return info.GetReturnValue().Set(value)
|
|
||||||
#define MATE_METHOD_RETURN_UNDEFINED() return
|
|
||||||
#define MATE_METHOD_RETURN_NULL() return info.GetReturnValue().SetNull()
|
|
||||||
#define MATE_METHOD_RETURN(value) args.Return(value)
|
|
||||||
|
|
||||||
#define MATE_STRING_NEW(isolate, data) \
|
|
||||||
v8::String::NewFromUtf8(isolate, data, v8::String::kNormalString)
|
|
||||||
#define MATE_STRING_NEW_FROM_UTF8(isolate, data, length) \
|
|
||||||
v8::String::NewFromUtf8(isolate, data, v8::String::kNormalString, length)
|
|
||||||
#define MATE_STRING_NEW_FROM_UTF16(isolate, data, length) \
|
|
||||||
v8::String::NewFromTwoByte(isolate, data, v8::String::kNormalString, length)
|
|
||||||
#define MATE_STRING_NEW_SYMBOL(isolate, data, length) \
|
|
||||||
v8::String::NewFromUtf8(isolate, data, v8::String::kInternalizedString, length)
|
|
||||||
|
|
||||||
#define MATE_UNDEFINED(isolate) v8::Undefined(isolate)
|
|
||||||
#define MATE_TRUE(isolate) v8::True(isolate)
|
|
||||||
#define MATE_FALSE(isolate) v8::False(isolate)
|
|
||||||
#define MATE_ARRAY_NEW(isolate, size) v8::Array::New(isolate, size)
|
|
||||||
#define MATE_NUMBER_NEW(isolate, data) v8::Number::New(isolate, data)
|
|
||||||
#define MATE_INTEGER_NEW(isolate, data) v8::Integer::New(isolate, data)
|
|
||||||
#define MATE_INTEGER_NEW_UNSIGNED(isolate, data) \
|
|
||||||
v8::Integer::NewFromUnsigned(isolate, data)
|
|
||||||
#define MATE_EXTERNAL_NEW(isolate, data) v8::External::New(isolate, data)
|
|
||||||
#define MATE_BOOLEAN_NEW(isolate, data) v8::Boolean::New(isolate, data)
|
|
||||||
#define MATE_OBJECT_NEW(isolate) v8::Object::New(isolate)
|
|
||||||
|
|
||||||
#define MATE_SET_INTERNAL_FIELD_POINTER(object, index, value) \
|
|
||||||
object->SetAlignedPointerInInternalField(index, value)
|
|
||||||
#define MATE_GET_INTERNAL_FIELD_POINTER(object, index) \
|
|
||||||
object->GetAlignedPointerFromInternalField(index)
|
|
||||||
|
|
||||||
#define MATE_PERSISTENT_INIT(isolate, handle, value) \
|
|
||||||
handle(isolate, value)
|
|
||||||
#define MATE_PERSISTENT_ASSIGN(type, isolate, handle, value) \
|
|
||||||
handle.Reset(isolate, value)
|
|
||||||
#define MATE_PERSISTENT_RESET(handle) \
|
|
||||||
handle.Reset()
|
|
||||||
#define MATE_PERSISTENT_TO_LOCAL(type, isolate, handle) \
|
|
||||||
v8::Local<type>::New(isolate, handle)
|
|
||||||
#define MATE_PERSISTENT_SET_WEAK(handle, parameter, callback) \
|
|
||||||
handle.SetWeak(parameter, callback)
|
|
||||||
|
|
||||||
#define MATE_WEAK_CALLBACK(name, v8_type, c_type) \
|
|
||||||
void name(const v8::WeakCallbackData<v8_type, c_type>& data)
|
|
||||||
#define MATE_WEAK_CALLBACK_INIT(c_type) \
|
|
||||||
c_type* self = data.GetParameter()
|
|
||||||
|
|
||||||
#define MATE_THROW_EXCEPTION(isolate, value) \
|
|
||||||
isolate->ThrowException(value)
|
|
||||||
|
|
||||||
#else // Node 0.8 and 0.10
|
|
||||||
|
|
||||||
#define MATE_HANDLE_SCOPE(isolate) v8::HandleScope handle_scope
|
|
||||||
|
|
||||||
#define MATE_METHOD_ARGS_TYPE v8::Arguments
|
|
||||||
#define MATE_METHOD_RETURN_TYPE v8::Local<v8::Value>
|
|
||||||
|
|
||||||
#define MATE_METHOD_RETURN_VALUE(value) return value
|
|
||||||
#define MATE_METHOD_RETURN_UNDEFINED() return v8::Undefined()
|
|
||||||
#define MATE_METHOD_RETURN_NULL() return v8::Null()
|
|
||||||
#define MATE_METHOD_RETURN(value) \
|
|
||||||
MATE_METHOD_RETURN_VALUE(ConvertToV8(args.isolate(), value))
|
|
||||||
|
|
||||||
#define MATE_STRING_NEW(isolate, data) \
|
|
||||||
v8::String::New(data)
|
|
||||||
#define MATE_STRING_NEW_FROM_UTF8(isolate, data, length) \
|
|
||||||
v8::String::New(data, length)
|
|
||||||
#define MATE_STRING_NEW_FROM_UTF16(isolate, data, length) \
|
|
||||||
v8::String::NewFromTwoByte(data, v8::String::kNormalString, length)
|
|
||||||
#define MATE_STRING_NEW_SYMBOL(isolate, data, length) \
|
|
||||||
v8::String::NewSymbol(data, length)
|
|
||||||
|
|
||||||
#define MATE_UNDEFINED(isolate) v8::Undefined()
|
|
||||||
#define MATE_TRUE(isolate) v8::True()
|
|
||||||
#define MATE_FALSE(isolate) v8::False()
|
|
||||||
#define MATE_ARRAY_NEW(isolate, size) v8::Array::New(size)
|
|
||||||
#define MATE_NUMBER_NEW(isolate, data) v8::Number::New(data)
|
|
||||||
#define MATE_INTEGER_NEW(isolate, data) v8::Integer::New(data)
|
|
||||||
#define MATE_INTEGER_NEW_UNSIGNED(isolate, data) \
|
|
||||||
v8::Integer::NewFromUnsigned(data)
|
|
||||||
#define MATE_EXTERNAL_NEW(isolate, data) v8::External::New(data)
|
|
||||||
#define MATE_BOOLEAN_NEW(isolate, data) v8::Boolean::New(data)
|
|
||||||
#define MATE_OBJECT_NEW(isolate) v8::Object::New()
|
|
||||||
|
|
||||||
#define MATE_SET_INTERNAL_FIELD_POINTER(object, index, value) \
|
|
||||||
object->SetPointerInInternalField(index, value)
|
|
||||||
#define MATE_GET_INTERNAL_FIELD_POINTER(object, index) \
|
|
||||||
object->GetPointerFromInternalField(index)
|
|
||||||
|
|
||||||
#define MATE_PERSISTENT_INIT(isolate, handle, value) \
|
|
||||||
handle(value)
|
|
||||||
#define MATE_PERSISTENT_ASSIGN(type, isolate, handle, value) \
|
|
||||||
handle = v8::Persistent<type>::New(value)
|
|
||||||
#define MATE_PERSISTENT_RESET(handle) \
|
|
||||||
handle.Dispose(); \
|
|
||||||
handle.Clear()
|
|
||||||
#define MATE_PERSISTENT_TO_LOCAL(type, isolate, handle) \
|
|
||||||
v8::Local<type>::New(handle)
|
|
||||||
#define MATE_PERSISTENT_SET_WEAK(handle, parameter, callback) \
|
|
||||||
handle.MakeWeak(parameter, callback)
|
|
||||||
|
|
||||||
#define MATE_WEAK_CALLBACK(name, v8_type, c_type) \
|
|
||||||
void name(v8::Persistent<v8::Value> object, void* parameter)
|
|
||||||
#define MATE_WEAK_CALLBACK_INIT(c_type) \
|
|
||||||
c_type* self = static_cast<c_type*>(parameter)
|
|
||||||
|
|
||||||
#define MATE_THROW_EXCEPTION(isolate, value) \
|
|
||||||
v8::ThrowException(value)
|
|
||||||
|
|
||||||
#endif // (NODE_MODULE_VERSION > 0x000B)
|
|
||||||
|
|
||||||
|
|
||||||
// Generally we should not provide utility macros, but this just makes things
|
|
||||||
// much more comfortable so we keep it.
|
|
||||||
#define MATE_METHOD(name) \
|
|
||||||
MATE_METHOD_RETURN_TYPE name(const MATE_METHOD_ARGS_TYPE& info)
|
|
||||||
|
|
||||||
#endif // NATIVE_MATE_COMPAT_H_
|
|
|
@ -117,11 +117,11 @@ inline WrappableBase* InvokeFactory(
|
||||||
};
|
};
|
||||||
|
|
||||||
template<typename Sig>
|
template<typename Sig>
|
||||||
MATE_METHOD_RETURN_TYPE InvokeNew(const base::Callback<Sig>& factory,
|
void InvokeNew(const base::Callback<Sig>& factory,
|
||||||
v8::Isolate* isolate, Arguments* args) {
|
v8::Isolate* isolate, Arguments* args) {
|
||||||
if (!args->IsConstructCall()) {
|
if (!args->IsConstructCall()) {
|
||||||
args->ThrowError("Requires constructor call");
|
args->ThrowError("Requires constructor call");
|
||||||
MATE_METHOD_RETURN_UNDEFINED();
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
WrappableBase* object;
|
WrappableBase* object;
|
||||||
|
@ -131,14 +131,14 @@ MATE_METHOD_RETURN_TYPE InvokeNew(const base::Callback<Sig>& factory,
|
||||||
object = internal::InvokeFactory(args, factory);
|
object = internal::InvokeFactory(args, factory);
|
||||||
if (try_catch.HasCaught()) {
|
if (try_catch.HasCaught()) {
|
||||||
try_catch.ReThrow();
|
try_catch.ReThrow();
|
||||||
MATE_METHOD_RETURN_UNDEFINED();
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!object)
|
if (!object)
|
||||||
args->ThrowError();
|
args->ThrowError();
|
||||||
|
|
||||||
MATE_METHOD_RETURN_UNDEFINED();
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace internal
|
} // namespace internal
|
||||||
|
|
|
@ -4,7 +4,6 @@
|
||||||
|
|
||||||
#include "native_mate/converter.h"
|
#include "native_mate/converter.h"
|
||||||
|
|
||||||
#include "native_mate/compat.h"
|
|
||||||
#include "v8/include/v8.h"
|
#include "v8/include/v8.h"
|
||||||
|
|
||||||
using v8::Array;
|
using v8::Array;
|
||||||
|
@ -22,7 +21,7 @@ using v8::Value;
|
||||||
namespace mate {
|
namespace mate {
|
||||||
|
|
||||||
Local<Value> Converter<bool>::ToV8(Isolate* isolate, bool val) {
|
Local<Value> Converter<bool>::ToV8(Isolate* isolate, bool val) {
|
||||||
return MATE_BOOLEAN_NEW(isolate, val);
|
return v8::Boolean::New(isolate, val);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Converter<bool>::FromV8(Isolate* isolate, Local<Value> val, bool* out) {
|
bool Converter<bool>::FromV8(Isolate* isolate, Local<Value> val, bool* out) {
|
||||||
|
@ -35,7 +34,7 @@ bool Converter<bool>::FromV8(Isolate* isolate, Local<Value> val, bool* out) {
|
||||||
#if !defined(OS_LINUX) && !defined(OS_FREEBSD)
|
#if !defined(OS_LINUX) && !defined(OS_FREEBSD)
|
||||||
Local<Value> Converter<unsigned long>::ToV8(Isolate* isolate,
|
Local<Value> Converter<unsigned long>::ToV8(Isolate* isolate,
|
||||||
unsigned long val) {
|
unsigned long val) {
|
||||||
return MATE_INTEGER_NEW(isolate, val);
|
return v8::Integer::New(isolate, val);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Converter<unsigned long>::FromV8(Isolate* isolate, Local<Value> val,
|
bool Converter<unsigned long>::FromV8(Isolate* isolate, Local<Value> val,
|
||||||
|
@ -48,7 +47,7 @@ bool Converter<unsigned long>::FromV8(Isolate* isolate, Local<Value> val,
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
Local<Value> Converter<int32_t>::ToV8(Isolate* isolate, int32_t val) {
|
Local<Value> Converter<int32_t>::ToV8(Isolate* isolate, int32_t val) {
|
||||||
return MATE_INTEGER_NEW(isolate, val);
|
return v8::Integer::New(isolate, val);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Converter<int32_t>::FromV8(Isolate* isolate, Local<Value> val,
|
bool Converter<int32_t>::FromV8(Isolate* isolate, Local<Value> val,
|
||||||
|
@ -60,7 +59,7 @@ bool Converter<int32_t>::FromV8(Isolate* isolate, Local<Value> val,
|
||||||
}
|
}
|
||||||
|
|
||||||
Local<Value> Converter<uint32_t>::ToV8(Isolate* isolate, uint32_t val) {
|
Local<Value> Converter<uint32_t>::ToV8(Isolate* isolate, uint32_t val) {
|
||||||
return MATE_INTEGER_NEW_UNSIGNED(isolate, val);
|
return v8::Integer::NewFromUnsigned(isolate, val);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Converter<uint32_t>::FromV8(Isolate* isolate, Local<Value> val,
|
bool Converter<uint32_t>::FromV8(Isolate* isolate, Local<Value> val,
|
||||||
|
@ -72,7 +71,7 @@ bool Converter<uint32_t>::FromV8(Isolate* isolate, Local<Value> val,
|
||||||
}
|
}
|
||||||
|
|
||||||
Local<Value> Converter<int64_t>::ToV8(Isolate* isolate, int64_t val) {
|
Local<Value> Converter<int64_t>::ToV8(Isolate* isolate, int64_t val) {
|
||||||
return MATE_NUMBER_NEW(isolate, static_cast<double>(val));
|
return v8::Number::New(isolate, static_cast<double>(val));
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Converter<int64_t>::FromV8(Isolate* isolate, Local<Value> val,
|
bool Converter<int64_t>::FromV8(Isolate* isolate, Local<Value> val,
|
||||||
|
@ -86,7 +85,7 @@ bool Converter<int64_t>::FromV8(Isolate* isolate, Local<Value> val,
|
||||||
}
|
}
|
||||||
|
|
||||||
Local<Value> Converter<uint64_t>::ToV8(Isolate* isolate, uint64_t val) {
|
Local<Value> Converter<uint64_t>::ToV8(Isolate* isolate, uint64_t val) {
|
||||||
return MATE_NUMBER_NEW(isolate, static_cast<double>(val));
|
return v8::Number::New(isolate, static_cast<double>(val));
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Converter<uint64_t>::FromV8(Isolate* isolate, Local<Value> val,
|
bool Converter<uint64_t>::FromV8(Isolate* isolate, Local<Value> val,
|
||||||
|
@ -98,7 +97,7 @@ bool Converter<uint64_t>::FromV8(Isolate* isolate, Local<Value> val,
|
||||||
}
|
}
|
||||||
|
|
||||||
Local<Value> Converter<float>::ToV8(Isolate* isolate, float val) {
|
Local<Value> Converter<float>::ToV8(Isolate* isolate, float val) {
|
||||||
return MATE_NUMBER_NEW(isolate, val);
|
return v8::Number::New(isolate, val);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Converter<float>::FromV8(Isolate* isolate, Local<Value> val,
|
bool Converter<float>::FromV8(Isolate* isolate, Local<Value> val,
|
||||||
|
@ -110,7 +109,7 @@ bool Converter<float>::FromV8(Isolate* isolate, Local<Value> val,
|
||||||
}
|
}
|
||||||
|
|
||||||
Local<Value> Converter<double>::ToV8(Isolate* isolate, double val) {
|
Local<Value> Converter<double>::ToV8(Isolate* isolate, double val) {
|
||||||
return MATE_NUMBER_NEW(isolate, val);
|
return v8::Number::New(isolate, val);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Converter<double>::FromV8(Isolate* isolate, Local<Value> val,
|
bool Converter<double>::FromV8(Isolate* isolate, Local<Value> val,
|
||||||
|
@ -123,13 +122,15 @@ bool Converter<double>::FromV8(Isolate* isolate, Local<Value> val,
|
||||||
|
|
||||||
Local<Value> Converter<const char*>::ToV8(
|
Local<Value> Converter<const char*>::ToV8(
|
||||||
Isolate* isolate, const char* val) {
|
Isolate* isolate, const char* val) {
|
||||||
return MATE_STRING_NEW_FROM_UTF8(isolate, val, -1);
|
return v8::String::NewFromUtf8(isolate, val);
|
||||||
}
|
}
|
||||||
|
|
||||||
Local<Value> Converter<base::StringPiece>::ToV8(
|
Local<Value> Converter<base::StringPiece>::ToV8(
|
||||||
Isolate* isolate, const base::StringPiece& val) {
|
Isolate* isolate, const base::StringPiece& val) {
|
||||||
return MATE_STRING_NEW_FROM_UTF8(isolate, val.data(),
|
return v8::String::NewFromUtf8(isolate,
|
||||||
static_cast<uint32_t>(val.length()));
|
val.data(),
|
||||||
|
v8::String::kNormalString,
|
||||||
|
static_cast<uint32_t>(val.length()));
|
||||||
}
|
}
|
||||||
|
|
||||||
Local<Value> Converter<std::string>::ToV8(Isolate* isolate,
|
Local<Value> Converter<std::string>::ToV8(Isolate* isolate,
|
||||||
|
@ -228,9 +229,10 @@ bool Converter<Local<Value> >::FromV8(Isolate* isolate, Local<Value> val,
|
||||||
|
|
||||||
v8::Local<v8::String> StringToSymbol(v8::Isolate* isolate,
|
v8::Local<v8::String> StringToSymbol(v8::Isolate* isolate,
|
||||||
const base::StringPiece& val) {
|
const base::StringPiece& val) {
|
||||||
return MATE_STRING_NEW_SYMBOL(isolate,
|
return v8::String::NewFromUtf8(isolate,
|
||||||
val.data(),
|
val.data(),
|
||||||
static_cast<uint32_t>(val.length()));
|
v8::String::kInternalizedString,
|
||||||
|
static_cast<uint32_t>(val.length()));
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string V8ToString(v8::Local<v8::Value> value) {
|
std::string V8ToString(v8::Local<v8::Value> value) {
|
||||||
|
|
|
@ -11,7 +11,6 @@
|
||||||
#include <set>
|
#include <set>
|
||||||
|
|
||||||
#include "base/strings/string_piece.h"
|
#include "base/strings/string_piece.h"
|
||||||
#include "native_mate/compat.h"
|
|
||||||
#include "v8/include/v8.h"
|
#include "v8/include/v8.h"
|
||||||
|
|
||||||
namespace mate {
|
namespace mate {
|
||||||
|
@ -36,7 +35,7 @@ struct Converter {};
|
||||||
template<>
|
template<>
|
||||||
struct Converter<void*> {
|
struct Converter<void*> {
|
||||||
static v8::Local<v8::Value> ToV8(v8::Isolate* isolate, void* val) {
|
static v8::Local<v8::Value> ToV8(v8::Isolate* isolate, void* val) {
|
||||||
return MATE_UNDEFINED(isolate);
|
return v8::Undefined(isolate);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -208,7 +207,7 @@ struct Converter<std::vector<T> > {
|
||||||
static v8::Local<v8::Value> ToV8(v8::Isolate* isolate,
|
static v8::Local<v8::Value> ToV8(v8::Isolate* isolate,
|
||||||
const std::vector<T>& val) {
|
const std::vector<T>& val) {
|
||||||
v8::Local<v8::Array> result(
|
v8::Local<v8::Array> result(
|
||||||
MATE_ARRAY_NEW(isolate, static_cast<int>(val.size())));
|
v8::Array::New(isolate, static_cast<int>(val.size())));
|
||||||
for (size_t i = 0; i < val.size(); ++i) {
|
for (size_t i = 0; i < val.size(); ++i) {
|
||||||
result->Set(static_cast<int>(i), Converter<T>::ToV8(isolate, val[i]));
|
result->Set(static_cast<int>(i), Converter<T>::ToV8(isolate, val[i]));
|
||||||
}
|
}
|
||||||
|
@ -241,7 +240,7 @@ struct Converter<std::set<T> > {
|
||||||
static v8::Local<v8::Value> ToV8(v8::Isolate* isolate,
|
static v8::Local<v8::Value> ToV8(v8::Isolate* isolate,
|
||||||
const std::set<T>& val) {
|
const std::set<T>& val) {
|
||||||
v8::Local<v8::Array> result(
|
v8::Local<v8::Array> result(
|
||||||
MATE_ARRAY_NEW(isolate, static_cast<int>(val.size())));
|
v8::Array::New(isolate, static_cast<int>(val.size())));
|
||||||
typename std::set<T>::const_iterator it;
|
typename std::set<T>::const_iterator it;
|
||||||
int i;
|
int i;
|
||||||
for (i = 0, it = val.begin(); it != val.end(); ++it, ++i)
|
for (i = 0, it = val.begin(); it != val.end(); ++it, ++i)
|
||||||
|
|
|
@ -24,10 +24,8 @@ ObjectTemplateBuilder& ObjectTemplateBuilder::SetImpl(
|
||||||
ObjectTemplateBuilder& ObjectTemplateBuilder::SetPropertyImpl(
|
ObjectTemplateBuilder& ObjectTemplateBuilder::SetPropertyImpl(
|
||||||
const base::StringPiece& name, v8::Local<v8::FunctionTemplate> getter,
|
const base::StringPiece& name, v8::Local<v8::FunctionTemplate> getter,
|
||||||
v8::Local<v8::FunctionTemplate> setter) {
|
v8::Local<v8::FunctionTemplate> setter) {
|
||||||
#if NODE_VERSION_AT_LEAST(0, 11, 0)
|
|
||||||
template_->SetAccessorProperty(StringToSymbol(isolate_, name), getter,
|
template_->SetAccessorProperty(StringToSymbol(isolate_, name), getter,
|
||||||
setter);
|
setter);
|
||||||
#endif
|
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -30,14 +30,14 @@ class ScopedPersistent {
|
||||||
void reset(v8::Isolate* isolate, v8::Local<T> handle) {
|
void reset(v8::Isolate* isolate, v8::Local<T> handle) {
|
||||||
if (!handle.IsEmpty()) {
|
if (!handle.IsEmpty()) {
|
||||||
isolate_ = isolate;
|
isolate_ = isolate;
|
||||||
MATE_PERSISTENT_ASSIGN(T, isolate, handle_, handle);
|
handle_.Reset(isolate, handle);
|
||||||
} else {
|
} else {
|
||||||
reset();
|
reset();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void reset() {
|
void reset() {
|
||||||
MATE_PERSISTENT_RESET(handle_);
|
handle_.Reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool IsEmpty() const {
|
bool IsEmpty() const {
|
||||||
|
@ -51,12 +51,12 @@ class ScopedPersistent {
|
||||||
v8::Local<T> NewHandle(v8::Isolate* isolate) const {
|
v8::Local<T> NewHandle(v8::Isolate* isolate) const {
|
||||||
if (handle_.IsEmpty())
|
if (handle_.IsEmpty())
|
||||||
return v8::Local<T>();
|
return v8::Local<T>();
|
||||||
return MATE_PERSISTENT_TO_LOCAL(T, isolate, handle_);
|
return v8::Local<T>::New(isolate, handle_);
|
||||||
}
|
}
|
||||||
|
|
||||||
template<typename P, typename C>
|
template<typename P, typename C>
|
||||||
void SetWeak(P* parameter, C callback) {
|
void SetWeak(P* parameter, C callback) {
|
||||||
MATE_PERSISTENT_SET_WEAK(handle_, parameter, callback);
|
handle_.SetWeak(parameter, callback);
|
||||||
}
|
}
|
||||||
|
|
||||||
v8::Isolate* isolate() const { return isolate_; }
|
v8::Isolate* isolate() const { return isolate_; }
|
||||||
|
|
|
@ -6,7 +6,6 @@
|
||||||
#define NATIVE_MATE_WRAPPABLE_H_
|
#define NATIVE_MATE_WRAPPABLE_H_
|
||||||
|
|
||||||
#include "base/bind.h"
|
#include "base/bind.h"
|
||||||
#include "native_mate/compat.h"
|
|
||||||
#include "native_mate/converter.h"
|
#include "native_mate/converter.h"
|
||||||
#include "native_mate/constructor.h"
|
#include "native_mate/constructor.h"
|
||||||
#include "gin/per_isolate_data.h"
|
#include "gin/per_isolate_data.h"
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
#ifndef NATIVE_MATE_WRAPPABLE_BASE_H_
|
#ifndef NATIVE_MATE_WRAPPABLE_BASE_H_
|
||||||
#define NATIVE_MATE_WRAPPABLE_BASE_H_
|
#define NATIVE_MATE_WRAPPABLE_BASE_H_
|
||||||
|
|
||||||
#include "native_mate/compat.h"
|
|
||||||
|
|
||||||
namespace mate {
|
namespace mate {
|
||||||
|
|
||||||
namespace internal {
|
namespace internal {
|
||||||
|
|
|
@ -3,7 +3,6 @@
|
||||||
'native_mate_files': [
|
'native_mate_files': [
|
||||||
'native_mate/arguments.cc',
|
'native_mate/arguments.cc',
|
||||||
'native_mate/arguments.h',
|
'native_mate/arguments.h',
|
||||||
'native_mate/compat.h',
|
|
||||||
'native_mate/constructor.h',
|
'native_mate/constructor.h',
|
||||||
'native_mate/converter.cc',
|
'native_mate/converter.cc',
|
||||||
'native_mate/converter.h',
|
'native_mate/converter.h',
|
||||||
|
|
Loading…
Reference in a new issue