Skip to content

Commit 784f108

Browse files
committed
Support Node 12
foliojs#43
1 parent 33b102e commit 784f108

File tree

2 files changed

+38
-24
lines changed

2 files changed

+38
-24
lines changed

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"main": "build/Release/fontmanager",
66
"types": "index.d.ts",
77
"dependencies": {
8-
"nan": ">=2.10.0"
8+
"nan": ">=2.14.0"
99
},
1010
"devDependencies": {
1111
"mocha": "*"

src/FontDescriptor.h

+37-23
Original file line numberDiff line numberDiff line change
@@ -112,27 +112,26 @@ struct FontDescriptor {
112112
Local<Object> toJSObject() {
113113
Nan::EscapableHandleScope scope;
114114
Local<Object> res = Nan::New<Object>();
115-
116115
if (path) {
117-
Nan::Set(res, Nan::New<String>("path").ToLocalChecked(), Nan::New<String>(path).ToLocalChecked());
116+
Nan::Set(res, Nan::New("path").ToLocalChecked(), Nan::New<String>(path).ToLocalChecked());
118117
}
119-
118+
120119
if (postscriptName) {
121-
Nan::Set(res, Nan::New<String>("postscriptName").ToLocalChecked(), Nan::New<String>(postscriptName).ToLocalChecked());
120+
Nan::Set(res, Nan::New("postscriptName").ToLocalChecked(), Nan::New<String>(postscriptName).ToLocalChecked());
122121
}
123-
122+
124123
if (family) {
125-
Nan::Set(res, Nan::New<String>("family").ToLocalChecked(), Nan::New<String>(family).ToLocalChecked());
124+
Nan::Set(res, Nan::New("family").ToLocalChecked(), Nan::New<String>(family).ToLocalChecked());
126125
}
127-
126+
128127
if (style) {
129-
Nan::Set(res, Nan::New<String>("style").ToLocalChecked(), Nan::New<String>(style).ToLocalChecked());
128+
Nan::Set(res, Nan::New("style").ToLocalChecked(), Nan::New<String>(style).ToLocalChecked());
130129
}
131-
132-
Nan::Set(res, Nan::New<String>("weight").ToLocalChecked(), Nan::New<Number>(weight));
133-
Nan::Set(res, Nan::New<String>("width").ToLocalChecked(), Nan::New<Number>(width));
134-
Nan::Set(res, Nan::New<String>("italic").ToLocalChecked(), Nan::New<v8::Boolean>(italic));
135-
Nan::Set(res, Nan::New<String>("monospace").ToLocalChecked(), Nan::New<v8::Boolean>(monospace));
130+
131+
Nan::Set(res, Nan::New("weight").ToLocalChecked(), Nan::New<Number>(weight));
132+
Nan::Set(res, Nan::New("width").ToLocalChecked(), Nan::New<Number>(width));
133+
Nan::Set(res, Nan::New("italic").ToLocalChecked(), Nan::New<v8::Boolean>(italic));
134+
Nan::Set(res, Nan::New("monospace").ToLocalChecked(), Nan::New<v8::Boolean>(monospace));
136135
return scope.Escape(res);
137136
}
138137

@@ -148,32 +147,47 @@ struct FontDescriptor {
148147

149148
char *getString(Local<Object> obj, const char *name) {
150149
Nan::HandleScope scope;
151-
MaybeLocal<Value> value = Nan::Get(obj, Nan::New<String>(name).ToLocalChecked());
150+
Nan::MaybeLocal<v8::Value> maybeValue = Nan::Get(obj, Nan::New(name).ToLocalChecked());
151+
152+
if (maybeValue.IsEmpty()) {
153+
return NULL;
154+
}
152155

153-
if (!value.IsEmpty() && value.ToLocalChecked()->IsString()) {
154-
return copyString(*Nan::Utf8String(value.ToLocalChecked()));
156+
v8::Local<v8::Value> value = maybeValue.ToLocalChecked();
157+
if (value->IsString()) {
158+
return copyString(*Nan::Utf8String(Nan::To<v8::String>(value).ToLocalChecked()));
155159
}
156160

157161
return NULL;
158162
}
159163

160164
int getNumber(Local<Object> obj, const char *name) {
161165
Nan::HandleScope scope;
162-
MaybeLocal<Value> value = Nan::Get(obj, Nan::New<String>(name).ToLocalChecked());
166+
Nan::MaybeLocal<v8::Value> maybeValue = Nan::Get(obj, Nan::New(name).ToLocalChecked());
167+
168+
if (maybeValue.IsEmpty()) {
169+
return 0;
170+
}
163171

164-
if (!value.IsEmpty() && value.ToLocalChecked()->IsNumber()) {
165-
return value.ToLocalChecked()->Int32Value(Nan::GetCurrentContext()).FromJust();
172+
v8::Local<v8::Value> value = maybeValue.ToLocalChecked();
173+
if (value->IsNumber()) {
174+
return Nan::To<int>(value).FromJust();
166175
}
167176

168177
return 0;
169178
}
170179

171180
bool getBool(Local<Object> obj, const char *name) {
172181
Nan::HandleScope scope;
173-
MaybeLocal<Value> value = Nan::Get(obj, Nan::New<String>(name).ToLocalChecked());
182+
Nan::MaybeLocal<v8::Value> maybeValue = Nan::Get(obj, Nan::New(name).ToLocalChecked());
183+
184+
if (maybeValue.IsEmpty()) {
185+
return false;
186+
}
174187

175-
if (!value.IsEmpty() && value.ToLocalChecked()->IsBoolean()) {
176-
return value.ToLocalChecked()->BooleanValue(Nan::GetCurrentContext()).FromJust();
188+
v8::Local<v8::Value> value = maybeValue.ToLocalChecked();
189+
if (value->IsBoolean()) {
190+
return Nan::To<bool>(value).FromJust();
177191
}
178192

179193
return false;
@@ -189,4 +203,4 @@ class ResultSet : public std::vector<FontDescriptor *> {
189203
}
190204
};
191205

192-
#endif
206+
#endif

0 commit comments

Comments
 (0)