Skip to content

Commit acfee56

Browse files
committed
Jerry update
IoT.js-DCO-1.0-Signed-off-by: László Langó [email protected]
1 parent a9e7448 commit acfee56

File tree

5 files changed

+33
-30
lines changed

5 files changed

+33
-30
lines changed

deps/jerry

Submodule jerry updated from 08c618e to 2027cae

src/iotjs.cpp

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,13 +55,16 @@ static bool InitJerry(Environment* env) {
5555
InitJerryMagicStringEx();
5656

5757
// Do parse and run to generate initial javascript environment.
58-
if (!jerry_parse((jerry_api_char_t*)"", 0)) {
58+
jerry_api_object_t *err_obj_p = NULL;
59+
if (!jerry_parse((jerry_api_char_t*)"", 0, &err_obj_p)) {
5960
DLOG("jerry_parse() failed");
61+
jerry_api_release_object (err_obj_p);
6062
return false;
6163
}
6264

63-
if (jerry_run() != JERRY_COMPLETION_CODE_OK) {
65+
if (jerry_run(&err_obj_p) != JERRY_COMPLETION_CODE_OK) {
6466
DLOG("jerry_run() failed");
67+
jerry_api_release_object (err_obj_p);
6568
return false;
6669
}
6770

src/iotjs_binding.cpp

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ namespace iotjs {
3535
((val_p)->type == JERRY_API_DATA_TYPE_OBJECT)
3636

3737
#define JVAL_IS_FUNCTION(val_p) \
38-
(JVAL_IS_OBJECT(val_p) && jerry_api_is_function((val_p)->v_object))
38+
(JVAL_IS_OBJECT(val_p) && jerry_api_is_function((val_p)->u.v_object))
3939

4040
#define JVAL_IS_BOOLEAN(val_p) \
4141
((val_p)->type == JERRY_API_DATA_TYPE_BOOLEAN)
@@ -46,14 +46,14 @@ namespace iotjs {
4646
((val_p)->type == JERRY_API_DATA_TYPE_UINT32))
4747

4848
#define JVAL_TO_BOOLEAN(val_p) \
49-
(val_p)->v_bool
49+
(val_p)->u.v_bool
5050

5151
#define JVAL_TO_NUMBER(val_p) \
5252
((val_p)->type == JERRY_API_DATA_TYPE_FLOAT32 ? \
53-
static_cast<double>((val_p)->v_float32) : \
53+
static_cast<double>((val_p)->u.v_float32) : \
5454
(val_p)->type == JERRY_API_DATA_TYPE_FLOAT64 ? \
55-
static_cast<double>((val_p)->v_float64) : \
56-
static_cast<double>((val_p)->v_uint32))
55+
static_cast<double>((val_p)->u.v_float64) : \
56+
static_cast<double>((val_p)->u.v_uint32))
5757

5858

5959

@@ -98,7 +98,7 @@ JObject::JObject(double v) {
9898
JObject::JObject(const char* v) {
9999
IOTJS_ASSERT(v != NULL);
100100
_obj_val.type = JERRY_API_DATA_TYPE_STRING;
101-
_obj_val.v_string = jerry_api_create_string(
101+
_obj_val.u.v_string = jerry_api_create_string(
102102
reinterpret_cast<const jerry_api_char_t*>(v));
103103
_unref_at_close = true;
104104
}
@@ -107,7 +107,7 @@ JObject::JObject(const char* v) {
107107
JObject::JObject(const String& v) {
108108
IOTJS_ASSERT(!v.IsEmpty());
109109
_obj_val.type = JERRY_API_DATA_TYPE_STRING;
110-
_obj_val.v_string = jerry_api_create_string(
110+
_obj_val.u.v_string = jerry_api_create_string(
111111
reinterpret_cast<const jerry_api_char_t*>(v.data()));
112112
_unref_at_close = true;
113113
}
@@ -126,8 +126,8 @@ JObject::JObject(const JRawValueType* val, bool need_unref) {
126126

127127

128128
JObject::JObject(JHandlerType handler) {
129-
_obj_val.v_object = jerry_api_create_external_function(handler);
130-
IOTJS_ASSERT(jerry_api_is_constructor(_obj_val.v_object));
129+
_obj_val.u.v_object = jerry_api_create_external_function(handler);
130+
IOTJS_ASSERT(jerry_api_is_constructor(_obj_val.u.v_object));
131131
_obj_val.type = JERRY_API_DATA_TYPE_OBJECT;
132132
_unref_at_close = true;
133133
}
@@ -268,7 +268,7 @@ void JObject::SetProperty(const char* name, const JObject& val) {
268268
IOTJS_ASSERT(IsObject());
269269
JRawValueType v = val.raw_value();
270270
bool is_ok = jerry_api_set_object_field_value(
271-
_obj_val.v_object,
271+
_obj_val.u.v_object,
272272
reinterpret_cast<const jerry_api_char_t*>(name),
273273
&v);
274274
IOTJS_ASSERT(is_ok);
@@ -283,7 +283,7 @@ void JObject::SetProperty(const String& name, const JObject& val) {
283283
void JObject::SetProperty(const char* name, JRawValueType val) {
284284
IOTJS_ASSERT(IsObject());
285285
bool is_ok = jerry_api_set_object_field_value(
286-
_obj_val.v_object,
286+
_obj_val.u.v_object,
287287
reinterpret_cast<const jerry_api_char_t*>(name),
288288
&val);
289289
IOTJS_ASSERT(is_ok);
@@ -299,7 +299,7 @@ JObject JObject::GetProperty(const char* name) {
299299
IOTJS_ASSERT(IsObject());
300300
JRawValueType res;
301301
bool is_ok = jerry_api_get_object_field_value(
302-
_obj_val.v_object,
302+
_obj_val.u.v_object,
303303
reinterpret_cast<const jerry_api_char_t*>(name),
304304
&res);
305305
IOTJS_ASSERT(is_ok);
@@ -314,18 +314,18 @@ JObject JObject::GetProperty(const String& name) {
314314

315315
void JObject::Ref() {
316316
if (JVAL_IS_STRING(&_obj_val)) {
317-
jerry_api_acquire_string(_obj_val.v_string);
317+
jerry_api_acquire_string(_obj_val.u.v_string);
318318
} else if (JVAL_IS_OBJECT(&_obj_val)) {
319-
jerry_api_acquire_object(_obj_val.v_object);
319+
jerry_api_acquire_object(_obj_val.u.v_object);
320320
}
321321
}
322322

323323

324324
void JObject::Unref() {
325325
if (JVAL_IS_STRING(&_obj_val)) {
326-
jerry_api_release_string(_obj_val.v_string);
326+
jerry_api_release_string(_obj_val.u.v_string);
327327
} else if (JVAL_IS_OBJECT(&_obj_val)) {
328-
jerry_api_release_object(_obj_val.v_object);
328+
jerry_api_release_object(_obj_val.u.v_object);
329329
}
330330
}
331331

@@ -367,14 +367,14 @@ bool JObject::IsFunction() {
367367

368368
void JObject::SetNative(uintptr_t ptr, JFreeHandlerType free_handler) {
369369
IOTJS_ASSERT(IsObject());
370-
jerry_api_set_object_native_handle(_obj_val.v_object, ptr, free_handler);
370+
jerry_api_set_object_native_handle(_obj_val.u.v_object, ptr, free_handler);
371371
}
372372

373373

374374
uintptr_t JObject::GetNative() {
375375
IOTJS_ASSERT(IsObject());
376376
uintptr_t ptr;
377-
jerry_api_get_object_native_handle(_obj_val.v_object, &ptr);
377+
jerry_api_get_object_native_handle(_obj_val.u.v_object, &ptr);
378378
return ptr;
379379
}
380380

@@ -383,7 +383,7 @@ JResult JObject::Call(JObject& this_, JArgList& arg) {
383383
IOTJS_ASSERT(IsFunction());
384384

385385
JRawObjectType* this_obj_p = this_.IsNull() ? NULL
386-
: this_.raw_value().v_object;
386+
: this_.raw_value().u.v_object;
387387
JRawValueType res;
388388
JRawValueType* val_args = NULL;
389389
uint16_t val_argv = 0;
@@ -396,7 +396,7 @@ JResult JObject::Call(JObject& this_, JArgList& arg) {
396396
}
397397
}
398398

399-
bool is_ok = jerry_api_call_function(_obj_val.v_object,
399+
bool is_ok = jerry_api_call_function(_obj_val.u.v_object,
400400
this_obj_p,
401401
&res,
402402
val_args,
@@ -444,13 +444,13 @@ double JObject::GetNumber() {
444444
String JObject::GetString() {
445445
IOTJS_ASSERT(IsString());
446446

447-
size_t size = -jerry_api_string_to_char_buffer(_obj_val.v_string, NULL, 0);
447+
jerry_api_size_t size = jerry_api_get_string_size(_obj_val.u.v_string);
448448

449449
String res("", size);
450450

451451
jerry_api_char_t* buffer = reinterpret_cast<jerry_api_char_t*>(res.data());
452452

453-
size_t check = jerry_api_string_to_char_buffer(_obj_val.v_string,
453+
size_t check = jerry_api_string_to_char_buffer(_obj_val.u.v_string,
454454
buffer,
455455
size);
456456

@@ -548,7 +548,7 @@ JRawValueType JVal::Null() {
548548
JRawValueType JVal::Bool(bool v) {
549549
JRawValueType val;
550550
val.type = JERRY_API_DATA_TYPE_BOOLEAN;
551-
val.v_bool = v;
551+
val.u.v_bool = v;
552552
return val;
553553
}
554554

@@ -561,15 +561,15 @@ JRawValueType JVal::Number(int v) {
561561
JRawValueType JVal::Number(double v) {
562562
JRawValueType val;
563563
val.type = JERRY_API_DATA_TYPE_FLOAT64;
564-
val.v_float64 = v;
564+
val.u.v_float64 = v;
565565
return val;
566566
}
567567

568568

569569
JRawValueType JVal::Object(const JRawObjectType* obj) {
570570
JRawValueType val;
571571
val.type = JERRY_API_DATA_TYPE_OBJECT;
572-
val.v_object = const_cast<JRawObjectType*>(obj);
572+
val.u.v_object = const_cast<JRawObjectType*>(obj);
573573
return val;
574574
}
575575

src/iotjs_module_process.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ static JResult WrapEval(const char* source) {
130130
int len2 = strlen(source);
131131
int len3 = strlen(wrapper[1]);
132132

133-
String code("", len1 + len2 + len3 + 1);
133+
String code("", len1 + len2 + len3);
134134
strcpy(code.data(), wrapper[0]);
135135
strcat(code.data() + len1, source);
136136
strcat(code.data() + len1 + len2, wrapper[1]);

tools/js2c.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ def removeWhitespaces(code):
149149

150150
# FIXME
151151
ret = subprocess.call([DUMPER,
152-
'--dump-snapshot-for-eval',
152+
'--save-snapshot-for-eval',
153153
path + '.snapshot',
154154
path + '.wrapped'])
155155
if ret != 0:

0 commit comments

Comments
 (0)