diff --git a/tests/issue_183_004.phpt b/tests/issue_183_004.phpt new file mode 100644 index 0000000..e4d2f17 --- /dev/null +++ b/tests/issue_183_004.phpt @@ -0,0 +1,44 @@ +--TEST-- +Test V8::executeString() : Method access on derived classes (overridden V8Js methods) +--SKIPIF-- + +--FILE-- +executeString($JS); + +?> +===EOF=== +--EXPECTF-- +string(13) "executeString" +string(8) "function" +string(9) "undefined" +string(6) "caught" +===EOF=== diff --git a/v8js_class.cc b/v8js_class.cc index 5b121ae..a472209 100644 --- a/v8js_class.cc +++ b/v8js_class.cc @@ -531,7 +531,7 @@ static PHP_METHOD(V8Js, __construct) const zend_function_entry *fe; for (fe = v8js_methods; fe->fname; fe ++) { - if (fe->fname == method_ptr->common.function_name) { + if (strcmp(fe->fname, method_ptr->common.function_name) == 0) { break; } } @@ -1186,7 +1186,7 @@ static void v8js_unset_property(zval *object, zval *member ZEND_HASH_KEY_DC TSRM /* Global PHP JS object */ v8::Local object_name_js = v8::Local::New(isolate, c->object_name); v8::Local jsobj = V8JS_GLOBAL(isolate)->Get(object_name_js)->ToObject(); - + /* Delete value from PHP JS object */ jsobj->Delete(V8JS_SYML(Z_STRVAL_P(member), Z_STRLEN_P(member)));