mirror of
https://github.com/phpv8/v8js.git
synced 2024-12-22 12:51:52 +00:00
all test passed v8 8.9
This commit is contained in:
parent
0eec3bd764
commit
e648f431ac
@ -48,7 +48,7 @@ if test "$PHP_V8JS" != "no"; then
|
||||
CPPFLAGS=$old_CPPFLAGS
|
||||
]);
|
||||
|
||||
AC_CACHE_CHECK(how to allow c++11 narrowing, ac_cv_v8_narrowing, [
|
||||
AC_CACHE_CHECK(how to allow c++14 narrowing, ac_cv_v8_narrowing, [
|
||||
ac_cv_v8_narrowing=""
|
||||
old_CXXFLAGS=$CXXFLAGS
|
||||
AC_LANG_PUSH([C++])
|
||||
@ -58,12 +58,12 @@ if test "$PHP_V8JS" != "no"; then
|
||||
(void) foo;
|
||||
return 0;
|
||||
}]])],[ac_cv_v8_narrowing=""],[
|
||||
CXXFLAGS="-Wno-c++11-narrowing -std="$ac_cv_v8_cstd
|
||||
CXXFLAGS="-Wno-c++14-narrowing -std="$ac_cv_v8_cstd
|
||||
AC_RUN_IFELSE([AC_LANG_SOURCE([[int main() {
|
||||
struct { unsigned int x; } foo = {-1};
|
||||
(void) foo;
|
||||
return 0;
|
||||
}]])],[ac_cv_v8_narrowing="-Wno-c++11-narrowing"],[
|
||||
}]])],[ac_cv_v8_narrowing="-Wno-c++14-narrowing"],[
|
||||
CXXFLAGS="-Wno-narrowing -std="$ac_cv_v8_cstd
|
||||
AC_RUN_IFELSE([AC_LANG_SOURCE([[int main() {
|
||||
struct { unsigned int x; } foo = {-1};
|
||||
|
@ -210,11 +210,11 @@ void v8js_array_access_enumerator(const v8::PropertyCallbackInfo<v8::Array>& inf
|
||||
|
||||
for(int j = 0; j < length; j ++) {
|
||||
if(v8js_array_access_isset_p(object, j)) {
|
||||
result->Set(isolate->GetEnteredContext(), i ++, V8JS_INT(j));
|
||||
result->Set(isolate->GetEnteredOrMicrotaskContext(), i ++, V8JS_INT(j));
|
||||
}
|
||||
}
|
||||
|
||||
result->Set(isolate->GetEnteredContext(), V8JS_SYM("length"), V8JS_INT(i));
|
||||
result->Set(isolate->GetEnteredOrMicrotaskContext(), V8JS_SYM("length"), V8JS_INT(i));
|
||||
info.GetReturnValue().Set(result);
|
||||
}
|
||||
/* }}} */
|
||||
@ -245,12 +245,12 @@ void v8js_array_access_named_getter(v8::Local<v8::Name> property_name, const v8:
|
||||
}
|
||||
|
||||
v8::Local<v8::Object> prototype_object;
|
||||
if(!prototype->ToObject(isolate->GetEnteredContext()).ToLocal(&prototype_object)) {
|
||||
if(!prototype->ToObject(isolate->GetEnteredOrMicrotaskContext()).ToLocal(&prototype_object)) {
|
||||
/* ehh? Array.prototype not an object? strange, stop. */
|
||||
info.GetReturnValue().Set(ret_value);
|
||||
}
|
||||
|
||||
prototype_object->Get(isolate->GetEnteredContext(), property).ToLocal(&ret_value);
|
||||
prototype_object->Get(isolate->GetEnteredOrMicrotaskContext(), property).ToLocal(&ret_value);
|
||||
}
|
||||
|
||||
info.GetReturnValue().Set(ret_value);
|
||||
|
@ -79,7 +79,7 @@ static v8::Local<v8::Value> v8js_hash_to_jsarr(zval *value, v8::Isolate *isolate
|
||||
return V8JS_NULL;
|
||||
}
|
||||
|
||||
v8::Local<v8::Context> v8_context = isolate->GetEnteredContext();
|
||||
v8::Local<v8::Context> v8_context = isolate->GetEnteredOrMicrotaskContext();
|
||||
newarr = v8::Array::New(isolate, i);
|
||||
|
||||
if (i > 0)
|
||||
@ -149,7 +149,7 @@ v8::Local<v8::Value> zval_to_v8js(zval *value, v8::Isolate *isolate) /* {{{ */
|
||||
if (instanceof_function(Z_OBJCE_P(value), ce)) {
|
||||
zval dtval;
|
||||
zend_call_method_with_0_params(value, NULL, NULL, "getTimestamp", &dtval);
|
||||
v8::Date::New(isolate->GetEnteredContext(), ((double)Z_LVAL(dtval) * 1000.0)).ToLocal(&jsValue);
|
||||
v8::Date::New(isolate->GetEnteredOrMicrotaskContext(), ((double)Z_LVAL(dtval) * 1000.0)).ToLocal(&jsValue);
|
||||
zval_dtor(&dtval);
|
||||
} else
|
||||
jsValue = v8js_hash_to_jsobj(value, isolate);
|
||||
|
@ -488,7 +488,7 @@ V8JS_METHOD(require)
|
||||
}
|
||||
|
||||
if(Z_TYPE(module_code) == IS_OBJECT) {
|
||||
v8::Local<v8::Object> newobj = zval_to_v8js(&module_code, isolate)->ToObject(isolate->GetEnteredContext()).ToLocalChecked();
|
||||
v8::Local<v8::Object> newobj = zval_to_v8js(&module_code, isolate)->ToObject(isolate->GetEnteredOrMicrotaskContext()).ToLocalChecked();
|
||||
c->modules_loaded[normalised_module_id].Reset(isolate, newobj);
|
||||
info.GetReturnValue().Set(newobj);
|
||||
|
||||
|
@ -38,7 +38,7 @@ static void v8js_weak_object_callback(const v8::WeakCallbackInfo<zend_object> &d
|
||||
static void v8js_call_php_func(zend_object *object, zend_function *method_ptr, const v8::FunctionCallbackInfo<v8::Value>& info) /* {{{ */
|
||||
{
|
||||
v8::Isolate *isolate = info.GetIsolate();
|
||||
v8::Local<v8::Context> v8_context = isolate->GetEnteredContext();
|
||||
v8::Local<v8::Context> v8_context = isolate->GetEnteredOrMicrotaskContext();
|
||||
v8::Local<v8::Value> return_value = V8JS_NULL;
|
||||
zend_fcall_info fci;
|
||||
zend_fcall_info_cache fcc;
|
||||
@ -231,8 +231,8 @@ static void v8js_construct_callback(const v8::FunctionCallbackInfo<v8::Value>& i
|
||||
v8::Local<v8::Array> cons_data = v8::Local<v8::Array>::Cast(info.Data());
|
||||
v8::Local<v8::Value> cons_tmpl, cons_ce;
|
||||
|
||||
if (!cons_data->Get(isolate->GetEnteredContext(), 0).ToLocal(&cons_tmpl)
|
||||
||!cons_data->Get(isolate->GetEnteredContext(), 1).ToLocal(&cons_ce))
|
||||
if (!cons_data->Get(isolate->GetEnteredOrMicrotaskContext(), 0).ToLocal(&cons_tmpl)
|
||||
||!cons_data->Get(isolate->GetEnteredOrMicrotaskContext(), 1).ToLocal(&cons_ce))
|
||||
{
|
||||
return;
|
||||
}
|
||||
@ -328,14 +328,14 @@ static void v8js_weak_closure_callback(const v8::WeakCallbackInfo<v8js_function_
|
||||
!strncasecmp(ZSTR_VAL(key), mname, ZSTR_LEN(key)))
|
||||
|
||||
#define PHP_V8JS_CALLBACK(isolate, mptr, tmpl) \
|
||||
(v8::FunctionTemplate::New((isolate), v8js_php_callback, v8::External::New((isolate), mptr), v8::Signature::New((isolate), tmpl))->GetFunction(isolate->GetEnteredContext()).ToLocalChecked())
|
||||
(v8::FunctionTemplate::New((isolate), v8js_php_callback, v8::External::New((isolate), mptr), v8::Signature::New((isolate), tmpl))->GetFunction(isolate->GetEnteredOrMicrotaskContext()).ToLocalChecked())
|
||||
|
||||
|
||||
static void v8js_named_property_enumerator(const v8::PropertyCallbackInfo<v8::Array> &info) /* {{{ */
|
||||
{
|
||||
// note: 'special' properties like 'constructor' are not enumerated.
|
||||
v8::Isolate *isolate = info.GetIsolate();
|
||||
v8::Local<v8::Context> v8_context = isolate->GetEnteredContext();
|
||||
v8::Local<v8::Context> v8_context = isolate->GetEnteredOrMicrotaskContext();
|
||||
|
||||
v8::Local<v8::Object> self = info.Holder();
|
||||
v8::Local<v8::Array> result = v8::Array::New(isolate, 0);
|
||||
@ -435,7 +435,7 @@ static void v8js_named_property_enumerator(const v8::PropertyCallbackInfo<v8::Ar
|
||||
static void v8js_invoke_callback(const v8::FunctionCallbackInfo<v8::Value>& info) /* {{{ */
|
||||
{
|
||||
v8::Isolate *isolate = info.GetIsolate();
|
||||
v8::Local<v8::Context> v8_context = isolate->GetEnteredContext();
|
||||
v8::Local<v8::Context> v8_context = isolate->GetEnteredOrMicrotaskContext();
|
||||
|
||||
v8::Local<v8::Object> self = info.Holder();
|
||||
v8::Local<v8::Function> cb = v8::Local<v8::Function>::Cast(info.Data());
|
||||
@ -480,7 +480,7 @@ static void v8js_invoke_callback(const v8::FunctionCallbackInfo<v8::Value>& info
|
||||
static void v8js_fake_call_impl(const v8::FunctionCallbackInfo<v8::Value>& info) /* {{{ */
|
||||
{
|
||||
v8::Isolate *isolate = info.GetIsolate();
|
||||
v8::Local<v8::Context> v8_context = isolate->GetEnteredContext();
|
||||
v8::Local<v8::Context> v8_context = isolate->GetEnteredOrMicrotaskContext();
|
||||
|
||||
v8::Local<v8::Object> self = info.Holder();
|
||||
v8::Local<v8::Value> return_value = V8JS_NULL;
|
||||
@ -623,7 +623,7 @@ v8::Local<v8::Value> v8js_named_property_callback(v8::Local<v8::Name> property_n
|
||||
v8::Local<v8::String> property = v8::Local<v8::String>::Cast(property_name);
|
||||
|
||||
v8::Isolate *isolate = info.GetIsolate();
|
||||
v8::Local<v8::Context> v8_context = isolate->GetEnteredContext();
|
||||
v8::Local<v8::Context> v8_context = isolate->GetEnteredOrMicrotaskContext();
|
||||
v8js_ctx *ctx = (v8js_ctx *) isolate->GetData(0);
|
||||
v8::String::Utf8Value cstr(isolate, property);
|
||||
const char *name = ToCString(cstr);
|
||||
@ -848,7 +848,7 @@ static void v8js_named_property_query(v8::Local<v8::Name> property, const v8::Pr
|
||||
}
|
||||
|
||||
v8::Isolate *isolate = info.GetIsolate();
|
||||
v8::MaybeLocal<v8::Integer> value = r->ToInteger(isolate->GetEnteredContext());
|
||||
v8::MaybeLocal<v8::Integer> value = r->ToInteger(isolate->GetEnteredOrMicrotaskContext());
|
||||
if (!value.IsEmpty()) {
|
||||
info.GetReturnValue().Set(value.ToLocalChecked());
|
||||
}
|
||||
|
@ -304,7 +304,7 @@ int v8js_get_properties_hash(v8::Local<v8::Value> jsValue, HashTable *retval, in
|
||||
}
|
||||
|
||||
/* Skip any prototype properties */
|
||||
if (!jsObj->HasOwnProperty(isolate->GetEnteredContext(), jsKey).FromMaybe(false)
|
||||
if (!jsObj->HasOwnProperty(isolate->GetEnteredOrMicrotaskContext(), jsKey).FromMaybe(false)
|
||||
&& !jsObj->HasRealNamedProperty(v8_context, jsKey).FromMaybe(false)
|
||||
&& !jsObj->HasRealNamedCallbackProperty(v8_context, jsKey).FromMaybe(false)) {
|
||||
continue;
|
||||
|
@ -344,7 +344,7 @@ static int v8js_v8object_call_method(zend_string *method, zend_object *object, I
|
||||
std::function< v8::MaybeLocal<v8::Value>(v8::Isolate *) > v8_call = [obj, method, argc, argv, object, &return_value](v8::Isolate *isolate) {
|
||||
int i = 0;
|
||||
|
||||
v8::Local<v8::Context> v8_context = isolate->GetEnteredContext();
|
||||
v8::Local<v8::Context> v8_context = isolate->GetEnteredOrMicrotaskContext();
|
||||
v8::Local<v8::String> method_name = V8JS_SYML(ZSTR_VAL(method), static_cast<int>(ZSTR_LEN(method)));
|
||||
v8::Local<v8::Object> v8obj = v8::Local<v8::Value>::New(isolate, obj->v8obj)->ToObject(v8_context).ToLocalChecked();
|
||||
v8::Local<v8::Object> thisObj;
|
||||
@ -573,7 +573,7 @@ static void v8js_v8generator_next(v8js_v8generator *g) /* {{{ */
|
||||
* some memory on bailout. */
|
||||
{
|
||||
std::function< v8::MaybeLocal<v8::Value>(v8::Isolate *) > v8_call = [g](v8::Isolate *isolate) {
|
||||
v8::Local<v8::Context> v8_context = isolate->GetEnteredContext();
|
||||
v8::Local<v8::Context> v8_context = isolate->GetEnteredOrMicrotaskContext();
|
||||
v8::Local<v8::String> method_name = V8JS_SYM("next");
|
||||
v8::Local<v8::Object> v8obj = v8::Local<v8::Value>::New(isolate, g->v8obj.v8obj)->ToObject(v8_context).ToLocalChecked();
|
||||
v8::Local<v8::Function> cb = v8::Local<v8::Function>::Cast(v8obj->Get(v8_context, method_name).ToLocalChecked());;
|
||||
|
Loading…
Reference in New Issue
Block a user