diff --git a/native_mate/constructor.cc b/native_mate/constructor.cc deleted file mode 100644 index 9c57fd09c318..000000000000 --- a/native_mate/constructor.cc +++ /dev/null @@ -1,40 +0,0 @@ -// Copyright 2014 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE.chromium file. - -#include "native_mate/constructor.h" - -#include "base/bind.h" -#include "base/strings/string_piece.h" -#include "native_mate/arguments.h" -#include "native_mate/function_template.h" - -namespace mate { - -Constructor::Constructor(const base::StringPiece& name, - const WrappableFactoryFunction& factory) - : name_(name), factory_(factory) { -} - -virtual Constructor::~Constructor() { - constructor_.Reset(); -} - -v8::Handle Constructor::GetFunctionTemplate( - v8::Isolate* isolate) { - if (constructor_.IsEmpty()) { - v8::Local constructor = CreateFunctionTemplate( - isolate, base::Bind(&Constructor::New, base::Unretained(this))); - constructor->InstanceTemplate()->SetInternalFieldCount(1); - constructor->SetClassName(StringToV8(isolate, name_)); - constructor_.Reset(isolate, constructor); - } - - return MATE_PERSISTENT_TO_LOCAL(v8::FunctionTemplate, isolate, constructor_); -} - -void Constructor::New(mate::Arguments* args) { - MATE_SET_INTERNAL_FIELD_POINTER(args->GetThis(), 0, factory_.Run()); -} - -} // namespace mate diff --git a/native_mate/constructor.h b/native_mate/constructor.h index 77446faee50f..7e429cf62c78 100644 --- a/native_mate/constructor.h +++ b/native_mate/constructor.h @@ -7,9 +7,7 @@ #include "base/bind.h" #include "base/compiler_specific.h" -#include "base/strings/string_piece.h" #include "native_mate/function_template.h" -#include "v8/include/v8.h" namespace mate { diff --git a/native_mate/scoped_persistent.h b/native_mate/scoped_persistent.h index c1705676c282..bedf26b5250e 100644 --- a/native_mate/scoped_persistent.h +++ b/native_mate/scoped_persistent.h @@ -106,6 +106,8 @@ class RefCountedPersistent : public ScopedPersistent, DISALLOW_COPY_AND_ASSIGN(RefCountedPersistent); }; +typedef scoped_refptr> RefCountedV8Object; + } // namespace mate #endif // NATIVE_MATE_SCOPED_PERSISTENT_H_