-
Notifications
You must be signed in to change notification settings - Fork 24
node 4x retry #74
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
node 4x retry #74
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,14 +1,14 @@ | ||
| language: node_js | ||
| node_js: | ||
| - "0.8" | ||
| - "0.10" | ||
| - "0.11" | ||
| - iojs | ||
| before_install: | ||
| - "sudo apt-get install libicu-dev" | ||
| # Workaround for a permissions issue with Travis virtual machine images | ||
| # that breaks Python's multiprocessing: | ||
| # https://github.com/travis-ci/travis-cookbooks/issues/155 | ||
| - sudo rm -rf /dev/shm | ||
| - sudo ln -s /run/shm /dev/shm | ||
| - npm i -g [email protected] | ||
| - "4.1.1" | ||
| sudo: false | ||
| env: | ||
| - CXX="g++-4.8" | ||
| addons: | ||
| apt: | ||
| packages: | ||
| - libicu-dev | ||
| - g++-4.8 | ||
| - gcc-4.8 | ||
| sources: | ||
| - ubuntu-toolchain-r-test |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -15,17 +15,17 @@ class UnknownProfileException : public std::exception { | |
| // protect constructor from GC | ||
| static Persistent<FunctionTemplate> stringprep_constructor; | ||
|
|
||
| class StringPrep : public ObjectWrap { | ||
| class StringPrep : public Nan::ObjectWrap { | ||
| public: | ||
| static void Initialize(Handle<Object> target) | ||
| { | ||
| NanScope(); | ||
| Local<FunctionTemplate> t = NanNew<FunctionTemplate>(New); | ||
| NanAssignPersistent(stringprep_constructor, t); | ||
| Nan::HandleScope scope; | ||
| Local<FunctionTemplate> t = Nan::New<FunctionTemplate>(New); | ||
| //stringprep_constructor.Reset( t); | ||
| t->InstanceTemplate()->SetInternalFieldCount(1); | ||
| NODE_SET_PROTOTYPE_METHOD(t, "prepare", Prepare); | ||
| Nan::SetPrototypeMethod(t, "prepare", Prepare); | ||
|
|
||
| target->Set(NanNew<String>("StringPrep"), t->GetFunction()); | ||
| target->Set(Nan::New<String>("StringPrep").ToLocalChecked(), t->GetFunction()); | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. use |
||
| } | ||
|
|
||
| bool good() const | ||
|
|
@@ -43,39 +43,39 @@ class StringPrep : public ObjectWrap { | |
|
|
||
| static NAN_METHOD(New) | ||
| { | ||
| NanScope(); | ||
| Nan::HandleScope scope; | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. remove |
||
|
|
||
| if (args.Length() >= 1 && args[0]->IsString()) | ||
| if (info.Length() >= 1 && info[0]->IsString()) | ||
| { | ||
| String::Utf8Value arg0(args[0]->ToString()); | ||
| String::Utf8Value arg0(info[0]->ToString()); | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
|
||
| UStringPrepProfileType profileType; | ||
| try | ||
| { | ||
| profileType = parseProfileType(arg0); | ||
| } | ||
| catch (UnknownProfileException &) | ||
| { | ||
| NanThrowTypeError("Unknown StringPrep profile"); | ||
| NanReturnUndefined(); | ||
| Nan::ThrowTypeError("Unknown StringPrep profile"); | ||
| return; | ||
| } | ||
|
|
||
| StringPrep *self = new StringPrep(profileType); | ||
| if (self->good()) | ||
| { | ||
| self->Wrap(args.This()); | ||
| NanReturnValue(args.This()); | ||
| self->Wrap(info.This()); | ||
| info.GetReturnValue().Set(info.This()); | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
|
||
| } | ||
| else | ||
| { | ||
| const char* err = self->errorName(); | ||
| delete self; | ||
| NanThrowError(err); | ||
| NanReturnUndefined(); | ||
| Nan::ThrowError(err); | ||
| return; | ||
| } | ||
| } | ||
| else { | ||
| NanThrowTypeError("Bad argument."); | ||
| NanReturnUndefined(); | ||
| Nan::ThrowTypeError("Bad argument."); | ||
| return; | ||
| } | ||
| } | ||
|
|
||
|
|
@@ -97,17 +97,17 @@ class StringPrep : public ObjectWrap { | |
|
|
||
| static NAN_METHOD(Prepare) | ||
| { | ||
| NanScope(); | ||
| Nan::HandleScope scope; | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. remove |
||
|
|
||
| if (args.Length() >= 1 && args[0]->IsString()) | ||
| if (info.Length() >= 1 && info[0]->IsString()) | ||
| { | ||
| StringPrep *self = ObjectWrap::Unwrap<StringPrep>(args.This()); | ||
| String::Value arg0(args[0]->ToString()); | ||
| NanReturnValue(self->prepare(arg0)); | ||
| StringPrep *self = Nan::ObjectWrap::Unwrap<StringPrep>(info.This()); | ||
| String::Value arg0(info[0]->ToString()); | ||
| info.GetReturnValue().Set(self->prepare(arg0)); | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. return |
||
| } | ||
| else { | ||
| NanThrowTypeError("Bad argument."); | ||
| NanReturnUndefined(); | ||
| Nan::ThrowTypeError("Bad argument."); | ||
| return; | ||
| } | ||
| } | ||
|
|
||
|
|
@@ -117,7 +117,7 @@ class StringPrep : public ObjectWrap { | |
| UChar *dest = NULL; | ||
| while(!dest) | ||
| { | ||
| error = U_ZERO_ERROR; | ||
| UErrorCode error = U_ZERO_ERROR; | ||
| dest = new UChar[destLen]; | ||
| size_t w = usprep_prepare(profile, | ||
| *str, str.length(), | ||
|
|
@@ -131,20 +131,19 @@ class StringPrep : public ObjectWrap { | |
| delete[] dest; | ||
| dest = NULL; | ||
| } | ||
| else if (!good()) | ||
| else if (!U_SUCCESS(error)) | ||
| { | ||
| // other error, just bail out | ||
| delete[] dest; | ||
| NanThrowError(errorName()); | ||
| return NanUndefined(); | ||
| Nan::ThrowError(u_errorName(error)); | ||
| return Nan::Undefined(); | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. this is the |
||
| } | ||
| else | ||
| destLen = w; | ||
| } | ||
|
|
||
| Local<String> result = NanNew<String>(dest, destLen); | ||
| delete[] dest; | ||
| return result; | ||
| return Nan::New<String>(dest, destLen).ToLocalChecked(); | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. and |
||
| } | ||
|
|
||
| private: | ||
|
|
@@ -192,12 +191,12 @@ class StringPrep : public ObjectWrap { | |
|
|
||
| NAN_METHOD(ToUnicode) | ||
| { | ||
| NanScope(); | ||
| Nan::HandleScope scope; | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. remove |
||
|
|
||
| if (args.Length() >= 2 && args[0]->IsString() && args[1]->IsInt32()) | ||
| if (info.Length() >= 2 && info[0]->IsString() && info[1]->IsInt32()) | ||
| { | ||
| String::Value str(args[0]->ToString()); | ||
| int32_t options = args[1]->ToInt32()->Value(); | ||
| String::Value str(info[0]->ToString()); | ||
| int32_t options = info[1]->ToInt32()->Value(); | ||
|
|
||
| // ASCII encoding (xn--*--*) should be longer than Unicode | ||
| size_t destLen = str.length() + 1; | ||
|
|
@@ -210,7 +209,7 @@ NAN_METHOD(ToUnicode) | |
| dest, destLen, | ||
| options, | ||
| NULL, &error); | ||
|
|
||
| if (error == U_BUFFER_OVERFLOW_ERROR) | ||
| { | ||
| // retry with a dest buffer twice as large | ||
|
|
@@ -222,31 +221,31 @@ NAN_METHOD(ToUnicode) | |
| { | ||
| // other error, just bail out | ||
| delete[] dest; | ||
| NanThrowError(u_errorName(error)); | ||
| NanReturnUndefined(); | ||
| Nan::ThrowError(u_errorName(error)); | ||
| return; | ||
| } | ||
| else | ||
| destLen = w; | ||
| } | ||
|
|
||
| Local<String> result = NanNew<String>(dest, destLen); | ||
| Local<String> result = Nan::New<String>(dest, destLen).ToLocalChecked(); | ||
| delete[] dest; | ||
| NanReturnValue(result); | ||
| info.GetReturnValue().Set(result); | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. return |
||
| } | ||
| else { | ||
| NanThrowTypeError("Bad argument."); | ||
| NanReturnUndefined(); | ||
| Nan::ThrowTypeError("Bad argument."); | ||
| return; | ||
| } | ||
| } | ||
|
|
||
| NAN_METHOD(ToASCII) | ||
| { | ||
| NanScope(); | ||
| Nan::HandleScope scope; | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. remove |
||
|
|
||
| if (args.Length() >= 2 && args[0]->IsString() && args[1]->IsInt32()) | ||
| if (info.Length() >= 2 && info[0]->IsString() && info[1]->IsInt32()) | ||
| { | ||
| String::Value str(args[0]->ToString()); | ||
| int32_t options = args[1]->ToInt32()->Value(); | ||
| String::Value str(info[0]->ToString()); | ||
| int32_t options = info[1]->ToInt32()->Value(); | ||
|
|
||
| // find out length first | ||
| UErrorCode error = U_ZERO_ERROR; | ||
|
|
@@ -270,28 +269,29 @@ NAN_METHOD(ToASCII) | |
| { | ||
| // other error, just bail out | ||
| delete[] dest; | ||
| NanThrowError(u_errorName(error)); | ||
| NanReturnUndefined(); | ||
| Nan::ThrowError(u_errorName(error)); | ||
| return; | ||
| } | ||
|
|
||
| Local<String> result = NanNew<String>(dest, destLen); | ||
| Local<String> result = Nan::New<String>(dest, destLen).ToLocalChecked(); | ||
| delete[] dest; | ||
| NanReturnValue(result); | ||
| info.GetReturnValue().Set(result); | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. return |
||
| } | ||
| else { | ||
| NanThrowTypeError("Bad argument."); | ||
| NanReturnUndefined(); | ||
| Nan::ThrowTypeError("Bad argument."); | ||
| return; | ||
| } | ||
| } | ||
|
|
||
| /*** Initialization ***/ | ||
|
|
||
| extern "C" void init(Handle<Object> target) | ||
| { | ||
| NanScope(); | ||
| StringPrep::Initialize(target); | ||
| NODE_SET_METHOD(target, "toUnicode", ToUnicode); | ||
| NODE_SET_METHOD(target, "toASCII", ToASCII); | ||
| extern "C" { | ||
| static void init (Handle<Object> target) | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
|
||
| { | ||
| Nan::HandleScope scope; | ||
| StringPrep::Initialize(target); | ||
| Nan::SetMethod(target, "toUnicode", ToUnicode); | ||
| Nan::SetMethod(target, "toASCII", ToASCII); | ||
| } | ||
| NODE_MODULE(node_stringprep, init) | ||
| } | ||
|
|
||
| NODE_MODULE(node_stringprep, init) | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
whoa, no, why was this changed?