[Pkg-javascript-commits] [node-leveldown] 211/492: namespace all the things
Andrew Kelley
andrewrk-guest at moszumanska.debian.org
Sun Jul 6 17:14:00 UTC 2014
This is an automated email from the git hooks/post-receive script.
andrewrk-guest pushed a commit to annotated tag rocksdb-0.10.1
in repository node-leveldown.
commit c0224d08c2b6a0831db23bbca5f851e4e3e0cc24
Author: Rod Vagg <rod at vagg.org>
Date: Sat Feb 16 10:57:03 2013 +1100
namespace all the things
---
src/async.h | 2 +-
src/batch.cc | 2 +-
src/database.cc | 55 ++++++++++++++++---------
src/iterator.cc | 108 +++++++++++++++++++++++++-------------------------
src/iterator.h | 24 +++++------
src/iterator_async.cc | 18 ++++-----
src/iterator_async.h | 12 +++---
src/levelup.cc | 4 +-
src/levelup.h | 28 ++++++-------
9 files changed, 134 insertions(+), 119 deletions(-)
diff --git a/src/async.h b/src/async.h
index ddb7416..53970f2 100644
--- a/src/async.h
+++ b/src/async.h
@@ -34,6 +34,6 @@ void AsyncExecute (uv_work_t* req);
void AsyncExecuteComplete (uv_work_t* req);
void AsyncQueueWorker (AsyncWorker* worker);
-} // namespace LevelUP
+} // namespace levelup
#endif
diff --git a/src/batch.cc b/src/batch.cc
index 8a17b2a..bf6c357 100644
--- a/src/batch.cc
+++ b/src/batch.cc
@@ -28,4 +28,4 @@ void BatchWrite::Execute (leveldb::WriteBatch* batch) {
batch->Put(key, value);
}
-} // namespace LevelUP
+} // namespace levelup
diff --git a/src/database.cc b/src/database.cc
index ee4cf59..3e3b648 100644
--- a/src/database.cc
+++ b/src/database.cc
@@ -28,33 +28,50 @@ Database::~Database () {
/* Calls from worker threads, NO V8 HERE *****************************/
-Status Database::OpenDatabase (Options* options, string location) {
- return DB::Open(*options, location, &db);
+leveldb::Status Database::OpenDatabase (
+ leveldb::Options* options
+ , std::string location
+ ) {
+ return leveldb::DB::Open(*options, location, &db);
}
-Status Database::PutToDatabase (WriteOptions* options, Slice key, Slice value) {
+leveldb::Status Database::PutToDatabase (
+ leveldb::WriteOptions* options
+ , leveldb::Slice key
+ , leveldb::Slice value
+ ) {
return db->Put(*options, key, value);
}
-Status Database::GetFromDatabase (ReadOptions* options, Slice key, string& value) {
+leveldb::Status Database::GetFromDatabase (
+ leveldb::ReadOptions* options
+ , leveldb::Slice key
+ , std::string& value
+ ) {
return db->Get(*options, key, &value);
}
-Status Database::DeleteFromDatabase (WriteOptions* options, Slice key) {
+leveldb::Status Database::DeleteFromDatabase (
+ leveldb::WriteOptions* options
+ , leveldb::Slice key
+ ) {
return db->Delete(*options, key);
}
-Status Database::WriteBatchToDatabase (WriteOptions* options, WriteBatch* batch) {
+leveldb::Status Database::WriteBatchToDatabase (
+ leveldb::WriteOptions* options
+ , leveldb::WriteBatch* batch
+ ) {
return db->Write(*options, batch);
}
-uint64_t Database::ApproximateSizeFromDatabase (const Range* range) {
+uint64_t Database::ApproximateSizeFromDatabase (const leveldb::Range* range) {
uint64_t size;
db->GetApproximateSizes(range, 1, &size);
return size;
}
-leveldb::Iterator* Database::NewIterator (ReadOptions* options) {
+leveldb::Iterator* Database::NewIterator (leveldb::ReadOptions* options) {
return db->NewIterator(*options);
}
@@ -75,8 +92,8 @@ void Database::CloseDatabase () {
v8::Persistent<v8::Function> Database::constructor;
-Handle<Value> CreateDatabase (const Arguments& args) {
- HandleScope scope;
+v8::Handle<v8::Value> CreateDatabase (const v8::Arguments& args) {
+ v8::HandleScope scope;
return scope.Close(Database::NewInstance(args));
}
@@ -110,12 +127,12 @@ void Database::Init () {
);
tpl->PrototypeTemplate()->Set(
v8::String::NewSymbol("approximateSize")
- , FunctionTemplate::New(ApproximateSize)->GetFunction()
+ , v8::FunctionTemplate::New(ApproximateSize)->GetFunction()
);
- constructor = v8::Persistent<Function>::New(tpl->GetFunction());
+ constructor = v8::Persistent<v8::Function>::New(tpl->GetFunction());
}
-v8::Handle<Value> Database::New (const v8::Arguments& args) {
+v8::Handle<v8::Value> Database::New (const v8::Arguments& args) {
v8::HandleScope scope;
Database* obj = new Database();
@@ -124,7 +141,7 @@ v8::Handle<Value> Database::New (const v8::Arguments& args) {
return args.This();
}
-v8::Handle<Value> Database::NewInstance (const v8::Arguments& args) {
+v8::Handle<v8::Value> Database::NewInstance (const v8::Arguments& args) {
v8::HandleScope scope;
v8::Handle<v8::Value> argv[0];
@@ -133,7 +150,7 @@ v8::Handle<Value> Database::NewInstance (const v8::Arguments& args) {
return scope.Close(instance);
}
-v8::Handle<Value> Database::Open (const v8::Arguments& args) {
+v8::Handle<v8::Value> Database::Open (const v8::Arguments& args) {
v8::HandleScope scope;
Database* database = node::ObjectWrap::Unwrap<Database>(args.This());
@@ -160,7 +177,7 @@ v8::Handle<Value> Database::Open (const v8::Arguments& args) {
return v8::Undefined();
}
-v8::Handle<Value> Database::Close (const v8::Arguments& args) {
+v8::Handle<v8::Value> Database::Close (const v8::Arguments& args) {
v8::HandleScope scope;
Database* database = node::ObjectWrap::Unwrap<Database>(args.This());
@@ -205,7 +222,7 @@ v8::Handle<v8::Value> Database::Put (const v8::Arguments& args) {
return v8::Undefined();
}
-v8::Handle<Value> Database::Get (const v8::Arguments& args) {
+v8::Handle<v8::Value> Database::Get (const v8::Arguments& args) {
v8::HandleScope scope;
Database* database = node::ObjectWrap::Unwrap<Database>(args.This());
@@ -233,7 +250,7 @@ v8::Handle<Value> Database::Get (const v8::Arguments& args) {
return v8::Undefined();
}
-v8::Handle<Value> Database::Delete (const v8::Arguments& args) {
+v8::Handle<v8::Value> Database::Delete (const v8::Arguments& args) {
v8::HandleScope scope;
Database* database = node::ObjectWrap::Unwrap<Database>(args.This());
@@ -339,4 +356,4 @@ v8::Handle<v8::Value> Database::ApproximateSize (const v8::Arguments& args) {
return v8::Undefined();
}
-} // namespace LevelUP
+} // namespace levelup
diff --git a/src/iterator.cc b/src/iterator.cc
index 911f16a..4734383 100644
--- a/src/iterator.cc
+++ b/src/iterator.cc
@@ -10,12 +10,9 @@
#include "iterator.h"
#include "iterator_async.h"
-using namespace std;
-using namespace v8;
-using namespace node;
-using namespace levelup;
+namespace levelup {
-bool levelup::Iterator::GetIterator () {
+bool Iterator::GetIterator () {
if (dbIterator == NULL) {
dbIterator = database->NewIterator(options);
if (start != NULL)
@@ -29,7 +26,7 @@ bool levelup::Iterator::GetIterator () {
return false;
}
-bool levelup::Iterator::IteratorNext (string& key, string& value) {
+bool Iterator::IteratorNext (std::string& key, std::string& value) {
if (!GetIterator()) {
if (reverse)
dbIterator->Prev();
@@ -55,17 +52,17 @@ bool levelup::Iterator::IteratorNext (string& key, string& value) {
}
}
-Status levelup::Iterator::IteratorStatus () {
+leveldb::Status Iterator::IteratorStatus () {
return dbIterator->status();
}
-void levelup::Iterator::IteratorEnd () {
+void Iterator::IteratorEnd () {
//TODO: could return it->status()
delete dbIterator;
dbIterator = NULL;
}
-void checkEndCallback (levelup::Iterator* iterator) {
+void checkEndCallback (Iterator* iterator) {
iterator->nexting = false;
if (iterator->endWorker != NULL) {
AsyncQueueWorker(iterator->endWorker);
@@ -73,10 +70,10 @@ void checkEndCallback (levelup::Iterator* iterator) {
}
}
-//void *ctx, void (*callback)(void *ctx, Slice key, Slice value)
-Handle<Value> levelup::Iterator::Next (const Arguments& args) {
- HandleScope scope;
- Iterator* iterator = ObjectWrap::Unwrap<Iterator>(args.This());
+//void *ctx, void (*callback)(void *ctx, leveldb::Slice key, leveldb::Slice value)
+v8::Handle<v8::Value> Iterator::Next (const v8::Arguments& args) {
+ v8::HandleScope scope;
+ Iterator* iterator = node::ObjectWrap::Unwrap<Iterator>(args.This());
if (iterator->ended) {
THROW_RETURN("Cannot call next() after end()")
@@ -86,10 +83,10 @@ Handle<Value> levelup::Iterator::Next (const Arguments& args) {
THROW_RETURN("Cannot call next() before previous next() has completed")
}
- Persistent<Function> endCallback =
- Persistent<Function>::New(Local<Function>::Cast(args[0]));
- Persistent<Function> dataCallback =
- Persistent<Function>::New(Local<Function>::Cast(args[1]));
+ v8::Persistent<v8::Function> endCallback =
+ v8::Persistent<v8::Function>::New(v8::Local<v8::Function>::Cast(args[0]));
+ v8::Persistent<v8::Function> dataCallback =
+ v8::Persistent<v8::Function>::New(v8::Local<v8::Function>::Cast(args[1]));
NextWorker* worker = new NextWorker(
iterator
@@ -99,19 +96,19 @@ Handle<Value> levelup::Iterator::Next (const Arguments& args) {
);
iterator->nexting = true;
AsyncQueueWorker(worker);
- return Undefined();
+ return v8::Undefined();
}
-Handle<Value> levelup::Iterator::End (const Arguments& args) {
- HandleScope scope;
- Iterator* iterator = ObjectWrap::Unwrap<Iterator>(args.This());
+v8::Handle<v8::Value> Iterator::End (const v8::Arguments& args) {
+ v8::HandleScope scope;
+ Iterator* iterator = node::ObjectWrap::Unwrap<Iterator>(args.This());
if (iterator->ended) {
THROW_RETURN("end() already called on iterator")
}
- Persistent<Function> callback =
- Persistent<Function>::New(Local<Function>::Cast(args[0]));
+ v8::Persistent<v8::Function> callback =
+ v8::Persistent<v8::Function>::New(v8::Local<v8::Function>::Cast(args[0]));
EndWorker* worker = new EndWorker(
iterator
, callback
@@ -123,59 +120,61 @@ Handle<Value> levelup::Iterator::End (const Arguments& args) {
} else {
AsyncQueueWorker(worker);
}
- return Undefined();
+ return v8::Undefined();
}
-Persistent<Function> levelup::Iterator::constructor;
+v8::Persistent<v8::Function> Iterator::constructor;
-void levelup::Iterator::Init () {
- Local<FunctionTemplate> tpl = FunctionTemplate::New(New);
- tpl->SetClassName(String::NewSymbol("Iterator"));
+void Iterator::Init () {
+ v8::Local<v8::FunctionTemplate> tpl = v8::FunctionTemplate::New(New);
+ tpl->SetClassName(v8::String::NewSymbol("Iterator"));
tpl->InstanceTemplate()->SetInternalFieldCount(2);
tpl->PrototypeTemplate()->Set(
- String::NewSymbol("next")
- , FunctionTemplate::New(Next)->GetFunction()
+ v8::String::NewSymbol("next")
+ , v8::FunctionTemplate::New(Next)->GetFunction()
);
tpl->PrototypeTemplate()->Set(
- String::NewSymbol("end")
- , FunctionTemplate::New(End)->GetFunction()
+ v8::String::NewSymbol("end")
+ , v8::FunctionTemplate::New(End)->GetFunction()
);
- constructor = Persistent<Function>::New(tpl->GetFunction());
+ constructor = v8::Persistent<v8::Function>::New(tpl->GetFunction());
}
-Handle<Value> levelup::Iterator::NewInstance (const Arguments& args) {
- HandleScope scope;
+v8::Handle<v8::Value> Iterator::NewInstance (const v8::Arguments& args) {
+ v8::HandleScope scope;
- Handle<Value> argv[2] = {
+ v8::Handle<v8::Value> argv[2] = {
args[0]->ToObject()
, args[1]->ToObject()
};
- Local<Object> instance = constructor->NewInstance(2, argv);
+ v8::Local<v8::Object> instance = constructor->NewInstance(2, argv);
return scope.Close(instance);
}
-Handle<Value> levelup::Iterator::New (const Arguments& args) {
- HandleScope scope;
+v8::Handle<v8::Value> Iterator::New (const v8::Arguments& args) {
+ v8::HandleScope scope;
- Database* database = ObjectWrap::Unwrap<Database>(args[0]->ToObject());
- Slice* start = NULL;
+ Database* database = node::ObjectWrap::Unwrap<Database>(args[0]->ToObject());
+ leveldb::Slice* start = NULL;
if (args[1]->ToObject()->Has(option_start)
- && (Buffer::HasInstance(args[1]->ToObject()->Get(option_start))
+ && (node::Buffer::HasInstance(args[1]->ToObject()->Get(option_start))
|| args[1]->ToObject()->Get(option_start)->IsString())) {
- Local<Value> startBuffer = Local<Value>::New(args[1]->ToObject()->Get(option_start));
+ v8::Local<v8::Value> startBuffer =
+ v8::Local<v8::Value>::New(args[1]->ToObject()->Get(option_start));
STRING_OR_BUFFER_TO_SLICE(_start, startBuffer)
- start = new Slice(_start.data(), _start.size());
+ start = new leveldb::Slice(_start.data(), _start.size());
}
- string* end = NULL;
+ std::string* end = NULL;
if (args[1]->ToObject()->Has(option_end)
- && (Buffer::HasInstance(args[1]->ToObject()->Get(option_end))
+ && (node::Buffer::HasInstance(args[1]->ToObject()->Get(option_end))
|| args[1]->ToObject()->Get(option_end)->IsString())) {
- Local<Value> endBuffer = Local<Value>::New(args[1]->ToObject()->Get(option_end));
+ v8::Local<v8::Value> endBuffer =
+ v8::Local<v8::Value>::New(args[1]->ToObject()->Get(option_end));
STRING_OR_BUFFER_TO_SLICE(_end, endBuffer)
- end = new string(_end.data(), _end.size());
+ end = new std::string(_end.data(), _end.size());
}
- Local<Object> optionsObj = Local<Object>::Cast(args[1]);
+ v8::Local<v8::Object> optionsObj = v8::Local<v8::Object>::Cast(args[1]);
BOOLEAN_OPTION_VALUE(optionsObj, reverse)
BOOLEAN_OPTION_VALUE_DEFTRUE(optionsObj, keys)
BOOLEAN_OPTION_VALUE_DEFTRUE(optionsObj, values)
@@ -184,7 +183,8 @@ Handle<Value> levelup::Iterator::New (const Arguments& args) {
BOOLEAN_OPTION_VALUE(optionsObj, fillCache)
int limit = -1;
if (args[1]->ToObject()->Has(option_limit)) {
- limit = Local<Integer>::Cast(args[1]->ToObject()->Get(option_limit))->Value();
+ limit = v8::Local<v8::
+ Integer>::Cast(args[1]->ToObject()->Get(option_limit))->Value();
}
Iterator* iterator = new Iterator(
database
@@ -203,7 +203,9 @@ Handle<Value> levelup::Iterator::New (const Arguments& args) {
return args.This();
}
-Handle<Value> levelup::CreateIterator (const Arguments& args) {
- HandleScope scope;
- return scope.Close(levelup::Iterator::NewInstance(args));
+v8::Handle<v8::Value> CreateIterator (const v8::Arguments& args) {
+ v8::HandleScope scope;
+ return scope.Close(Iterator::NewInstance(args));
}
+
+} // namespace levelup
diff --git a/src/iterator.h b/src/iterator.h
index d62b2ba..e9868a2 100644
--- a/src/iterator.h
+++ b/src/iterator.h
@@ -12,10 +12,6 @@
#include "database.h"
#include "async.h"
-using namespace std;
-using namespace v8;
-using namespace leveldb;
-
namespace levelup {
LU_OPTION ( start );
@@ -27,21 +23,21 @@ LU_OPTION ( values );
LU_OPTION ( keyAsBuffer );
LU_OPTION ( valueAsBuffer );
-Handle<Value> CreateIterator (const Arguments& args);
+v8::Handle<v8::Value> CreateIterator (const v8::Arguments& args);
class Iterator : public node::ObjectWrap {
public:
static void Init ();
static v8::Handle<v8::Value> NewInstance (const v8::Arguments& args);
- bool IteratorNext (string& key, string& value);
- Status IteratorStatus ();
+ bool IteratorNext (std::string& key, std::string& value);
+ leveldb::Status IteratorStatus ();
void IteratorEnd ();
Iterator (
Database* database
- , Slice* start
- , string* end
+ , leveldb::Slice* start
+ , std::string* end
, bool reverse
, bool keys
, bool values
@@ -59,7 +55,7 @@ public:
, keyAsBuffer(keyAsBuffer)
, valueAsBuffer(valueAsBuffer)
{
- options = new ReadOptions();
+ options = new leveldb::ReadOptions();
options->fill_cache = fillCache;
dbIterator = NULL;
count = 0;
@@ -79,9 +75,9 @@ public:
private:
Database* database;
leveldb::Iterator* dbIterator;
- ReadOptions* options;
- Slice* start;
- string* end;
+ leveldb::ReadOptions* options;
+ leveldb::Slice* start;
+ std::string* end;
bool reverse;
bool keys;
bool values;
@@ -105,6 +101,6 @@ private:
LU_V8_METHOD( End )
};
-};
+} // namespace levelup
#endif
diff --git a/src/iterator_async.cc b/src/iterator_async.cc
index cb33a0b..d053e57 100644
--- a/src/iterator_async.cc
+++ b/src/iterator_async.cc
@@ -16,10 +16,10 @@ namespace levelup {
/** NEXT WORKER **/
NextWorker::NextWorker (
- levelup::Iterator* iterator
- , Persistent<Function> dataCallback
- , Persistent<Function> endCallback
- , void (*localCallback)(levelup::Iterator*)
+ Iterator* iterator
+ , v8::Persistent<v8::Function> dataCallback
+ , v8::Persistent<v8::Function> endCallback
+ , void (*localCallback)(Iterator*)
) : AsyncWorker(database, dataCallback)
, iterator(iterator)
, endCallback(endCallback)
@@ -43,7 +43,7 @@ void NextWorker::HandleOKCallback () {
node::Buffer::New((char*)key.data(), key.size())->handle_
);
} else {
- returnKey = String::New((char*)key.data(), key.size());
+ returnKey = v8::String::New((char*)key.data(), key.size());
}
v8::Local<v8::Value> returnValue;
if (iterator->valueAsBuffer) {
@@ -51,7 +51,7 @@ void NextWorker::HandleOKCallback () {
node::Buffer::New((char*)value.data(), value.size())->handle_
);
} else {
- returnValue = String::New((char*)value.data(), value.size());
+ returnValue = v8::String::New((char*)value.data(), value.size());
}
// clean up & handle the next/end state see iterator.cc/checkEndCallback
@@ -59,7 +59,7 @@ void NextWorker::HandleOKCallback () {
if (ok) {
v8::Local<v8::Value> argv[] = {
- v8::Local<v8::Value>::New(Null())
+ v8::Local<v8::Value>::New(v8::Null())
, returnKey
, returnValue
};
@@ -73,8 +73,8 @@ void NextWorker::HandleOKCallback () {
/** END WORKER **/
EndWorker::EndWorker (
- levelup::Iterator* iterator
- , Persistent<Function> endCallback
+ Iterator* iterator
+ , v8::Persistent<v8::Function> endCallback
) : AsyncWorker(database, endCallback)
, iterator(iterator)
{};
diff --git a/src/iterator_async.h b/src/iterator_async.h
index e0362a7..43b51a9 100644
--- a/src/iterator_async.h
+++ b/src/iterator_async.h
@@ -16,10 +16,10 @@ namespace levelup {
class NextWorker : public AsyncWorker {
public:
NextWorker (
- levelup::Iterator* iterator
+ Iterator* iterator
, v8::Persistent<v8::Function> dataCallback
, v8::Persistent<v8::Function> endCallback
- , void (*localCallback)(levelup::Iterator*)
+ , void (*localCallback)(Iterator*)
);
virtual ~NextWorker ();
@@ -27,9 +27,9 @@ public:
virtual void HandleOKCallback ();
private:
- levelup::Iterator* iterator;
+ Iterator* iterator;
v8::Persistent<v8::Function> endCallback;
- void (*localCallback)(levelup::Iterator*);
+ void (*localCallback)(Iterator*);
std::string key;
std::string value;
bool ok;
@@ -38,7 +38,7 @@ private:
class EndWorker : public AsyncWorker {
public:
EndWorker (
- levelup::Iterator* iterator
+ Iterator* iterator
, v8::Persistent<v8::Function> endCallback
);
@@ -46,7 +46,7 @@ public:
virtual void Execute ();
private:
- levelup::Iterator* iterator;
+ Iterator* iterator;
};
} // namespace levelup
diff --git a/src/levelup.cc b/src/levelup.cc
index 012619f..ae9ba5f 100644
--- a/src/levelup.cc
+++ b/src/levelup.cc
@@ -13,7 +13,7 @@ namespace levelup {
void Init (v8::Handle<v8::Object> exports) {
Database::Init();
- levelup::Iterator::Init();
+ Iterator::Init();
exports->Set(
v8::String::NewSymbol("createDatabase")
@@ -21,7 +21,7 @@ void Init (v8::Handle<v8::Object> exports) {
);
exports->Set(
v8::String::NewSymbol("createIterator")
- , v8::FunctionTemplate::New(levelup::CreateIterator)->GetFunction()
+ , v8::FunctionTemplate::New(CreateIterator)->GetFunction()
);
}
diff --git a/src/levelup.h b/src/levelup.h
index 8928a57..479e655 100644
--- a/src/levelup.h
+++ b/src/levelup.h
@@ -17,10 +17,21 @@
#define LU_V8_METHOD(name) \
static v8::Handle<v8::Value> name (const v8::Arguments& args);
+#define THROW_RETURN(msg) \
+ v8::ThrowException(v8::Exception::Error(v8::String::New(#msg))); \
+ return v8::Undefined();
+
+#define RUN_CALLBACK(callback, argv, length) \
+ v8::TryCatch try_catch; \
+ callback->Call(v8::Context::GetCurrent()->Global(), length, argv); \
+ if (try_catch.HasCaught()) { \
+ node::FatalException(try_catch); \
+ }
+
#define CB_ERR_IF_NULL_OR_UNDEFINED(index, name) \
if (args[index]->IsNull() || args[index]->IsUndefined()) { \
- v8::Local<Value> argv[] = { \
- v8::Local<Value>::New(v8::Exception::Error( \
+ v8::Local<v8::Value> argv[] = { \
+ v8::Local<v8::Value>::New(v8::Exception::Error( \
v8::String::New("#name cannot be `null` or `undefined`"))) \
}; \
RUN_CALLBACK(callback, argv, 1); \
@@ -39,7 +50,7 @@
to ## Ch_ = new char[to ## Sz_]; \
to ## Str->WriteUtf8(to ## Ch_, -1, NULL, v8::String::NO_NULL_TERMINATION); \
} \
- Slice to(to ## Ch_, to ## Sz_);
+ leveldb::Slice to(to ## Ch_, to ## Sz_);
#define BOOLEAN_OPTION_VALUE(optionsObj, opt) \
bool opt = optionsObj->Has(option_ ## opt) && \
@@ -53,15 +64,4 @@
? optionsObj->Get(option_ ## opt)->Uint32Value() \
: default;
-#define THROW_RETURN(msg) \
- v8::ThrowException(Exception::Error(v8::String::New(#msg))); \
- return v8::Undefined();
-
-#define RUN_CALLBACK(callback, argv, length) \
- v8::TryCatch try_catch; \
- callback->Call(v8::Context::GetCurrent()->Global(), length, argv); \
- if (try_catch.HasCaught()) { \
- node::FatalException(try_catch); \
- }
-
#endif
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-javascript/node-leveldown.git
More information about the Pkg-javascript-commits
mailing list