]> granicus.if.org Git - php/commitdiff
Use NULL where possible for exception class
authorAaron Piotrowski <aaron@trowski.com>
Tue, 7 Jul 2015 17:10:22 +0000 (12:10 -0500)
committerAaron Piotrowski <aaron@trowski.com>
Tue, 7 Jul 2015 17:10:55 +0000 (12:10 -0500)
Matches usage of zend_throw_exception()/zend_throw_exception_ex().

14 files changed:
Zend/zend_API.c
Zend/zend_ast.c
Zend/zend_closures.c
Zend/zend_constants.c
Zend/zend_exceptions.c
Zend/zend_execute.c
Zend/zend_execute_API.c
Zend/zend_generators.c
Zend/zend_interfaces.c
Zend/zend_object_handlers.c
Zend/zend_objects.c
Zend/zend_operators.c
Zend/zend_vm_def.h
Zend/zend_vm_execute.h

index 8b57457af2fb6221180114c418121530853087a3..c84ab13792d38424db7abe8d431fb2970e7339c0 100644 (file)
@@ -1276,11 +1276,11 @@ ZEND_API int _object_and_properties_init(zval *arg, zend_class_entry *class_type
 {
        if (UNEXPECTED(class_type->ce_flags & (ZEND_ACC_INTERFACE|ZEND_ACC_TRAIT|ZEND_ACC_IMPLICIT_ABSTRACT_CLASS|ZEND_ACC_EXPLICIT_ABSTRACT_CLASS))) {
                if (class_type->ce_flags & ZEND_ACC_INTERFACE) {
-                       zend_throw_error(zend_ce_error, "Cannot instantiate interface %s", ZSTR_VAL(class_type->name));
+                       zend_throw_error(NULL, "Cannot instantiate interface %s", ZSTR_VAL(class_type->name));
                } else if (class_type->ce_flags & ZEND_ACC_TRAIT) {
-                       zend_throw_error(zend_ce_error, "Cannot instantiate trait %s", ZSTR_VAL(class_type->name));
+                       zend_throw_error(NULL, "Cannot instantiate trait %s", ZSTR_VAL(class_type->name));
                } else {
-                       zend_throw_error(zend_ce_error, "Cannot instantiate abstract class %s", ZSTR_VAL(class_type->name));
+                       zend_throw_error(NULL, "Cannot instantiate abstract class %s", ZSTR_VAL(class_type->name));
                }
                ZVAL_NULL(arg);
                Z_OBJ_P(arg) = NULL;
@@ -3107,7 +3107,7 @@ get_function_via_handler:
                                        zend_spprintf(error, 0, "cannot call abstract method %s::%s()", ZSTR_VAL(fcc->calling_scope->name), ZSTR_VAL(fcc->function_handler->common.function_name));
                                        retval = 0;
                                } else {
-                                       zend_throw_error(zend_ce_error, "Cannot call abstract method %s::%s()", ZSTR_VAL(fcc->calling_scope->name), ZSTR_VAL(fcc->function_handler->common.function_name));
+                                       zend_throw_error(NULL, "Cannot call abstract method %s::%s()", ZSTR_VAL(fcc->calling_scope->name), ZSTR_VAL(fcc->function_handler->common.function_name));
                                        return 0;
                                }
                        } else if (!fcc->object && !(fcc->function_handler->common.fn_flags & ZEND_ACC_STATIC)) {
@@ -3131,7 +3131,7 @@ get_function_via_handler:
                                        }
                                } else if (retval) {
                                        if (severity == E_ERROR) {
-                                               zend_throw_error(zend_ce_error, "Non-static method %s::%s() %s be called statically", ZSTR_VAL(fcc->calling_scope->name), ZSTR_VAL(fcc->function_handler->common.function_name), verb);
+                                               zend_throw_error(NULL, "Non-static method %s::%s() %s be called statically", ZSTR_VAL(fcc->calling_scope->name), ZSTR_VAL(fcc->function_handler->common.function_name), verb);
                                        } else {
                                                zend_error(severity, "Non-static method %s::%s() %s be called statically", ZSTR_VAL(fcc->calling_scope->name), ZSTR_VAL(fcc->function_handler->common.function_name), verb);
                                        }
index 6051fa71662937c61ea0d4a8f16631bfde6fd0cb..714a1443b087c96e93c92193fee894151ffa450d 100644 (file)
@@ -203,7 +203,7 @@ static int zend_ast_add_array_element(zval *result, zval *offset, zval *expr)
                        zend_hash_index_update(Z_ARRVAL_P(result), zend_dval_to_lval(Z_DVAL_P(offset)), expr);
                        break;
                default:
-                       zend_throw_error(zend_ce_error, "Illegal offset type");
+                       zend_throw_error(NULL, "Illegal offset type");
                        return FAILURE;
        }
        return SUCCESS;
@@ -405,7 +405,7 @@ ZEND_API int zend_ast_evaluate(zval *result, zend_ast *ast, zend_class_entry *sc
                        }
                        break;
                default:
-                       zend_throw_error(zend_ce_error, "Unsupported constant expression");
+                       zend_throw_error(NULL, "Unsupported constant expression");
                        ret = FAILURE;
        }
        return ret;
index 7d2025c56ffa0d980c2d196b130db6244c17450b..6f16935cc7147b4ac274051b96d995850faba929 100644 (file)
@@ -32,7 +32,7 @@
 #define ZEND_CLOSURE_PRINT_NAME "Closure object"
 
 #define ZEND_CLOSURE_PROPERTY_ERROR() \
-       zend_throw_error(zend_ce_error, "Closure object cannot have properties")
+       zend_throw_error(NULL, "Closure object cannot have properties")
 
 typedef struct _zend_closure {
        zend_object       std;
@@ -53,7 +53,7 @@ ZEND_METHOD(Closure, __invoke) /* {{{ */
        arguments = emalloc(sizeof(zval) * ZEND_NUM_ARGS());
        if (zend_get_parameters_array_ex(ZEND_NUM_ARGS(), arguments) == FAILURE) {
                efree(arguments);
-               zend_throw_error(zend_ce_error, "Cannot get arguments for calling closure");
+               zend_throw_error(NULL, "Cannot get arguments for calling closure");
                RETVAL_FALSE;
        } else if (call_user_function_ex(CG(function_table), NULL, getThis(), return_value, ZEND_NUM_ARGS(), arguments, 1, NULL) == FAILURE) {
                RETVAL_FALSE;
@@ -207,7 +207,7 @@ ZEND_METHOD(Closure, bind)
 
 static zend_function *zend_closure_get_constructor(zend_object *object) /* {{{ */
 {
-       zend_throw_error(zend_ce_error, "Instantiation of 'Closure' is not allowed");
+       zend_throw_error(NULL, "Instantiation of 'Closure' is not allowed");
        return NULL;
 }
 /* }}} */
@@ -450,7 +450,7 @@ static HashTable *zend_closure_get_gc(zval *obj, zval **table, int *n) /* {{{ */
    Private constructor preventing instantiation */
 ZEND_METHOD(Closure, __construct)
 {
-       zend_throw_error(zend_ce_error, "Instantiation of 'Closure' is not allowed");
+       zend_throw_error(NULL, "Instantiation of 'Closure' is not allowed");
 }
 /* }}} */
 
index 168c23a850902f834b5719ecf984f15d46fcd63b..8d1be740aafa16d528d12cc55b350008c02d5af8 100644 (file)
@@ -333,17 +333,17 @@ ZEND_API zval *zend_get_constant_ex(zend_string *cname, zend_class_entry *scope,
                if (class_name_len == sizeof("self")-1 &&
                    !memcmp(lcname, "self", sizeof("self")-1)) {
                        if (UNEXPECTED(!scope)) {
-                               zend_throw_error(zend_ce_error, "Cannot access self:: when no class scope is active");
+                               zend_throw_error(NULL, "Cannot access self:: when no class scope is active");
                                return NULL;
                        }
                        ce = scope;
                } else if (class_name_len == sizeof("parent")-1 &&
                           !memcmp(lcname, "parent", sizeof("parent")-1)) {
                        if (UNEXPECTED(!scope)) {
-                               zend_throw_error(zend_ce_error, "Cannot access parent:: when no class scope is active");
+                               zend_throw_error(NULL, "Cannot access parent:: when no class scope is active");
                                return NULL;
                        } else if (UNEXPECTED(!scope->parent)) {
-                               zend_throw_error(zend_ce_error, "Cannot access parent:: when current class scope has no parent");
+                               zend_throw_error(NULL, "Cannot access parent:: when current class scope has no parent");
                                return NULL;
                        } else {
                                ce = scope->parent;
@@ -352,7 +352,7 @@ ZEND_API zval *zend_get_constant_ex(zend_string *cname, zend_class_entry *scope,
                           !memcmp(lcname, "static", sizeof("static")-1)) {
                        ce = zend_get_called_scope(EG(current_execute_data));
                        if (UNEXPECTED(!ce)) {
-                               zend_throw_error(zend_ce_error, "Cannot access static:: when no class scope is active");
+                               zend_throw_error(NULL, "Cannot access static:: when no class scope is active");
                                return NULL;
                        }
                } else {
@@ -363,7 +363,7 @@ ZEND_API zval *zend_get_constant_ex(zend_string *cname, zend_class_entry *scope,
                        ret_constant = zend_hash_find(&ce->constants_table, constant_name);
                        if (ret_constant == NULL) {
                                if ((flags & ZEND_FETCH_CLASS_SILENT) == 0) {
-                                       zend_throw_error(zend_ce_error, "Undefined class constant '%s::%s'", ZSTR_VAL(class_name), ZSTR_VAL(constant_name));
+                                       zend_throw_error(NULL, "Undefined class constant '%s::%s'", ZSTR_VAL(class_name), ZSTR_VAL(constant_name));
                                        zend_string_release(class_name);
                                        zend_string_free(constant_name);
                                        return NULL;
index df61fb741f90b4097fa1024f00b971d617c7e8f4..1c35281177f46018e312362bfb2832421cb87db0 100644 (file)
@@ -261,7 +261,7 @@ ZEND_METHOD(exception, __construct)
                } else {
                        ce = base_ce;
                }
-               zend_throw_error(zend_ce_error, "Wrong parameters for %s([string $message [, long $code [, Throwable $previous = NULL]]])", ZSTR_VAL(ce->name));
+               zend_throw_error(NULL, "Wrong parameters for %s([string $message [, long $code [, Throwable $previous = NULL]]])", ZSTR_VAL(ce->name));
                return;
        }
 
@@ -297,7 +297,7 @@ ZEND_METHOD(error_exception, __construct)
                } else {
                        ce = zend_ce_error_exception;
                }
-               zend_throw_error(zend_ce_error, "Wrong parameters for %s([string $message [, long $code, [ long $severity, [ string $filename, [ long $lineno  [, Throwable $previous = NULL]]]]]])", ZSTR_VAL(ce->name));
+               zend_throw_error(NULL, "Wrong parameters for %s([string $message [, long $code, [ long $severity, [ string $filename, [ long $lineno  [, Throwable $previous = NULL]]]]]])", ZSTR_VAL(ce->name));
                return;
        }
 
@@ -1033,7 +1033,7 @@ ZEND_API void zend_throw_exception_object(zval *exception) /* {{{ */
        exception_ce = Z_OBJCE_P(exception);
 
        if (!exception_ce || !instanceof_function(exception_ce, zend_ce_throwable)) {
-               zend_throw_error(zend_ce_error, "Cannot throw objects that do not implement Throwable");
+               zend_throw_error(NULL, "Cannot throw objects that do not implement Throwable");
                return;
        }
        zend_throw_exception_internal(exception);
index da150e29ffbf2a64a7630274775be565ba0cb282..54841e26b550a72af834367d2ba3c8715305bd32 100644 (file)
@@ -1201,7 +1201,7 @@ static zend_never_inline void zend_assign_to_object_dim(zval *retval, zval *obje
 
        /* Note:  property_name in this case is really the array index! */
        if (!Z_OBJ_HT_P(object)->write_dimension) {
-               zend_throw_error(zend_ce_error, "Cannot use object as array");
+               zend_throw_error(NULL, "Cannot use object as array");
                FREE_OP(free_value);
                return;
        }
@@ -1681,7 +1681,7 @@ convert_to_array:
                }
 
                if (dim == NULL) {
-                       zend_throw_error(zend_ce_error, "[] operator not supported for strings");
+                       zend_throw_error(NULL, "[] operator not supported for strings");
                        ZVAL_NULL(result);
                } else {
                        zend_check_string_offset(dim, type);
@@ -1689,7 +1689,7 @@ convert_to_array:
                }
        } else if (EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) {
                if (!Z_OBJ_HT_P(container)->read_dimension) {
-                       zend_throw_error(zend_ce_error, "Cannot use object as array");
+                       zend_throw_error(NULL, "Cannot use object as array");
                        retval = &EG(error_zval);
                } else {
                        retval = Z_OBJ_HT_P(container)->read_dimension(container, dim, type, result);
@@ -1830,7 +1830,7 @@ try_string_offset:
                }
        } else if (EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) {
                if (!Z_OBJ_HT_P(container)->read_dimension) {
-                       zend_throw_error(zend_ce_error, "Cannot use object as array");
+                       zend_throw_error(NULL, "Cannot use object as array");
                        ZVAL_NULL(result);
                } else {
                        retval = Z_OBJ_HT_P(container)->read_dimension(container, dim, type, result);
@@ -1922,7 +1922,7 @@ static zend_always_inline void zend_fetch_property_address(zval *result, zval *c
                                        ZVAL_INDIRECT(result, ptr);
                                }
                        } else {
-                               zend_throw_error(zend_ce_error, "Cannot access undefined property for object with overloaded property access");
+                               zend_throw_error(NULL, "Cannot access undefined property for object with overloaded property access");
                                ZVAL_INDIRECT(result, &EG(error_zval));
                        }
                } else {
index 29d06731e54e887029954bafb7c391f1f04be8db..a0080affda58331bf0a702a989042d6141684df8 100644 (file)
@@ -552,7 +552,7 @@ ZEND_API int zval_update_constant_ex(zval *p, zend_bool inline_change, zend_clas
        char *colon;
 
        if (IS_CONSTANT_VISITED(p)) {
-               zend_throw_error(zend_ce_error, "Cannot declare self-referencing constant '%s'", Z_STRVAL_P(p));
+               zend_throw_error(NULL, "Cannot declare self-referencing constant '%s'", Z_STRVAL_P(p));
                return FAILURE;
        } else if (Z_TYPE_P(p) == IS_CONSTANT) {
 
@@ -575,7 +575,7 @@ ZEND_API int zval_update_constant_ex(zval *p, zend_bool inline_change, zend_clas
                                RESET_CONSTANT_VISITED(p);
                                return FAILURE;
                        } else if ((colon = (char*)zend_memrchr(Z_STRVAL_P(p), ':', Z_STRLEN_P(p)))) {
-                               zend_throw_error(zend_ce_error, "Undefined class constant '%s'", Z_STRVAL_P(p));
+                               zend_throw_error(NULL, "Undefined class constant '%s'", Z_STRVAL_P(p));
                                RESET_CONSTANT_VISITED(p);
                                return FAILURE;
                        } else {
@@ -602,9 +602,9 @@ ZEND_API int zval_update_constant_ex(zval *p, zend_bool inline_change, zend_clas
                                }
                                if ((Z_CONST_FLAGS_P(p) & IS_CONSTANT_UNQUALIFIED) == 0) {
                                        if (ZSTR_VAL(save)[0] == '\\') {
-                                               zend_throw_error(zend_ce_error, "Undefined constant '%s'", ZSTR_VAL(save) + 1);
+                                               zend_throw_error(NULL, "Undefined constant '%s'", ZSTR_VAL(save) + 1);
                                        } else {
-                                               zend_throw_error(zend_ce_error, "Undefined constant '%s'", ZSTR_VAL(save));
+                                               zend_throw_error(NULL, "Undefined constant '%s'", ZSTR_VAL(save));
                                        }
                                        if (inline_change) {
                                                zend_string_release(save);
@@ -781,7 +781,7 @@ int zend_call_function(zend_fcall_info *fci, zend_fcall_info_cache *fci_cache) /
 
        if (func->common.fn_flags & (ZEND_ACC_ABSTRACT|ZEND_ACC_DEPRECATED)) {
                if (func->common.fn_flags & ZEND_ACC_ABSTRACT) {
-                       zend_throw_error(zend_ce_error, "Cannot call abstract method %s::%s()", ZSTR_VAL(func->common.scope->name), ZSTR_VAL(func->common.function_name));
+                       zend_throw_error(NULL, "Cannot call abstract method %s::%s()", ZSTR_VAL(func->common.scope->name), ZSTR_VAL(func->common.function_name));
                        return FAILURE;
                }
                if (func->common.fn_flags & ZEND_ACC_DEPRECATED) {
@@ -903,7 +903,7 @@ int zend_call_function(zend_fcall_info *fci, zend_fcall_info_cache *fci_cache) /
                        fci->object->handlers->call_method(func->common.function_name, fci->object, call, fci->retval);
                        EG(current_execute_data) = call->prev_execute_data;
                } else {
-                       zend_throw_error(zend_ce_error, "Cannot call overloaded function for non-object");
+                       zend_throw_error(NULL, "Cannot call overloaded function for non-object");
                }
 
                zend_vm_stack_free_args(call);
@@ -1329,22 +1329,22 @@ check_fetch_type:
        switch (fetch_sub_type) {
                case ZEND_FETCH_CLASS_SELF:
                        if (UNEXPECTED(!EG(scope))) {
-                               zend_throw_or_error(fetch_type, zend_ce_error, "Cannot access self:: when no class scope is active");
+                               zend_throw_or_error(fetch_type, NULL, "Cannot access self:: when no class scope is active");
                        }
                        return EG(scope);
                case ZEND_FETCH_CLASS_PARENT:
                        if (UNEXPECTED(!EG(scope))) {
-                               zend_throw_or_error(fetch_type, zend_ce_error, "Cannot access parent:: when no class scope is active");
+                               zend_throw_or_error(fetch_type, NULL, "Cannot access parent:: when no class scope is active");
                                return NULL;
                        }
                        if (UNEXPECTED(!EG(scope)->parent)) {
-                               zend_throw_or_error(fetch_type, zend_ce_error, "Cannot access parent:: when current class scope has no parent");
+                               zend_throw_or_error(fetch_type, NULL, "Cannot access parent:: when current class scope has no parent");
                        }
                        return EG(scope)->parent;
                case ZEND_FETCH_CLASS_STATIC:
                        ce = zend_get_called_scope(EG(current_execute_data));
                        if (UNEXPECTED(!ce)) {
-                               zend_throw_or_error(fetch_type, zend_ce_error, "Cannot access static:: when no class scope is active");
+                               zend_throw_or_error(fetch_type, NULL, "Cannot access static:: when no class scope is active");
                                return NULL;
                        }
                        return ce;
@@ -1362,11 +1362,11 @@ check_fetch_type:
        } else if ((ce = zend_lookup_class_ex(class_name, NULL, 1)) == NULL) {
                if (!(fetch_type & ZEND_FETCH_CLASS_SILENT) && !EG(exception)) {
                        if (fetch_sub_type == ZEND_FETCH_CLASS_INTERFACE) {
-                               zend_throw_or_error(fetch_type, zend_ce_error, "Interface '%s' not found", ZSTR_VAL(class_name));
+                               zend_throw_or_error(fetch_type, NULL, "Interface '%s' not found", ZSTR_VAL(class_name));
                        } else if (fetch_sub_type == ZEND_FETCH_CLASS_TRAIT) {
-                               zend_throw_or_error(fetch_type, zend_ce_error, "Trait '%s' not found", ZSTR_VAL(class_name));
+                               zend_throw_or_error(fetch_type, NULL, "Trait '%s' not found", ZSTR_VAL(class_name));
                        } else {
-                               zend_throw_or_error(fetch_type, zend_ce_error, "Class '%s' not found", ZSTR_VAL(class_name));
+                               zend_throw_or_error(fetch_type, NULL, "Class '%s' not found", ZSTR_VAL(class_name));
                        }
                }
                return NULL;
@@ -1384,11 +1384,11 @@ zend_class_entry *zend_fetch_class_by_name(zend_string *class_name, const zval *
        } else if ((ce = zend_lookup_class_ex(class_name, key, 1)) == NULL) {
                if ((fetch_type & ZEND_FETCH_CLASS_SILENT) == 0 && !EG(exception)) {
                        if ((fetch_type & ZEND_FETCH_CLASS_MASK) == ZEND_FETCH_CLASS_INTERFACE) {
-                               zend_throw_or_error(fetch_type, zend_ce_error, "Interface '%s' not found", ZSTR_VAL(class_name));
+                               zend_throw_or_error(fetch_type, NULL, "Interface '%s' not found", ZSTR_VAL(class_name));
                        } else if ((fetch_type & ZEND_FETCH_CLASS_MASK) == ZEND_FETCH_CLASS_TRAIT) {
-                               zend_throw_or_error(fetch_type, zend_ce_error, "Trait '%s' not found", ZSTR_VAL(class_name));
+                               zend_throw_or_error(fetch_type, NULL, "Trait '%s' not found", ZSTR_VAL(class_name));
                        } else {
-                               zend_throw_or_error(fetch_type, zend_ce_error, "Class '%s' not found", ZSTR_VAL(class_name));
+                               zend_throw_or_error(fetch_type, NULL, "Class '%s' not found", ZSTR_VAL(class_name));
                        }
                }
                return NULL;
index ee7cfa6a67db412d96a5c516ca33c6bf99159af9..d98e2715df1354b1484efafd04ea0ef133607e04 100644 (file)
@@ -265,7 +265,7 @@ ZEND_API void zend_generator_create_zval(zend_execute_data *call, zend_op_array
 
 static zend_function *zend_generator_get_constructor(zend_object *object) /* {{{ */
 {
-       zend_throw_error(zend_ce_error, "The \"Generator\" class is reserved for internal use and cannot be manually instantiated");
+       zend_throw_error(NULL, "The \"Generator\" class is reserved for internal use and cannot be manually instantiated");
 
        return NULL;
 }
@@ -637,7 +637,7 @@ ZEND_API void zend_generator_resume(zend_generator *orig_generator) /* {{{ */
 
 try_again:
        if (generator->flags & ZEND_GENERATOR_CURRENTLY_RUNNING) {
-               zend_throw_error(zend_ce_error, "Cannot resume an already running generator");
+               zend_throw_error(NULL, "Cannot resume an already running generator");
                return;
        }
 
index d1245bb3962f13a9b0954f942198ffb49db870a9..5395b4a1d69f5317647221345f1de31b81c4bfd1 100644 (file)
@@ -262,7 +262,7 @@ static zend_object_iterator *zend_user_it_get_iterator(zend_class_entry *ce, zva
        zend_user_iterator *iterator;
 
        if (by_ref) {
-               zend_throw_error(zend_ce_error, "An iterator cannot be used with foreach by reference");
+               zend_throw_error(NULL, "An iterator cannot be used with foreach by reference");
                return NULL;
        }
 
index b1a6360149fed8c83ce352bf6025e61a4344e4ca..43a010c07d5efe536918c2ec301c2c5e2f9d8af6 100644 (file)
@@ -304,9 +304,9 @@ static zend_always_inline uint32_t zend_get_property_offset(zend_class_entry *ce
        if (UNEXPECTED(ZSTR_VAL(member)[0] == '\0')) {
                if (!silent) {
                        if (ZSTR_LEN(member) == 0) {
-                               zend_throw_error(zend_ce_error, "Cannot access empty property");
+                               zend_throw_error(NULL, "Cannot access empty property");
                        } else {
-                               zend_throw_error(zend_ce_error, "Cannot access property started with '\\0'");
+                               zend_throw_error(NULL, "Cannot access property started with '\\0'");
                        }
                }
                return ZEND_WRONG_PROPERTY_OFFSET;
@@ -360,7 +360,7 @@ exit_dynamic:
        } else if (UNEXPECTED(property_info == ZEND_WRONG_PROPERTY_INFO)) {
                /* Information was available, but we were denied access.  Error out. */
                if (!silent) {
-                       zend_throw_error(zend_ce_error, "Cannot access %s property %s::$%s", zend_visibility_string(flags), ZSTR_VAL(ce->name), ZSTR_VAL(member));
+                       zend_throw_error(NULL, "Cannot access %s property %s::$%s", zend_visibility_string(flags), ZSTR_VAL(ce->name), ZSTR_VAL(member));
                }
                return ZEND_WRONG_PROPERTY_OFFSET;
        }
@@ -382,9 +382,9 @@ ZEND_API zend_property_info *zend_get_property_info(zend_class_entry *ce, zend_s
        if (UNEXPECTED(ZSTR_VAL(member)[0] == '\0')) {
                if (!silent) {
                        if (ZSTR_LEN(member) == 0) {
-                               zend_throw_error(zend_ce_error, "Cannot access empty property");
+                               zend_throw_error(NULL, "Cannot access empty property");
                        } else {
-                               zend_throw_error(zend_ce_error, "Cannot access property started with '\\0'");
+                               zend_throw_error(NULL, "Cannot access property started with '\\0'");
                        }
                }
                return ZEND_WRONG_PROPERTY_INFO;
@@ -431,7 +431,7 @@ exit_dynamic:
        } else if (UNEXPECTED(property_info == ZEND_WRONG_PROPERTY_INFO)) {
                /* Information was available, but we were denied access.  Error out. */
                if (!silent) {
-                       zend_throw_error(zend_ce_error, "Cannot access %s property %s::$%s", zend_visibility_string(flags), ZSTR_VAL(ce->name), ZSTR_VAL(member));
+                       zend_throw_error(NULL, "Cannot access %s property %s::$%s", zend_visibility_string(flags), ZSTR_VAL(ce->name), ZSTR_VAL(member));
                }
                return ZEND_WRONG_PROPERTY_INFO;
        }
@@ -578,11 +578,11 @@ zval *zend_std_read_property(zval *object, zval *member, int type, void **cache_
                } else {
                        if (Z_STRVAL_P(member)[0] == '\0') {
                                if (Z_STRLEN_P(member) == 0) {
-                                       zend_throw_error(zend_ce_error, "Cannot access empty property");
+                                       zend_throw_error(NULL, "Cannot access empty property");
                                        retval = &EG(uninitialized_zval);
                                        goto exit;
                                } else {
-                                       zend_throw_error(zend_ce_error, "Cannot access property started with '\\0'");
+                                       zend_throw_error(NULL, "Cannot access property started with '\\0'");
                                        retval = &EG(uninitialized_zval);
                                        goto exit;
                                }
@@ -664,10 +664,10 @@ found:
                } else {
                        if (Z_STRVAL_P(member)[0] == '\0') {
                                if (Z_STRLEN_P(member) == 0) {
-                                       zend_throw_error(zend_ce_error, "Cannot access empty property");
+                                       zend_throw_error(NULL, "Cannot access empty property");
                                        goto exit;
                                } else {
-                                       zend_throw_error(zend_ce_error, "Cannot access property started with '\\0'");
+                                       zend_throw_error(NULL, "Cannot access property started with '\\0'");
                                        goto exit;
                                }
                        }
@@ -721,13 +721,13 @@ zval *zend_std_read_dimension(zval *object, zval *offset, int type, zval *rv) /*
 
                if (UNEXPECTED(Z_TYPE_P(rv) == IS_UNDEF)) {
                        if (UNEXPECTED(!EG(exception))) {
-                               zend_throw_error(zend_ce_error, "Undefined offset for object of type %s used as array", ZSTR_VAL(ce->name));
+                               zend_throw_error(NULL, "Undefined offset for object of type %s used as array", ZSTR_VAL(ce->name));
                        }
                        return NULL;
                }
                return rv;
        } else {
-               zend_throw_error(zend_ce_error, "Cannot use object of type %s as array", ZSTR_VAL(ce->name));
+               zend_throw_error(NULL, "Cannot use object of type %s as array", ZSTR_VAL(ce->name));
                return NULL;
        }
 }
@@ -748,7 +748,7 @@ static void zend_std_write_dimension(zval *object, zval *offset, zval *value) /*
                zend_call_method_with_2_params(object, ce, NULL, "offsetset", NULL, offset, value);
                zval_ptr_dtor(offset);
        } else {
-               zend_throw_error(zend_ce_error, "Cannot use object of type %s as array", ZSTR_VAL(ce->name));
+               zend_throw_error(NULL, "Cannot use object of type %s as array", ZSTR_VAL(ce->name));
        }
 }
 /* }}} */
@@ -777,7 +777,7 @@ static int zend_std_has_dimension(zval *object, zval *offset, int check_empty) /
                }
                zval_ptr_dtor(offset);
        } else {
-               zend_throw_error(zend_ce_error, "Cannot use object of type %s as array", ZSTR_VAL(ce->name));
+               zend_throw_error(NULL, "Cannot use object of type %s as array", ZSTR_VAL(ce->name));
                return 0;
        }
        return result;
@@ -914,10 +914,10 @@ static void zend_std_unset_property(zval *object, zval *member, void **cache_slo
                } else {
                        if (Z_STRVAL_P(member)[0] == '\0') {
                                if (Z_STRLEN_P(member) == 0) {
-                                       zend_throw_error(zend_ce_error, "Cannot access empty property");
+                                       zend_throw_error(NULL, "Cannot access empty property");
                                        goto exit;
                                } else {
-                                       zend_throw_error(zend_ce_error, "Cannot access property started with '\\0'");
+                                       zend_throw_error(NULL, "Cannot access property started with '\\0'");
                                        goto exit;
                                }
                        }
@@ -940,7 +940,7 @@ static void zend_std_unset_dimension(zval *object, zval *offset) /* {{{ */
                zend_call_method_with_1_params(object, ce, NULL, "offsetunset", NULL, offset);
                zval_ptr_dtor(offset);
        } else {
-               zend_throw_error(zend_ce_error, "Cannot use object of type %s as array", ZSTR_VAL(ce->name));
+               zend_throw_error(NULL, "Cannot use object of type %s as array", ZSTR_VAL(ce->name));
        }
 }
 /* }}} */
@@ -1115,7 +1115,7 @@ static union _zend_function *zend_std_get_method(zend_object **obj_ptr, zend_str
                        if (zobj->ce->__call) {
                                fbc = zend_get_user_call_function(zobj->ce, method_name);
                        } else {
-                               zend_throw_error(zend_ce_error, "Call to %s method %s::%s() from context '%s'", zend_visibility_string(fbc->common.fn_flags), ZEND_FN_SCOPE_NAME(fbc), ZSTR_VAL(method_name), EG(scope) ? ZSTR_VAL(EG(scope)->name) : "");
+                               zend_throw_error(NULL, "Call to %s method %s::%s() from context '%s'", zend_visibility_string(fbc->common.fn_flags), ZEND_FN_SCOPE_NAME(fbc), ZSTR_VAL(method_name), EG(scope) ? ZSTR_VAL(EG(scope)->name) : "");
                                fbc = NULL;
                        }
                }
@@ -1142,7 +1142,7 @@ static union _zend_function *zend_std_get_method(zend_object **obj_ptr, zend_str
                                if (zobj->ce->__call) {
                                        fbc = zend_get_user_call_function(zobj->ce, method_name);
                                } else {
-                                       zend_throw_error(zend_ce_error, "Call to %s method %s::%s() from context '%s'", zend_visibility_string(fbc->common.fn_flags), ZEND_FN_SCOPE_NAME(fbc), ZSTR_VAL(method_name), EG(scope) ? ZSTR_VAL(EG(scope)->name) : "");
+                                       zend_throw_error(NULL, "Call to %s method %s::%s() from context '%s'", zend_visibility_string(fbc->common.fn_flags), ZEND_FN_SCOPE_NAME(fbc), ZSTR_VAL(method_name), EG(scope) ? ZSTR_VAL(EG(scope)->name) : "");
                                        fbc = NULL;
                                }
                        }
@@ -1235,7 +1235,7 @@ ZEND_API zend_function *zend_std_get_static_method(zend_class_entry *ce, zend_st
                        if (ce->__callstatic) {
                                fbc = zend_get_user_callstatic_function(ce, function_name);
                        } else {
-                               zend_throw_error(zend_ce_error, "Call to %s method %s::%s() from context '%s'", zend_visibility_string(fbc->common.fn_flags), ZEND_FN_SCOPE_NAME(fbc), ZSTR_VAL(function_name), EG(scope) ? ZSTR_VAL(EG(scope)->name) : "");
+                               zend_throw_error(NULL, "Call to %s method %s::%s() from context '%s'", zend_visibility_string(fbc->common.fn_flags), ZEND_FN_SCOPE_NAME(fbc), ZSTR_VAL(function_name), EG(scope) ? ZSTR_VAL(EG(scope)->name) : "");
                                fbc = NULL;
                        }
                }
@@ -1246,7 +1246,7 @@ ZEND_API zend_function *zend_std_get_static_method(zend_class_entry *ce, zend_st
                        if (ce->__callstatic) {
                                fbc = zend_get_user_callstatic_function(ce, function_name);
                        } else {
-                               zend_throw_error(zend_ce_error, "Call to %s method %s::%s() from context '%s'", zend_visibility_string(fbc->common.fn_flags), ZEND_FN_SCOPE_NAME(fbc), ZSTR_VAL(function_name), EG(scope) ? ZSTR_VAL(EG(scope)->name) : "");
+                               zend_throw_error(NULL, "Call to %s method %s::%s() from context '%s'", zend_visibility_string(fbc->common.fn_flags), ZEND_FN_SCOPE_NAME(fbc), ZSTR_VAL(function_name), EG(scope) ? ZSTR_VAL(EG(scope)->name) : "");
                                fbc = NULL;
                        }
                }
@@ -1271,7 +1271,7 @@ ZEND_API zval *zend_std_get_static_property(zend_class_entry *ce, zend_string *p
 
        if (UNEXPECTED(!zend_verify_property_access(property_info, ce))) {
                if (!silent) {
-                       zend_throw_error(zend_ce_error, "Cannot access %s property %s::$%s", zend_visibility_string(property_info->flags), ZSTR_VAL(ce->name), ZSTR_VAL(property_name));
+                       zend_throw_error(NULL, "Cannot access %s property %s::$%s", zend_visibility_string(property_info->flags), ZSTR_VAL(ce->name), ZSTR_VAL(property_name));
                }
                return NULL;
        }
@@ -1291,7 +1291,7 @@ ZEND_API zval *zend_std_get_static_property(zend_class_entry *ce, zend_string *p
        if (UNEXPECTED(CE_STATIC_MEMBERS(ce) == NULL)) {
 undeclared_property:
                if (!silent) {
-                       zend_throw_error(zend_ce_error, "Access to undeclared static property: %s::$%s", ZSTR_VAL(ce->name), ZSTR_VAL(property_name));
+                       zend_throw_error(NULL, "Access to undeclared static property: %s::$%s", ZSTR_VAL(ce->name), ZSTR_VAL(property_name));
                }
                ret = NULL;
        }
@@ -1302,7 +1302,7 @@ undeclared_property:
 
 ZEND_API zend_bool zend_std_unset_static_property(zend_class_entry *ce, zend_string *property_name) /* {{{ */
 {
-       zend_throw_error(zend_ce_error, "Attempt to unset static property %s::$%s", ZSTR_VAL(ce->name), ZSTR_VAL(property_name));
+       zend_throw_error(NULL, "Attempt to unset static property %s::$%s", ZSTR_VAL(ce->name), ZSTR_VAL(property_name));
        return 0;
 }
 /* }}} */
@@ -1319,10 +1319,10 @@ ZEND_API union _zend_function *zend_std_get_constructor(zend_object *zobj) /* {{
                         */
                        if (UNEXPECTED(constructor->common.scope != EG(scope))) {
                                if (EG(scope)) {
-                                       zend_throw_error(zend_ce_error, "Call to private %s::%s() from context '%s'", ZSTR_VAL(constructor->common.scope->name), ZSTR_VAL(constructor->common.function_name), ZSTR_VAL(EG(scope)->name));
+                                       zend_throw_error(NULL, "Call to private %s::%s() from context '%s'", ZSTR_VAL(constructor->common.scope->name), ZSTR_VAL(constructor->common.function_name), ZSTR_VAL(EG(scope)->name));
                                        constructor = NULL;
                                } else {
-                                       zend_throw_error(zend_ce_error, "Call to private %s::%s() from invalid context", ZSTR_VAL(constructor->common.scope->name), ZSTR_VAL(constructor->common.function_name));
+                                       zend_throw_error(NULL, "Call to private %s::%s() from invalid context", ZSTR_VAL(constructor->common.scope->name), ZSTR_VAL(constructor->common.function_name));
                                        constructor = NULL;
                                }
                        }
@@ -1333,10 +1333,10 @@ ZEND_API union _zend_function *zend_std_get_constructor(zend_object *zobj) /* {{
                         */
                        if (UNEXPECTED(!zend_check_protected(zend_get_function_root_class(constructor), EG(scope)))) {
                                if (EG(scope)) {
-                                       zend_throw_error(zend_ce_error, "Call to protected %s::%s() from context '%s'", ZSTR_VAL(constructor->common.scope->name), ZSTR_VAL(constructor->common.function_name), ZSTR_VAL(EG(scope)->name));
+                                       zend_throw_error(NULL, "Call to protected %s::%s() from context '%s'", ZSTR_VAL(constructor->common.scope->name), ZSTR_VAL(constructor->common.function_name), ZSTR_VAL(EG(scope)->name));
                                        constructor = NULL;
                                } else {
-                                       zend_throw_error(zend_ce_error, "Call to protected %s::%s() from invalid context", ZSTR_VAL(constructor->common.scope->name), ZSTR_VAL(constructor->common.function_name));
+                                       zend_throw_error(NULL, "Call to protected %s::%s() from invalid context", ZSTR_VAL(constructor->common.scope->name), ZSTR_VAL(constructor->common.function_name));
                                        constructor = NULL;
                                }
                        }
index 93b21e00d9cf82373bfbebfe1a251ef5b17410ec..9694cd695878ebf3332d69fb85ed24891ff9ce57 100644 (file)
@@ -94,7 +94,7 @@ ZEND_API void zend_objects_destroy_object(zend_object *object)
                                        zend_class_entry *ce = object->ce;
 
                                        if (EG(current_execute_data)) {
-                                               zend_throw_error(zend_ce_error,
+                                               zend_throw_error(NULL,
                                                        "Call to private %s::__destruct() from context '%s'",
                                                        ZSTR_VAL(ce->name),
                                                        EG(scope) ? ZSTR_VAL(EG(scope)->name) : "");
@@ -113,7 +113,7 @@ ZEND_API void zend_objects_destroy_object(zend_object *object)
                                        zend_class_entry *ce = object->ce;
 
                                        if (EG(current_execute_data)) {
-                                               zend_throw_error(zend_ce_error,
+                                               zend_throw_error(NULL,
                                                        "Call to protected %s::__destruct() from context '%s'",
                                                        ZSTR_VAL(ce->name),
                                                        EG(scope) ? ZSTR_VAL(EG(scope)->name) : "");
index 8226cec9fedc62171745acafd8b33a75655d77ee..64c2620bf3bb8a0ced1bb3978577746fa0e3be10 100644 (file)
@@ -907,7 +907,7 @@ ZEND_API int ZEND_FASTCALL add_function(zval *result, zval *op1, zval *op2) /* {
                                        zendi_convert_scalar_to_number(op2, op2_copy, result);
                                        converted = 1;
                                } else {
-                                       zend_throw_error(zend_ce_error, "Unsupported operand types");
+                                       zend_throw_error(NULL, "Unsupported operand types");
                                        return FAILURE; /* unknown datatype */
                                }
                }
@@ -960,7 +960,7 @@ ZEND_API int ZEND_FASTCALL sub_function(zval *result, zval *op1, zval *op2) /* {
                                        zendi_convert_scalar_to_number(op2, op2_copy, result);
                                        converted = 1;
                                } else {
-                                       zend_throw_error(zend_ce_error, "Unsupported operand types");
+                                       zend_throw_error(NULL, "Unsupported operand types");
                                        return FAILURE; /* unknown datatype */
                                }
                }
@@ -1007,7 +1007,7 @@ ZEND_API int ZEND_FASTCALL mul_function(zval *result, zval *op1, zval *op2) /* {
                                        zendi_convert_scalar_to_number(op2, op2_copy, result);
                                        converted = 1;
                                } else {
-                                       zend_throw_error(zend_ce_error, "Unsupported operand types");
+                                       zend_throw_error(NULL, "Unsupported operand types");
                                        return FAILURE; /* unknown datatype */
                                }
                }
@@ -1095,7 +1095,7 @@ ZEND_API int ZEND_FASTCALL pow_function(zval *result, zval *op1, zval *op2) /* {
                                        }
                                        converted = 1;
                                } else {
-                                       zend_throw_error(zend_ce_error, "Unsupported operand types");
+                                       zend_throw_error(NULL, "Unsupported operand types");
                                        return FAILURE;
                                }
                }
@@ -1160,7 +1160,7 @@ ZEND_API int ZEND_FASTCALL div_function(zval *result, zval *op1, zval *op2) /* {
                                        zendi_convert_scalar_to_number(op2, op2_copy, result);
                                        converted = 1;
                                } else {
-                                       zend_throw_error(zend_ce_error, "Unsupported operand types");
+                                       zend_throw_error(NULL, "Unsupported operand types");
                                        return FAILURE; /* unknown datatype */
                                }
                }
@@ -1310,7 +1310,7 @@ try_again:
                default:
                        ZEND_TRY_UNARY_OBJECT_OPERATION(ZEND_BW_NOT);
 
-                       zend_throw_error(zend_ce_error, "Unsupported operand types");
+                       zend_throw_error(NULL, "Unsupported operand types");
                        return FAILURE;
        }
 }
@@ -1627,7 +1627,7 @@ ZEND_API int ZEND_FASTCALL concat_function(zval *result, zval *op1, zval *op2) /
                zend_string *result_str;
 
                if (UNEXPECTED(op1_len > SIZE_MAX - op2_len)) {
-                       zend_throw_error(zend_ce_error, "String size overflow");
+                       zend_throw_error(NULL, "String size overflow");
                        ZVAL_FALSE(result);
                        return FAILURE;
                }
index ea2c51a29c0b01972f092afa416611fae93060d5..cff901164ef010bbf50cff83c2df315dd0d1727e 100644 (file)
@@ -721,7 +721,7 @@ ZEND_VM_HELPER_EX(zend_binary_assign_op_obj_helper, VAR|UNUSED|CV, CONST|TMPVAR|
        object = GET_OP1_OBJ_ZVAL_PTR_PTR(BP_VAR_RW);
 
        if (OP1_TYPE == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
                FREE_UNFETCHED_OP2();
                HANDLE_EXCEPTION();
@@ -730,7 +730,7 @@ ZEND_VM_HELPER_EX(zend_binary_assign_op_obj_helper, VAR|UNUSED|CV, CONST|TMPVAR|
        property = GET_OP2_ZVAL_PTR(BP_VAR_R);
 
        if (OP1_TYPE == IS_VAR && UNEXPECTED(object == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an object");
+               zend_throw_error(NULL, "Cannot use string offset as an object");
                FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
                FREE_OP2();
                HANDLE_EXCEPTION();
@@ -785,13 +785,13 @@ ZEND_VM_HELPER_EX(zend_binary_assign_op_dim_helper, VAR|UNUSED|CV, CONST|TMPVAR|
        SAVE_OPLINE();
        container = GET_OP1_OBJ_ZVAL_PTR_PTR(BP_VAR_RW);
        if (OP1_TYPE == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
                FREE_UNFETCHED_OP2();
                HANDLE_EXCEPTION();
        }
        if (OP1_TYPE == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an array");
+               zend_throw_error(NULL, "Cannot use string offset as an array");
                FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
                FREE_UNFETCHED_OP2();
                HANDLE_EXCEPTION();
@@ -817,7 +817,7 @@ ZEND_VM_HELPER_EX(zend_binary_assign_op_dim_helper, VAR|UNUSED|CV, CONST|TMPVAR|
                var_ptr = Z_INDIRECT(rv);
 
                if (UNEXPECTED(var_ptr == NULL)) {
-                       zend_throw_error(zend_ce_error, "Cannot use assign-op operators with overloaded objects nor string offsets");
+                       zend_throw_error(NULL, "Cannot use assign-op operators with overloaded objects nor string offsets");
                        FREE_OP2();
                        FREE_OP(free_op_data1);
                        FREE_OP1_VAR_PTR();
@@ -860,7 +860,7 @@ ZEND_VM_HELPER_EX(zend_binary_assign_op_helper, VAR|CV, CONST|TMPVAR|CV, binary_
        var_ptr = GET_OP1_ZVAL_PTR_PTR(BP_VAR_RW);
 
        if (OP1_TYPE == IS_VAR && UNEXPECTED(var_ptr == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use assign-op operators with overloaded objects nor string offsets");
+               zend_throw_error(NULL, "Cannot use assign-op operators with overloaded objects nor string offsets");
                FREE_OP2();
                HANDLE_EXCEPTION();
        }
@@ -1118,7 +1118,7 @@ ZEND_VM_HELPER_EX(zend_pre_incdec_property_helper, VAR|UNUSED|CV, CONST|TMPVAR|C
        object = GET_OP1_OBJ_ZVAL_PTR_PTR(BP_VAR_RW);
 
        if (OP1_TYPE == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                FREE_UNFETCHED_OP2();
                HANDLE_EXCEPTION();
        }
@@ -1126,7 +1126,7 @@ ZEND_VM_HELPER_EX(zend_pre_incdec_property_helper, VAR|UNUSED|CV, CONST|TMPVAR|C
        property = GET_OP2_ZVAL_PTR(BP_VAR_R);
 
        if (OP1_TYPE == IS_VAR && UNEXPECTED(object == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot increment/decrement overloaded objects nor string offsets");
+               zend_throw_error(NULL, "Cannot increment/decrement overloaded objects nor string offsets");
                FREE_OP2();
                HANDLE_EXCEPTION();
        }
@@ -1200,7 +1200,7 @@ ZEND_VM_HELPER_EX(zend_post_incdec_property_helper, VAR|UNUSED|CV, CONST|TMPVAR|
        object = GET_OP1_OBJ_ZVAL_PTR_PTR(BP_VAR_RW);
 
        if (OP1_TYPE == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                FREE_UNFETCHED_OP2();
                HANDLE_EXCEPTION();
        }
@@ -1208,7 +1208,7 @@ ZEND_VM_HELPER_EX(zend_post_incdec_property_helper, VAR|UNUSED|CV, CONST|TMPVAR|
        property = GET_OP2_ZVAL_PTR(BP_VAR_R);
 
        if (OP1_TYPE == IS_VAR && UNEXPECTED(object == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot increment/decrement overloaded objects nor string offsets");
+               zend_throw_error(NULL, "Cannot increment/decrement overloaded objects nor string offsets");
                FREE_OP2();
                HANDLE_EXCEPTION();
        }
@@ -1276,7 +1276,7 @@ ZEND_VM_HANDLER(34, ZEND_PRE_INC, VAR|CV, ANY)
 
        if (OP1_TYPE == IS_VAR && UNEXPECTED(var_ptr == NULL)) {
                SAVE_OPLINE();
-               zend_throw_error(zend_ce_error, "Cannot increment/decrement overloaded objects nor string offsets");
+               zend_throw_error(NULL, "Cannot increment/decrement overloaded objects nor string offsets");
                HANDLE_EXCEPTION();
        }
 
@@ -1323,7 +1323,7 @@ ZEND_VM_HANDLER(35, ZEND_PRE_DEC, VAR|CV, ANY)
 
        if (OP1_TYPE == IS_VAR && UNEXPECTED(var_ptr == NULL)) {
                SAVE_OPLINE();
-               zend_throw_error(zend_ce_error, "Cannot increment/decrement overloaded objects nor string offsets");
+               zend_throw_error(NULL, "Cannot increment/decrement overloaded objects nor string offsets");
                HANDLE_EXCEPTION();
        }
 
@@ -1370,7 +1370,7 @@ ZEND_VM_HANDLER(36, ZEND_POST_INC, VAR|CV, ANY)
 
        if (OP1_TYPE == IS_VAR && UNEXPECTED(var_ptr == NULL)) {
                SAVE_OPLINE();
-               zend_throw_error(zend_ce_error, "Cannot increment/decrement overloaded objects nor string offsets");
+               zend_throw_error(NULL, "Cannot increment/decrement overloaded objects nor string offsets");
                HANDLE_EXCEPTION();
        }
 
@@ -1410,7 +1410,7 @@ ZEND_VM_HANDLER(37, ZEND_POST_DEC, VAR|CV, ANY)
 
        if (OP1_TYPE == IS_VAR && UNEXPECTED(var_ptr == NULL)) {
                SAVE_OPLINE();
-               zend_throw_error(zend_ce_error, "Cannot increment/decrement overloaded objects nor string offsets");
+               zend_throw_error(NULL, "Cannot increment/decrement overloaded objects nor string offsets");
                HANDLE_EXCEPTION();
        }
 
@@ -1506,7 +1506,7 @@ ZEND_VM_HELPER_EX(zend_fetch_var_address_helper, CONST|TMPVAR|CV, UNUSED|CONST|V
 
                                /* check if static properties were destoyed */
                                if (UNEXPECTED(CE_STATIC_MEMBERS(ce) == NULL)) {
-                                       zend_throw_error(zend_ce_error, "Access to undeclared static property: %s::$%s", ZSTR_VAL(ce->name), ZSTR_VAL(name));
+                                       zend_throw_error(NULL, "Access to undeclared static property: %s::$%s", ZSTR_VAL(ce->name), ZSTR_VAL(name));
                                        FREE_OP1();
                                        HANDLE_EXCEPTION();
                                }
@@ -1533,7 +1533,7 @@ ZEND_VM_HELPER_EX(zend_fetch_var_address_helper, CONST|TMPVAR|CV, UNUSED|CONST|V
                                
                                /* check if static properties were destoyed */
                                if (UNEXPECTED(CE_STATIC_MEMBERS(ce) == NULL)) {
-                                       zend_throw_error(zend_ce_error, "Access to undeclared static property: %s::$%s", ZSTR_VAL(ce->name), ZSTR_VAL(name));
+                                       zend_throw_error(NULL, "Access to undeclared static property: %s::$%s", ZSTR_VAL(ce->name), ZSTR_VAL(name));
                                        FREE_OP1();
                                        HANDLE_EXCEPTION();
                                }
@@ -1684,7 +1684,7 @@ ZEND_VM_HANDLER(84, ZEND_FETCH_DIM_W, VAR|CV, CONST|TMPVAR|UNUSED|CV)
        container = GET_OP1_ZVAL_PTR_PTR_UNDEF(BP_VAR_W);
 
        if (OP1_TYPE == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an array");
+               zend_throw_error(NULL, "Cannot use string offset as an array");
                HANDLE_EXCEPTION();
        }
        zend_fetch_dimension_address_W(EX_VAR(opline->result.var), container, GET_OP2_ZVAL_PTR(BP_VAR_R), OP2_TYPE);
@@ -1707,7 +1707,7 @@ ZEND_VM_HANDLER(87, ZEND_FETCH_DIM_RW, VAR|CV, CONST|TMPVAR|UNUSED|CV)
        container = GET_OP1_ZVAL_PTR_PTR(BP_VAR_RW);
 
        if (OP1_TYPE == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an array");
+               zend_throw_error(NULL, "Cannot use string offset as an array");
                HANDLE_EXCEPTION();
        }
        zend_fetch_dimension_address_RW(EX_VAR(opline->result.var), container, GET_OP2_ZVAL_PTR(BP_VAR_R), OP2_TYPE);
@@ -1745,14 +1745,14 @@ ZEND_VM_HANDLER(93, ZEND_FETCH_DIM_FUNC_ARG, CONST|TMP|VAR|CV, CONST|TMPVAR|UNUS
 
        if (zend_is_by_ref_func_arg_fetch(opline, EX(call))) {
         if (OP1_TYPE == IS_CONST || OP1_TYPE == IS_TMP_VAR) {
-            zend_throw_error(zend_ce_error, "Cannot use temporary expression in write context");
+            zend_throw_error(NULL, "Cannot use temporary expression in write context");
                        FREE_UNFETCHED_OP2();
                        FREE_UNFETCHED_OP1();
                        HANDLE_EXCEPTION();
         }
                container = GET_OP1_ZVAL_PTR_PTR_UNDEF(BP_VAR_W);
                if (OP1_TYPE == IS_VAR && UNEXPECTED(container == NULL)) {
-                       zend_throw_error(zend_ce_error, "Cannot use string offset as an array");
+                       zend_throw_error(NULL, "Cannot use string offset as an array");
                        FREE_UNFETCHED_OP2();
                        HANDLE_EXCEPTION();
                }
@@ -1764,7 +1764,7 @@ ZEND_VM_HANDLER(93, ZEND_FETCH_DIM_FUNC_ARG, CONST|TMP|VAR|CV, CONST|TMPVAR|UNUS
                FREE_OP1_VAR_PTR();
        } else {
                if (OP2_TYPE == IS_UNUSED) {
-                       zend_throw_error(zend_ce_error, "Cannot use [] for reading");
+                       zend_throw_error(NULL, "Cannot use [] for reading");
                        FREE_UNFETCHED_OP2();
                        FREE_UNFETCHED_OP1();
                        HANDLE_EXCEPTION();
@@ -1788,7 +1788,7 @@ ZEND_VM_HANDLER(96, ZEND_FETCH_DIM_UNSET, VAR|CV, CONST|TMPVAR|CV)
        container = GET_OP1_ZVAL_PTR_PTR(BP_VAR_UNSET);
 
        if (OP1_TYPE == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an array");
+               zend_throw_error(NULL, "Cannot use string offset as an array");
                FREE_UNFETCHED_OP2();
                HANDLE_EXCEPTION();
        }
@@ -1814,7 +1814,7 @@ ZEND_VM_HANDLER(82, ZEND_FETCH_OBJ_R, CONST|TMP|VAR|UNUSED|CV, CONST|TMPVAR|CV)
        container = GET_OP1_OBJ_ZVAL_PTR(BP_VAR_R);
 
        if (OP1_TYPE == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                FREE_UNFETCHED_OP2();
                HANDLE_EXCEPTION();
        }
@@ -1888,12 +1888,12 @@ ZEND_VM_HANDLER(85, ZEND_FETCH_OBJ_W, VAR|UNUSED|CV, CONST|TMPVAR|CV)
 
        container = GET_OP1_OBJ_ZVAL_PTR_PTR_UNDEF(BP_VAR_W);
        if (OP1_TYPE == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                FREE_OP2();
                HANDLE_EXCEPTION();
        }
        if (OP1_TYPE == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an object");
+               zend_throw_error(NULL, "Cannot use string offset as an object");
                FREE_OP2();
                HANDLE_EXCEPTION();
        }
@@ -1920,12 +1920,12 @@ ZEND_VM_HANDLER(88, ZEND_FETCH_OBJ_RW, VAR|UNUSED|CV, CONST|TMPVAR|CV)
        container = GET_OP1_OBJ_ZVAL_PTR_PTR(BP_VAR_RW);
 
        if (OP1_TYPE == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                FREE_OP2();
                HANDLE_EXCEPTION();
        }
        if (OP1_TYPE == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an object");
+               zend_throw_error(NULL, "Cannot use string offset as an object");
                FREE_OP2();
                HANDLE_EXCEPTION();
        }
@@ -1951,7 +1951,7 @@ ZEND_VM_HANDLER(91, ZEND_FETCH_OBJ_IS, CONST|TMPVAR|UNUSED|CV, CONST|TMPVAR|CV)
        container = GET_OP1_OBJ_ZVAL_PTR(BP_VAR_IS);
 
        if (OP1_TYPE == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                FREE_UNFETCHED_OP2();
                HANDLE_EXCEPTION();
        }
@@ -2028,18 +2028,18 @@ ZEND_VM_HANDLER(94, ZEND_FETCH_OBJ_FUNC_ARG, CONST|TMP|VAR|UNUSED|CV, CONST|TMPV
                container = GET_OP1_OBJ_ZVAL_PTR_PTR_UNDEF(BP_VAR_W);
 
                if (OP1_TYPE == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-                       zend_throw_error(zend_ce_error, "Using $this when not in object context");
+                       zend_throw_error(NULL, "Using $this when not in object context");
                        FREE_OP2();
                        HANDLE_EXCEPTION();
                }
                if (OP1_TYPE == IS_CONST || OP1_TYPE == IS_TMP_VAR) {
-                       zend_throw_error(zend_ce_error, "Cannot use temporary expression in write context");
+                       zend_throw_error(NULL, "Cannot use temporary expression in write context");
                        FREE_OP2();
                        FREE_OP1_VAR_PTR();
                        HANDLE_EXCEPTION();
                }
                if (OP1_TYPE == IS_VAR && UNEXPECTED(container == NULL)) {
-                       zend_throw_error(zend_ce_error, "Cannot use string offset as an object");
+                       zend_throw_error(NULL, "Cannot use string offset as an object");
                        FREE_OP2();
                        HANDLE_EXCEPTION();
                }
@@ -2066,7 +2066,7 @@ ZEND_VM_HANDLER(97, ZEND_FETCH_OBJ_UNSET, VAR|UNUSED|CV, CONST|TMPVAR|CV)
        container = GET_OP1_OBJ_ZVAL_PTR_PTR(BP_VAR_UNSET);
 
        if (OP1_TYPE == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                FREE_UNFETCHED_OP2();
                HANDLE_EXCEPTION();
        }
@@ -2074,7 +2074,7 @@ ZEND_VM_HANDLER(97, ZEND_FETCH_OBJ_UNSET, VAR|UNUSED|CV, CONST|TMPVAR|CV)
        property = GET_OP2_ZVAL_PTR(BP_VAR_R);
 
        if (OP1_TYPE == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an object");
+               zend_throw_error(NULL, "Cannot use string offset as an object");
                FREE_OP2();
                HANDLE_EXCEPTION();
        }
@@ -2144,7 +2144,7 @@ ZEND_VM_HANDLER(136, ZEND_ASSIGN_OBJ, VAR|UNUSED|CV, CONST|TMPVAR|CV)
        object = GET_OP1_OBJ_ZVAL_PTR_PTR_UNDEF(BP_VAR_W);
 
        if (OP1_TYPE == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                FREE_UNFETCHED_OP2();
                HANDLE_EXCEPTION();
        }
@@ -2152,7 +2152,7 @@ ZEND_VM_HANDLER(136, ZEND_ASSIGN_OBJ, VAR|UNUSED|CV, CONST|TMPVAR|CV)
        property_name = GET_OP2_ZVAL_PTR(BP_VAR_R);
 
        if (OP1_TYPE == IS_VAR && UNEXPECTED(object == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an array");
+               zend_throw_error(NULL, "Cannot use string offset as an array");
                FREE_OP2();
                HANDLE_EXCEPTION();
        }
@@ -2179,7 +2179,7 @@ ZEND_VM_HANDLER(147, ZEND_ASSIGN_DIM, VAR|CV, CONST|TMPVAR|UNUSED|CV)
        object_ptr = GET_OP1_ZVAL_PTR_PTR_UNDEF(BP_VAR_W);
 
        if (OP1_TYPE == IS_VAR && UNEXPECTED(object_ptr == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an array");
+               zend_throw_error(NULL, "Cannot use string offset as an array");
                FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
                FREE_UNFETCHED_OP2();
                HANDLE_EXCEPTION();
@@ -2228,7 +2228,7 @@ ZEND_VM_C_LABEL(try_assign_dim_array):
                } else if (EXPECTED(Z_TYPE_P(object_ptr) == IS_STRING)) {
                        if (EXPECTED(Z_STRLEN_P(object_ptr) != 0)) {
                                if (OP2_TYPE == IS_UNUSED) {
-                                       zend_throw_error(zend_ce_error, "[] operator not supported for strings");
+                                       zend_throw_error(NULL, "[] operator not supported for strings");
                                        FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
                                        FREE_OP1_VAR_PTR();
                                        HANDLE_EXCEPTION();
@@ -2313,7 +2313,7 @@ ZEND_VM_HANDLER(39, ZEND_ASSIGN_REF, VAR|CV, VAR|CV)
        value_ptr = GET_OP2_ZVAL_PTR_PTR(BP_VAR_W);
 
        if (OP2_TYPE == IS_VAR && UNEXPECTED(value_ptr == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot create references to/from string offsets nor overloaded objects");
+               zend_throw_error(NULL, "Cannot create references to/from string offsets nor overloaded objects");
                FREE_UNFETCHED_OP1();
                HANDLE_EXCEPTION();
        }
@@ -2334,14 +2334,14 @@ ZEND_VM_HANDLER(39, ZEND_ASSIGN_REF, VAR|CV, VAR|CV)
 
        variable_ptr = GET_OP1_ZVAL_PTR_PTR_UNDEF(BP_VAR_W);
        if (OP1_TYPE == IS_VAR && UNEXPECTED(variable_ptr == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot create references to/from string offsets nor overloaded objects");
+               zend_throw_error(NULL, "Cannot create references to/from string offsets nor overloaded objects");
                FREE_OP2_VAR_PTR();
                HANDLE_EXCEPTION();
        }
        if (OP1_TYPE == IS_VAR &&
            UNEXPECTED(Z_TYPE_P(EX_VAR(opline->op1.var)) != IS_INDIRECT) &&
            UNEXPECTED(!Z_ISREF_P(variable_ptr))) {
-               zend_throw_error(zend_ce_error, "Cannot assign by reference to overloaded object");
+               zend_throw_error(NULL, "Cannot assign by reference to overloaded object");
                FREE_OP2_VAR_PTR();
                FREE_OP1_VAR_PTR();
                HANDLE_EXCEPTION();
@@ -2921,7 +2921,7 @@ ZEND_VM_C_LABEL(try_class_name):
                        if (UNEXPECTED(EG(exception) != NULL)) {
                                HANDLE_EXCEPTION();
                        }
-                       zend_throw_error(zend_ce_error, "Class name must be a valid object or a string");
+                       zend_throw_error(NULL, "Class name must be a valid object or a string");
                }
 
                FREE_OP2();
@@ -2961,7 +2961,7 @@ ZEND_VM_HANDLER(112, ZEND_INIT_METHOD_CALL, CONST|TMPVAR|UNUSED|CV, CONST|TMPVAR
                        if (UNEXPECTED(EG(exception) != NULL)) {
                                HANDLE_EXCEPTION();
                        }
-                       zend_throw_error(zend_ce_error, "Method name must be a string");
+                       zend_throw_error(NULL, "Method name must be a string");
                        FREE_OP2();
                        FREE_UNFETCHED_OP1();
                        HANDLE_EXCEPTION();
@@ -2971,7 +2971,7 @@ ZEND_VM_HANDLER(112, ZEND_INIT_METHOD_CALL, CONST|TMPVAR|UNUSED|CV, CONST|TMPVAR
        object = GET_OP1_OBJ_ZVAL_PTR_UNDEF(BP_VAR_R);
 
        if (OP1_TYPE == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                FREE_OP2();
                HANDLE_EXCEPTION();
        }
@@ -2991,7 +2991,7 @@ ZEND_VM_HANDLER(112, ZEND_INIT_METHOD_CALL, CONST|TMPVAR|UNUSED|CV, CONST|TMPVAR
                                if (UNEXPECTED(EG(exception) != NULL)) {
                                        HANDLE_EXCEPTION();
                                }
-                               zend_throw_error(zend_ce_error, "Call to a member function %s() on %s", Z_STRVAL_P(function_name), zend_get_type_by_const(Z_TYPE_P(object)));
+                               zend_throw_error(NULL, "Call to a member function %s() on %s", Z_STRVAL_P(function_name), zend_get_type_by_const(Z_TYPE_P(object)));
                                FREE_OP2();
                                FREE_OP1();
                                HANDLE_EXCEPTION();
@@ -3007,7 +3007,7 @@ ZEND_VM_HANDLER(112, ZEND_INIT_METHOD_CALL, CONST|TMPVAR|UNUSED|CV, CONST|TMPVAR
            zend_object *orig_obj = obj;
 
                if (UNEXPECTED(obj->handlers->get_method == NULL)) {
-                       zend_throw_error(zend_ce_error, "Object does not support method calls");
+                       zend_throw_error(NULL, "Object does not support method calls");
                        FREE_OP2();
                        FREE_OP1();
                        HANDLE_EXCEPTION();
@@ -3017,7 +3017,7 @@ ZEND_VM_HANDLER(112, ZEND_INIT_METHOD_CALL, CONST|TMPVAR|UNUSED|CV, CONST|TMPVAR
                fbc = obj->handlers->get_method(&obj, Z_STR_P(function_name), ((OP2_TYPE == IS_CONST) ? (EX_CONSTANT(opline->op2) + 1) : NULL));
                if (UNEXPECTED(fbc == NULL)) {
                        if (EXPECTED(!EG(exception))) {
-                               zend_throw_error(zend_ce_error, "Call to undefined method %s::%s()", ZSTR_VAL(obj->ce->name), Z_STRVAL_P(function_name));
+                               zend_throw_error(NULL, "Call to undefined method %s::%s()", ZSTR_VAL(obj->ce->name), Z_STRVAL_P(function_name));
                        }
                        FREE_OP2();
                        FREE_OP1();
@@ -3073,7 +3073,7 @@ ZEND_VM_HANDLER(113, ZEND_INIT_STATIC_METHOD_CALL, CONST|VAR, CONST|TMPVAR|UNUSE
                                HANDLE_EXCEPTION();
                        }
                        if (UNEXPECTED(ce == NULL)) {
-                               zend_throw_error(zend_ce_error, "Class '%s' not found", Z_STRVAL_P(EX_CONSTANT(opline->op1)));
+                               zend_throw_error(NULL, "Class '%s' not found", Z_STRVAL_P(EX_CONSTANT(opline->op1)));
                                HANDLE_EXCEPTION();
                        }
                        CACHE_PTR(Z_CACHE_SLOT_P(EX_CONSTANT(opline->op1)), ce);
@@ -3102,7 +3102,7 @@ ZEND_VM_HANDLER(113, ZEND_INIT_STATIC_METHOD_CALL, CONST|VAR, CONST|TMPVAR|UNUSE
                                if (UNEXPECTED(EG(exception) != NULL)) {
                                        HANDLE_EXCEPTION();
                                }
-                               zend_throw_error(zend_ce_error, "Function name must be a string");
+                               zend_throw_error(NULL, "Function name must be a string");
                                FREE_OP2();
                                HANDLE_EXCEPTION();
                        }
@@ -3115,7 +3115,7 @@ ZEND_VM_HANDLER(113, ZEND_INIT_STATIC_METHOD_CALL, CONST|VAR, CONST|TMPVAR|UNUSE
                }
                if (UNEXPECTED(fbc == NULL)) {
                        if (EXPECTED(!EG(exception))) {
-                               zend_throw_error(zend_ce_error, "Call to undefined method %s::%s()", ZSTR_VAL(ce->name), Z_STRVAL_P(function_name));
+                               zend_throw_error(NULL, "Call to undefined method %s::%s()", ZSTR_VAL(ce->name), Z_STRVAL_P(function_name));
                        }
                        FREE_OP2();
                        HANDLE_EXCEPTION();
@@ -3134,11 +3134,11 @@ ZEND_VM_HANDLER(113, ZEND_INIT_STATIC_METHOD_CALL, CONST|VAR, CONST|TMPVAR|UNUSE
                }
        } else {
                if (UNEXPECTED(ce->constructor == NULL)) {
-                       zend_throw_error(zend_ce_error, "Cannot call constructor");
+                       zend_throw_error(NULL, "Cannot call constructor");
                        HANDLE_EXCEPTION();
                }
                if (Z_OBJ(EX(This)) && Z_OBJ(EX(This))->ce != ce->constructor->common.scope && (ce->constructor->common.fn_flags & ZEND_ACC_PRIVATE)) {
-                       zend_throw_error(zend_ce_error, "Cannot call private %s::__construct()", ZSTR_VAL(ce->name));
+                       zend_throw_error(NULL, "Cannot call private %s::__construct()", ZSTR_VAL(ce->name));
                        HANDLE_EXCEPTION();
                }
                fbc = ce->constructor;
@@ -3198,7 +3198,7 @@ ZEND_VM_HANDLER(59, ZEND_INIT_FCALL_BY_NAME, ANY, CONST)
                function_name = (zval*)(EX_CONSTANT(opline->op2)+1);
                if (UNEXPECTED((func = zend_hash_find(EG(function_table), Z_STR_P(function_name))) == NULL)) {
                        SAVE_OPLINE();
-                       zend_throw_error(zend_ce_error, "Call to undefined function %s()", Z_STRVAL_P(EX_CONSTANT(opline->op2)));
+                       zend_throw_error(NULL, "Call to undefined function %s()", Z_STRVAL_P(EX_CONSTANT(opline->op2)));
                        HANDLE_EXCEPTION();
                } else {
                        fbc = Z_FUNC_P(func);
@@ -3259,7 +3259,7 @@ ZEND_VM_C_LABEL(try_function_name):
                        }
                        if (UNEXPECTED(fbc == NULL)) {
                                if (EXPECTED(!EG(exception))) {
-                                       zend_throw_error(zend_ce_error, "Call to undefined method %s::%s()", ZSTR_VAL(called_scope->name), ZSTR_VAL(mname));
+                                       zend_throw_error(NULL, "Call to undefined method %s::%s()", ZSTR_VAL(called_scope->name), ZSTR_VAL(mname));
                                }
                                zend_string_release(lcname);
                                zend_string_release(mname);
@@ -3292,7 +3292,7 @@ ZEND_VM_C_LABEL(try_function_name):
                                lcname = zend_string_tolower(Z_STR_P(function_name));
                        }
                        if (UNEXPECTED((func = zend_hash_find(EG(function_table), lcname)) == NULL)) {
-                               zend_throw_error(zend_ce_error, "Call to undefined function %s()", Z_STRVAL_P(function_name));
+                               zend_throw_error(NULL, "Call to undefined function %s()", Z_STRVAL_P(function_name));
                                zend_string_release(lcname);
                                FREE_OP2();
                                HANDLE_EXCEPTION();
@@ -3323,21 +3323,21 @@ ZEND_VM_C_LABEL(try_function_name):
                method = zend_hash_index_find(Z_ARRVAL_P(function_name), 1);
 
                if (!obj || !method) {
-                       zend_throw_error(zend_ce_error, "Array callback has to contain indices 0 and 1");
+                       zend_throw_error(NULL, "Array callback has to contain indices 0 and 1");
                        FREE_OP2();
                        HANDLE_EXCEPTION();
                }
 
                ZVAL_DEREF(obj);
                if (Z_TYPE_P(obj) != IS_STRING && Z_TYPE_P(obj) != IS_OBJECT) {
-                       zend_throw_error(zend_ce_error, "First array member is not a valid class name or object");
+                       zend_throw_error(NULL, "First array member is not a valid class name or object");
                        FREE_OP2();
                        HANDLE_EXCEPTION();
                }
 
                ZVAL_DEREF(method);
                if (Z_TYPE_P(method) != IS_STRING) {
-                       zend_throw_error(zend_ce_error, "Second array member is not a valid method");
+                       zend_throw_error(NULL, "Second array member is not a valid method");
                        FREE_OP2();
                        HANDLE_EXCEPTION();
                }
@@ -3357,7 +3357,7 @@ ZEND_VM_C_LABEL(try_function_name):
                        }
                        if (UNEXPECTED(fbc == NULL)) {
                                if (EXPECTED(!EG(exception))) {
-                                       zend_throw_error(zend_ce_error, "Call to undefined method %s::%s()", ZSTR_VAL(called_scope->name), Z_STRVAL_P(method));
+                                       zend_throw_error(NULL, "Call to undefined method %s::%s()", ZSTR_VAL(called_scope->name), Z_STRVAL_P(method));
                                }
                                FREE_OP2();
                                HANDLE_EXCEPTION();
@@ -3383,7 +3383,7 @@ ZEND_VM_C_LABEL(try_function_name):
                        fbc = Z_OBJ_HT_P(obj)->get_method(&object, Z_STR_P(method), NULL);
                        if (UNEXPECTED(fbc == NULL)) {
                                if (EXPECTED(!EG(exception))) {
-                                       zend_throw_error(zend_ce_error, "Call to undefined method %s::%s()", ZSTR_VAL(object->ce->name), Z_STRVAL_P(method));
+                                       zend_throw_error(NULL, "Call to undefined method %s::%s()", ZSTR_VAL(object->ce->name), Z_STRVAL_P(method));
                                }
                                FREE_OP2();
                                HANDLE_EXCEPTION();
@@ -3407,7 +3407,7 @@ ZEND_VM_C_LABEL(try_function_name):
                if (UNEXPECTED(EG(exception) != NULL)) {
                        HANDLE_EXCEPTION();
                }
-               zend_throw_error(zend_ce_error, "Function name must be a string");
+               zend_throw_error(NULL, "Function name must be a string");
                FREE_OP2();
                HANDLE_EXCEPTION();
        }
@@ -3492,7 +3492,7 @@ ZEND_VM_HANDLER(69, ZEND_INIT_NS_FCALL_BY_NAME, ANY, CONST)
                func_name++;
                if (UNEXPECTED((func = zend_hash_find(EG(function_table), Z_STR_P(func_name))) == NULL)) {
                        SAVE_OPLINE();
-                       zend_throw_error(zend_ce_error, "Call to undefined function %s()", Z_STRVAL_P(EX_CONSTANT(opline->op2)));
+                       zend_throw_error(NULL, "Call to undefined function %s()", Z_STRVAL_P(EX_CONSTANT(opline->op2)));
                        HANDLE_EXCEPTION();
                } else {
                        fbc = Z_FUNC_P(func);
@@ -3524,7 +3524,7 @@ ZEND_VM_HANDLER(61, ZEND_INIT_FCALL, ANY, CONST)
                fbc = CACHED_PTR(Z_CACHE_SLOT_P(fname));
        } else if (UNEXPECTED((func = zend_hash_find(EG(function_table), Z_STR_P(fname))) == NULL)) {
            SAVE_OPLINE();
-               zend_throw_error(zend_ce_error, "Call to undefined function %s()", Z_STRVAL_P(fname));
+               zend_throw_error(NULL, "Call to undefined function %s()", Z_STRVAL_P(fname));
                HANDLE_EXCEPTION();
        } else {
                fbc = Z_FUNC_P(func);
@@ -3727,7 +3727,7 @@ ZEND_VM_HANDLER(60, ZEND_DO_FCALL, ANY, ANY)
        EX(call) = call->prev_execute_data;
        if (UNEXPECTED((fbc->common.fn_flags & (ZEND_ACC_ABSTRACT|ZEND_ACC_DEPRECATED)) != 0)) {
                if (UNEXPECTED((fbc->common.fn_flags & ZEND_ACC_ABSTRACT) != 0)) {
-                       zend_throw_error(zend_ce_error, "Cannot call abstract method %s::%s()", ZSTR_VAL(fbc->common.scope->name), ZSTR_VAL(fbc->common.function_name));
+                       zend_throw_error(NULL, "Cannot call abstract method %s::%s()", ZSTR_VAL(fbc->common.scope->name), ZSTR_VAL(fbc->common.function_name));
                        HANDLE_EXCEPTION();
                }
                if (UNEXPECTED((fbc->common.fn_flags & ZEND_ACC_DEPRECATED) != 0)) {
@@ -3852,7 +3852,7 @@ ZEND_VM_HANDLER(60, ZEND_DO_FCALL, ANY, ANY)
                        object->handlers->call_method(fbc->common.function_name, object, call, EX_VAR(opline->result.var));
                        EG(current_execute_data) = call->prev_execute_data;
                } else {
-                       zend_throw_error(zend_ce_error, "Cannot call overloaded function for non-object");
+                       zend_throw_error(NULL, "Cannot call overloaded function for non-object");
 #if 0
                        //TODO: implement clean exit ???
                        zend_vm_stack_free_args(call);
@@ -4046,7 +4046,7 @@ ZEND_VM_HANDLER(111, ZEND_RETURN_BY_REF, CONST|TMP|VAR|CV, ANY)
                retval_ptr = GET_OP1_ZVAL_PTR_PTR(BP_VAR_W);
 
                if (OP1_TYPE == IS_VAR && UNEXPECTED(retval_ptr == NULL)) {
-                       zend_throw_error(zend_ce_error, "Cannot return string offsets by reference");
+                       zend_throw_error(NULL, "Cannot return string offsets by reference");
                        HANDLE_EXCEPTION();
                }
 
@@ -4144,7 +4144,7 @@ ZEND_VM_HANDLER(108, ZEND_THROW, CONST|TMP|VAR|CV, ANY)
                        if (UNEXPECTED(EG(exception) != NULL)) {
                                HANDLE_EXCEPTION();
                        }
-                       zend_throw_error(zend_ce_error, "Can only throw objects");
+                       zend_throw_error(NULL, "Can only throw objects");
                        FREE_OP1();
                        HANDLE_EXCEPTION();
                }
@@ -4242,7 +4242,7 @@ ZEND_VM_HANDLER(116, ZEND_SEND_VAL_EX, CONST|TMP, ANY)
        } else if (ARG_MUST_BE_SENT_BY_REF(EX(call)->func, opline->op2.num)) {
 ZEND_VM_C_LABEL(send_val_by_ref):
                SAVE_OPLINE();
-               zend_throw_error(zend_ce_error, "Cannot pass parameter %d by reference", opline->op2.num);
+               zend_throw_error(NULL, "Cannot pass parameter %d by reference", opline->op2.num);
                FREE_UNFETCHED_OP1();
                arg = ZEND_CALL_VAR(EX(call), opline->result.var);
                ZVAL_UNDEF(arg);
@@ -4347,7 +4347,7 @@ ZEND_VM_HANDLER(67, ZEND_SEND_REF, VAR|CV, ANY)
        varptr = GET_OP1_ZVAL_PTR_PTR(BP_VAR_W);
 
        if (OP1_TYPE == IS_VAR && UNEXPECTED(varptr == NULL)) {
-               zend_throw_error(zend_ce_error, "Only variables can be passed by reference");
+               zend_throw_error(NULL, "Only variables can be passed by reference");
                HANDLE_EXCEPTION();
        }
 
@@ -4456,7 +4456,7 @@ ZEND_VM_C_LABEL(send_again):
 
                ZEND_HASH_FOREACH_STR_KEY_VAL(ht, name, arg) {
                        if (name) {
-                               zend_throw_error(zend_ce_error, "Cannot unpack array with string keys");
+                               zend_throw_error(NULL, "Cannot unpack array with string keys");
                                FREE_OP1();
                                HANDLE_EXCEPTION();
                        }
@@ -4526,7 +4526,7 @@ ZEND_VM_C_LABEL(send_again):
                                        }
 
                                        if (Z_TYPE(key) == IS_STRING) {
-                                               zend_throw_error(zend_ce_error,
+                                               zend_throw_error(NULL,
                                                        "Cannot unpack Traversable with string keys");
                                                zend_string_release(Z_STR(key));
                                                ZEND_VM_C_GOTO(unpack_iter_dtor);
@@ -5001,7 +5001,7 @@ ZEND_VM_HANDLER(110, ZEND_CLONE, CONST|TMPVAR|UNUSED|CV, ANY)
        obj = GET_OP1_OBJ_ZVAL_PTR_UNDEF(BP_VAR_R);
 
        if (OP1_TYPE == IS_UNUSED && UNEXPECTED(Z_OBJ_P(obj) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                HANDLE_EXCEPTION();
        }
 
@@ -5020,7 +5020,7 @@ ZEND_VM_HANDLER(110, ZEND_CLONE, CONST|TMPVAR|UNUSED|CV, ANY)
                        if (UNEXPECTED(EG(exception) != NULL)) {
                                HANDLE_EXCEPTION();
                        }
-                       zend_throw_error(zend_ce_error, "__clone method called on non-object");
+                       zend_throw_error(NULL, "__clone method called on non-object");
                        FREE_OP1();
                        HANDLE_EXCEPTION();
                }
@@ -5031,9 +5031,9 @@ ZEND_VM_HANDLER(110, ZEND_CLONE, CONST|TMPVAR|UNUSED|CV, ANY)
        clone_call =  Z_OBJ_HT_P(obj)->clone_obj;
        if (UNEXPECTED(clone_call == NULL)) {
                if (ce) {
-                       zend_throw_error(zend_ce_error, "Trying to clone an uncloneable object of class %s", ZSTR_VAL(ce->name));
+                       zend_throw_error(NULL, "Trying to clone an uncloneable object of class %s", ZSTR_VAL(ce->name));
                } else {
-                       zend_throw_error(zend_ce_error, "Trying to clone an uncloneable object");
+                       zend_throw_error(NULL, "Trying to clone an uncloneable object");
                }
                FREE_OP1();
                HANDLE_EXCEPTION();
@@ -5044,7 +5044,7 @@ ZEND_VM_HANDLER(110, ZEND_CLONE, CONST|TMPVAR|UNUSED|CV, ANY)
                        /* Ensure that if we're calling a private function, we're allowed to do so.
                         */
                        if (UNEXPECTED(ce != EG(scope))) {
-                               zend_throw_error(zend_ce_error, "Call to private %s::__clone() from context '%s'", ZSTR_VAL(ce->name), EG(scope) ? ZSTR_VAL(EG(scope)->name) : "");
+                               zend_throw_error(NULL, "Call to private %s::__clone() from context '%s'", ZSTR_VAL(ce->name), EG(scope) ? ZSTR_VAL(EG(scope)->name) : "");
                                FREE_OP1();
                                HANDLE_EXCEPTION();
                        }
@@ -5052,7 +5052,7 @@ ZEND_VM_HANDLER(110, ZEND_CLONE, CONST|TMPVAR|UNUSED|CV, ANY)
                        /* Ensure that if we're calling a protected function, we're allowed to do so.
                         */
                        if (UNEXPECTED(!zend_check_protected(zend_get_function_root_class(clone), EG(scope)))) {
-                               zend_throw_error(zend_ce_error, "Call to protected %s::__clone() from context '%s'", ZSTR_VAL(ce->name), EG(scope) ? ZSTR_VAL(EG(scope)->name) : "");
+                               zend_throw_error(NULL, "Call to protected %s::__clone() from context '%s'", ZSTR_VAL(ce->name), EG(scope) ? ZSTR_VAL(EG(scope)->name) : "");
                                FREE_OP1();
                                HANDLE_EXCEPTION();
                        }
@@ -5096,7 +5096,7 @@ ZEND_VM_HANDLER(99, ZEND_FETCH_CONSTANT, VAR|CONST|UNUSED, CONST)
                                CHECK_EXCEPTION();
                                ZEND_VM_NEXT_OPCODE();
                        } else {
-                               zend_throw_error(zend_ce_error, "Undefined constant '%s'", Z_STRVAL_P(EX_CONSTANT(opline->op2)));
+                               zend_throw_error(NULL, "Undefined constant '%s'", Z_STRVAL_P(EX_CONSTANT(opline->op2)));
                                HANDLE_EXCEPTION();
                        }
                } else {
@@ -5133,7 +5133,7 @@ ZEND_VM_HANDLER(99, ZEND_FETCH_CONSTANT, VAR|CONST|UNUSED, CONST)
                                                HANDLE_EXCEPTION();
                                        }
                                        if (UNEXPECTED(ce == NULL)) {
-                                               zend_throw_error(zend_ce_error, "Class '%s' not found", Z_STRVAL_P(EX_CONSTANT(opline->op1)));
+                                               zend_throw_error(NULL, "Class '%s' not found", Z_STRVAL_P(EX_CONSTANT(opline->op1)));
                                                HANDLE_EXCEPTION();
                                        }
                                        CACHE_PTR(Z_CACHE_SLOT_P(EX_CONSTANT(opline->op1)), ce);
@@ -5162,7 +5162,7 @@ ZEND_VM_HANDLER(99, ZEND_FETCH_CONSTANT, VAR|CONST|UNUSED, CONST)
                                        CACHE_POLYMORPHIC_PTR(Z_CACHE_SLOT_P(EX_CONSTANT(opline->op2)), ce, value);
                                }
                        } else {
-                               zend_throw_error(zend_ce_error, "Undefined class constant '%s'", Z_STRVAL_P(EX_CONSTANT(opline->op2)));
+                               zend_throw_error(NULL, "Undefined class constant '%s'", Z_STRVAL_P(EX_CONSTANT(opline->op2)));
                                HANDLE_EXCEPTION();
                        }
                } while (0);
@@ -5190,7 +5190,7 @@ ZEND_VM_HANDLER(72, ZEND_ADD_ARRAY_ELEMENT, CONST|TMP|VAR|CV, CONST|TMPVAR|UNUSE
            UNEXPECTED(opline->extended_value & ZEND_ARRAY_ELEMENT_REF)) {
                expr_ptr = GET_OP1_ZVAL_PTR_PTR(BP_VAR_W);
                if (OP1_TYPE == IS_VAR && UNEXPECTED(expr_ptr == NULL)) {
-                       zend_throw_error(zend_ce_error, "Cannot create references to/from string offsets");
+                       zend_throw_error(NULL, "Cannot create references to/from string offsets");
                        zend_array_destroy(Z_ARRVAL_P(EX_VAR(opline->result.var)));
                        HANDLE_EXCEPTION();
                }
@@ -5600,7 +5600,7 @@ ZEND_VM_HANDLER(74, ZEND_UNSET_VAR, CONST|TMPVAR|CV, UNUSED|CONST|VAR)
                                        HANDLE_EXCEPTION();
                                }
                                if (UNEXPECTED(ce == NULL)) {
-                                       zend_throw_error(zend_ce_error, "Class '%s' not found", Z_STRVAL_P(EX_CONSTANT(opline->op2)));
+                                       zend_throw_error(NULL, "Class '%s' not found", Z_STRVAL_P(EX_CONSTANT(opline->op2)));
                                        if (OP1_TYPE != IS_CONST) {
                                                zend_string_release(Z_STR(tmp));
                                        }
@@ -5637,12 +5637,12 @@ ZEND_VM_HANDLER(75, ZEND_UNSET_DIM, VAR|UNUSED|CV, CONST|TMPVAR|CV)
        SAVE_OPLINE();
        container = GET_OP1_OBJ_ZVAL_PTR_PTR(BP_VAR_UNSET);
        if (OP1_TYPE == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                FREE_UNFETCHED_OP2();
                HANDLE_EXCEPTION();
        }
        if (OP1_TYPE == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot unset string offsets");
+               zend_throw_error(NULL, "Cannot unset string offsets");
                FREE_UNFETCHED_OP2();
                HANDLE_EXCEPTION();
        }
@@ -5710,12 +5710,12 @@ ZEND_VM_C_LABEL(num_index_dim):
                }
                if (OP1_TYPE == IS_UNUSED || EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) {
                        if (UNEXPECTED(Z_OBJ_HT_P(container)->unset_dimension == NULL)) {
-                               zend_throw_error(zend_ce_error, "Cannot use object as array");
+                               zend_throw_error(NULL, "Cannot use object as array");
                        } else {
                                Z_OBJ_HT_P(container)->unset_dimension(container, offset);
                        }
                } else if (OP1_TYPE != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_STRING)) {
-                       zend_throw_error(zend_ce_error, "Cannot unset string offsets");
+                       zend_throw_error(NULL, "Cannot unset string offsets");
                }
        } while (0);
 
@@ -5735,12 +5735,12 @@ ZEND_VM_HANDLER(76, ZEND_UNSET_OBJ, VAR|UNUSED|CV, CONST|TMPVAR|CV)
        SAVE_OPLINE();
        container = GET_OP1_OBJ_ZVAL_PTR_PTR(BP_VAR_UNSET);
        if (OP1_TYPE == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                FREE_UNFETCHED_OP2();
                HANDLE_EXCEPTION();
        }
        if (OP1_TYPE == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot unset string offsets");
+               zend_throw_error(NULL, "Cannot unset string offsets");
                FREE_UNFETCHED_OP2();
                HANDLE_EXCEPTION();
        }
@@ -6540,7 +6540,7 @@ ZEND_VM_HANDLER(115, ZEND_ISSET_ISEMPTY_DIM_OBJ, CONST|TMPVAR|UNUSED|CV, CONST|T
        container = GET_OP1_OBJ_ZVAL_PTR(BP_VAR_IS);
 
        if (OP1_TYPE == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                FREE_UNFETCHED_OP2();
                HANDLE_EXCEPTION();
        }
@@ -6677,7 +6677,7 @@ ZEND_VM_HANDLER(148, ZEND_ISSET_ISEMPTY_PROP_OBJ, CONST|TMPVAR|UNUSED|CV, CONST|
        container = GET_OP1_OBJ_ZVAL_PTR(BP_VAR_IS);
 
        if (OP1_TYPE == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                FREE_UNFETCHED_OP2();
                HANDLE_EXCEPTION();
        }
@@ -7344,7 +7344,7 @@ ZEND_VM_HANDLER(160, ZEND_YIELD, CONST|TMP|VAR|CV|UNUSED, CONST|TMP|VAR|CV|UNUSE
 
        SAVE_OPLINE();
        if (UNEXPECTED(generator->flags & ZEND_GENERATOR_FORCED_CLOSE)) {
-               zend_throw_error(zend_ce_error, "Cannot yield from finally in a force-closed generator");
+               zend_throw_error(NULL, "Cannot yield from finally in a force-closed generator");
                FREE_UNFETCHED_OP2();
                FREE_UNFETCHED_OP1();
                HANDLE_EXCEPTION();
@@ -7379,7 +7379,7 @@ ZEND_VM_HANDLER(160, ZEND_YIELD, CONST|TMP|VAR|CV|UNUSED, CONST|TMP|VAR|CV|UNUSE
                                zval *value_ptr = GET_OP1_ZVAL_PTR_PTR(BP_VAR_W);
 
                                if (OP1_TYPE == IS_VAR && UNEXPECTED(value_ptr == NULL)) {
-                                       zend_throw_error(zend_ce_error, "Cannot yield string offsets by reference");
+                                       zend_throw_error(NULL, "Cannot yield string offsets by reference");
                                        FREE_UNFETCHED_OP2();
                                        HANDLE_EXCEPTION();
                                }
@@ -7510,13 +7510,13 @@ ZEND_VM_HANDLER(142, ZEND_YIELD_FROM, CONST|TMP|VAR|CV, ANY)
 
                        if (Z_ISUNDEF(new_gen->retval)) {
                                if (UNEXPECTED(zend_generator_get_current(new_gen) == generator)) {
-                                       zend_throw_error(zend_ce_error, "Impossible to yield from the Generator being currently run");
+                                       zend_throw_error(NULL, "Impossible to yield from the Generator being currently run");
                                        HANDLE_EXCEPTION();
                                } else {
                                        zend_generator_yield_from(generator, new_gen);
                                }
                        } else if (UNEXPECTED(new_gen->execute_data == NULL)) {
-                               zend_throw_error(zend_ce_error, "Generator passed to yield from was aborted without proper return and is unable to continue");
+                               zend_throw_error(NULL, "Generator passed to yield from was aborted without proper return and is unable to continue");
                                HANDLE_EXCEPTION();
                        } else {
                                if (RETURN_VALUE_USED(opline)) {
@@ -7530,7 +7530,7 @@ ZEND_VM_HANDLER(142, ZEND_YIELD_FROM, CONST|TMP|VAR|CV, ANY)
 
                        if (UNEXPECTED(!iter) || UNEXPECTED(EG(exception))) {
                                if (!EG(exception)) {
-                                       zend_throw_error(zend_ce_error, "Object of type %s did not create an Iterator", ZSTR_VAL(ce->name));
+                                       zend_throw_error(NULL, "Object of type %s did not create an Iterator", ZSTR_VAL(ce->name));
                                }
                                HANDLE_EXCEPTION();
                        }
@@ -7547,7 +7547,7 @@ ZEND_VM_HANDLER(142, ZEND_YIELD_FROM, CONST|TMP|VAR|CV, ANY)
                        ZVAL_OBJ(&generator->values, &iter->std);
                }
        } else {
-               zend_throw_error(zend_ce_error, "Can use \"yield from\" only with arrays and Traversables", 0);
+               zend_throw_error(NULL, "Can use \"yield from\" only with arrays and Traversables", 0);
                HANDLE_EXCEPTION();
        }
 
@@ -7868,7 +7868,7 @@ ZEND_VM_HANDLER(157, ZEND_FETCH_CLASS_NAME, ANY, ANY)
        fetch_type = opline->extended_value;
 
        if (UNEXPECTED(EG(scope) == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use \"%s\" when no class scope is active",
+               zend_throw_error(NULL, "Cannot use \"%s\" when no class scope is active",
                        fetch_type == ZEND_FETCH_CLASS_SELF ? "self" :
                        fetch_type == ZEND_FETCH_CLASS_PARENT ? "parent" : "static");
                HANDLE_EXCEPTION();
@@ -7880,7 +7880,7 @@ ZEND_VM_HANDLER(157, ZEND_FETCH_CLASS_NAME, ANY, ANY)
                        break;
                case ZEND_FETCH_CLASS_PARENT:
                        if (UNEXPECTED(EG(scope)->parent == NULL)) {
-                               zend_throw_error(zend_ce_error,
+                               zend_throw_error(NULL,
                                        "Cannot use \"parent\" when current class scope has no parent");
                                HANDLE_EXCEPTION();
                        }
index 8dfa511ed900a177d2b653773449d53fc9182305..720af1acd458ddf923eecd09f021e2e3ef6263a6 100644 (file)
@@ -745,7 +745,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_DO_FCALL_SPEC_HANDLER(ZEND_OPC
        EX(call) = call->prev_execute_data;
        if (UNEXPECTED((fbc->common.fn_flags & (ZEND_ACC_ABSTRACT|ZEND_ACC_DEPRECATED)) != 0)) {
                if (UNEXPECTED((fbc->common.fn_flags & ZEND_ACC_ABSTRACT) != 0)) {
-                       zend_throw_error(zend_ce_error, "Cannot call abstract method %s::%s()", ZSTR_VAL(fbc->common.scope->name), ZSTR_VAL(fbc->common.function_name));
+                       zend_throw_error(NULL, "Cannot call abstract method %s::%s()", ZSTR_VAL(fbc->common.scope->name), ZSTR_VAL(fbc->common.function_name));
                        HANDLE_EXCEPTION();
                }
                if (UNEXPECTED((fbc->common.fn_flags & ZEND_ACC_DEPRECATED) != 0)) {
@@ -870,7 +870,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_DO_FCALL_SPEC_HANDLER(ZEND_OPC
                        object->handlers->call_method(fbc->common.function_name, object, call, EX_VAR(opline->result.var));
                        EG(current_execute_data) = call->prev_execute_data;
                } else {
-                       zend_throw_error(zend_ce_error, "Cannot call overloaded function for non-object");
+                       zend_throw_error(NULL, "Cannot call overloaded function for non-object");
 #if 0
                        //TODO: implement clean exit ???
                        zend_vm_stack_free_args(call);
@@ -971,7 +971,7 @@ send_again:
 
                ZEND_HASH_FOREACH_STR_KEY_VAL(ht, name, arg) {
                        if (name) {
-                               zend_throw_error(zend_ce_error, "Cannot unpack array with string keys");
+                               zend_throw_error(NULL, "Cannot unpack array with string keys");
                                FREE_OP(free_op1);
                                HANDLE_EXCEPTION();
                        }
@@ -1041,7 +1041,7 @@ send_again:
                                        }
 
                                        if (Z_TYPE(key) == IS_STRING) {
-                                               zend_throw_error(zend_ce_error,
+                                               zend_throw_error(NULL,
                                                        "Cannot unpack Traversable with string keys");
                                                zend_string_release(Z_STR(key));
                                                goto unpack_iter_dtor;
@@ -1677,7 +1677,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_CLASS_NAME_SPEC_HANDLER(
        fetch_type = opline->extended_value;
 
        if (UNEXPECTED(EG(scope) == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use \"%s\" when no class scope is active",
+               zend_throw_error(NULL, "Cannot use \"%s\" when no class scope is active",
                        fetch_type == ZEND_FETCH_CLASS_SELF ? "self" :
                        fetch_type == ZEND_FETCH_CLASS_PARENT ? "parent" : "static");
                HANDLE_EXCEPTION();
@@ -1689,7 +1689,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_CLASS_NAME_SPEC_HANDLER(
                        break;
                case ZEND_FETCH_CLASS_PARENT:
                        if (UNEXPECTED(EG(scope)->parent == NULL)) {
-                               zend_throw_error(zend_ce_error,
+                               zend_throw_error(NULL,
                                        "Cannot use \"parent\" when current class scope has no parent");
                                HANDLE_EXCEPTION();
                        }
@@ -1880,7 +1880,7 @@ try_class_name:
                        if (UNEXPECTED(EG(exception) != NULL)) {
                                HANDLE_EXCEPTION();
                        }
-                       zend_throw_error(zend_ce_error, "Class name must be a valid object or a string");
+                       zend_throw_error(NULL, "Class name must be a valid object or a string");
                }
 
                CHECK_EXCEPTION();
@@ -1901,7 +1901,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_FCALL_BY_NAME_SPEC_CONST_
                function_name = (zval*)(EX_CONSTANT(opline->op2)+1);
                if (UNEXPECTED((func = zend_hash_find(EG(function_table), Z_STR_P(function_name))) == NULL)) {
                        SAVE_OPLINE();
-                       zend_throw_error(zend_ce_error, "Call to undefined function %s()", Z_STRVAL_P(EX_CONSTANT(opline->op2)));
+                       zend_throw_error(NULL, "Call to undefined function %s()", Z_STRVAL_P(EX_CONSTANT(opline->op2)));
                        HANDLE_EXCEPTION();
                } else {
                        fbc = Z_FUNC_P(func);
@@ -1962,7 +1962,7 @@ try_function_name:
                        }
                        if (UNEXPECTED(fbc == NULL)) {
                                if (EXPECTED(!EG(exception))) {
-                                       zend_throw_error(zend_ce_error, "Call to undefined method %s::%s()", ZSTR_VAL(called_scope->name), ZSTR_VAL(mname));
+                                       zend_throw_error(NULL, "Call to undefined method %s::%s()", ZSTR_VAL(called_scope->name), ZSTR_VAL(mname));
                                }
                                zend_string_release(lcname);
                                zend_string_release(mname);
@@ -1995,7 +1995,7 @@ try_function_name:
                                lcname = zend_string_tolower(Z_STR_P(function_name));
                        }
                        if (UNEXPECTED((func = zend_hash_find(EG(function_table), lcname)) == NULL)) {
-                               zend_throw_error(zend_ce_error, "Call to undefined function %s()", Z_STRVAL_P(function_name));
+                               zend_throw_error(NULL, "Call to undefined function %s()", Z_STRVAL_P(function_name));
                                zend_string_release(lcname);
 
                                HANDLE_EXCEPTION();
@@ -2026,21 +2026,21 @@ try_function_name:
                method = zend_hash_index_find(Z_ARRVAL_P(function_name), 1);
 
                if (!obj || !method) {
-                       zend_throw_error(zend_ce_error, "Array callback has to contain indices 0 and 1");
+                       zend_throw_error(NULL, "Array callback has to contain indices 0 and 1");
 
                        HANDLE_EXCEPTION();
                }
 
                ZVAL_DEREF(obj);
                if (Z_TYPE_P(obj) != IS_STRING && Z_TYPE_P(obj) != IS_OBJECT) {
-                       zend_throw_error(zend_ce_error, "First array member is not a valid class name or object");
+                       zend_throw_error(NULL, "First array member is not a valid class name or object");
 
                        HANDLE_EXCEPTION();
                }
 
                ZVAL_DEREF(method);
                if (Z_TYPE_P(method) != IS_STRING) {
-                       zend_throw_error(zend_ce_error, "Second array member is not a valid method");
+                       zend_throw_error(NULL, "Second array member is not a valid method");
 
                        HANDLE_EXCEPTION();
                }
@@ -2060,7 +2060,7 @@ try_function_name:
                        }
                        if (UNEXPECTED(fbc == NULL)) {
                                if (EXPECTED(!EG(exception))) {
-                                       zend_throw_error(zend_ce_error, "Call to undefined method %s::%s()", ZSTR_VAL(called_scope->name), Z_STRVAL_P(method));
+                                       zend_throw_error(NULL, "Call to undefined method %s::%s()", ZSTR_VAL(called_scope->name), Z_STRVAL_P(method));
                                }
 
                                HANDLE_EXCEPTION();
@@ -2086,7 +2086,7 @@ try_function_name:
                        fbc = Z_OBJ_HT_P(obj)->get_method(&object, Z_STR_P(method), NULL);
                        if (UNEXPECTED(fbc == NULL)) {
                                if (EXPECTED(!EG(exception))) {
-                                       zend_throw_error(zend_ce_error, "Call to undefined method %s::%s()", ZSTR_VAL(object->ce->name), Z_STRVAL_P(method));
+                                       zend_throw_error(NULL, "Call to undefined method %s::%s()", ZSTR_VAL(object->ce->name), Z_STRVAL_P(method));
                                }
 
                                HANDLE_EXCEPTION();
@@ -2110,7 +2110,7 @@ try_function_name:
                if (UNEXPECTED(EG(exception) != NULL)) {
                        HANDLE_EXCEPTION();
                }
-               zend_throw_error(zend_ce_error, "Function name must be a string");
+               zend_throw_error(NULL, "Function name must be a string");
 
                HANDLE_EXCEPTION();
        }
@@ -2138,7 +2138,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_NS_FCALL_BY_NAME_SPEC_CON
                func_name++;
                if (UNEXPECTED((func = zend_hash_find(EG(function_table), Z_STR_P(func_name))) == NULL)) {
                        SAVE_OPLINE();
-                       zend_throw_error(zend_ce_error, "Call to undefined function %s()", Z_STRVAL_P(EX_CONSTANT(opline->op2)));
+                       zend_throw_error(NULL, "Call to undefined function %s()", Z_STRVAL_P(EX_CONSTANT(opline->op2)));
                        HANDLE_EXCEPTION();
                } else {
                        fbc = Z_FUNC_P(func);
@@ -2170,7 +2170,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_FCALL_SPEC_CONST_HANDLER(
                fbc = CACHED_PTR(Z_CACHE_SLOT_P(fname));
        } else if (UNEXPECTED((func = zend_hash_find(EG(function_table), Z_STR_P(fname))) == NULL)) {
            SAVE_OPLINE();
-               zend_throw_error(zend_ce_error, "Call to undefined function %s()", Z_STRVAL_P(fname));
+               zend_throw_error(NULL, "Call to undefined function %s()", Z_STRVAL_P(fname));
                HANDLE_EXCEPTION();
        } else {
                fbc = Z_FUNC_P(func);
@@ -2290,7 +2290,7 @@ try_class_name:
                        if (UNEXPECTED(EG(exception) != NULL)) {
                                HANDLE_EXCEPTION();
                        }
-                       zend_throw_error(zend_ce_error, "Class name must be a valid object or a string");
+                       zend_throw_error(NULL, "Class name must be a valid object or a string");
                }
 
                CHECK_EXCEPTION();
@@ -2336,7 +2336,7 @@ try_class_name:
                        if (UNEXPECTED(EG(exception) != NULL)) {
                                HANDLE_EXCEPTION();
                        }
-                       zend_throw_error(zend_ce_error, "Class name must be a valid object or a string");
+                       zend_throw_error(NULL, "Class name must be a valid object or a string");
                }
 
                CHECK_EXCEPTION();
@@ -2390,7 +2390,7 @@ try_function_name:
                        }
                        if (UNEXPECTED(fbc == NULL)) {
                                if (EXPECTED(!EG(exception))) {
-                                       zend_throw_error(zend_ce_error, "Call to undefined method %s::%s()", ZSTR_VAL(called_scope->name), ZSTR_VAL(mname));
+                                       zend_throw_error(NULL, "Call to undefined method %s::%s()", ZSTR_VAL(called_scope->name), ZSTR_VAL(mname));
                                }
                                zend_string_release(lcname);
                                zend_string_release(mname);
@@ -2423,7 +2423,7 @@ try_function_name:
                                lcname = zend_string_tolower(Z_STR_P(function_name));
                        }
                        if (UNEXPECTED((func = zend_hash_find(EG(function_table), lcname)) == NULL)) {
-                               zend_throw_error(zend_ce_error, "Call to undefined function %s()", Z_STRVAL_P(function_name));
+                               zend_throw_error(NULL, "Call to undefined function %s()", Z_STRVAL_P(function_name));
                                zend_string_release(lcname);
 
                                HANDLE_EXCEPTION();
@@ -2454,21 +2454,21 @@ try_function_name:
                method = zend_hash_index_find(Z_ARRVAL_P(function_name), 1);
 
                if (!obj || !method) {
-                       zend_throw_error(zend_ce_error, "Array callback has to contain indices 0 and 1");
+                       zend_throw_error(NULL, "Array callback has to contain indices 0 and 1");
 
                        HANDLE_EXCEPTION();
                }
 
                ZVAL_DEREF(obj);
                if (Z_TYPE_P(obj) != IS_STRING && Z_TYPE_P(obj) != IS_OBJECT) {
-                       zend_throw_error(zend_ce_error, "First array member is not a valid class name or object");
+                       zend_throw_error(NULL, "First array member is not a valid class name or object");
 
                        HANDLE_EXCEPTION();
                }
 
                ZVAL_DEREF(method);
                if (Z_TYPE_P(method) != IS_STRING) {
-                       zend_throw_error(zend_ce_error, "Second array member is not a valid method");
+                       zend_throw_error(NULL, "Second array member is not a valid method");
 
                        HANDLE_EXCEPTION();
                }
@@ -2488,7 +2488,7 @@ try_function_name:
                        }
                        if (UNEXPECTED(fbc == NULL)) {
                                if (EXPECTED(!EG(exception))) {
-                                       zend_throw_error(zend_ce_error, "Call to undefined method %s::%s()", ZSTR_VAL(called_scope->name), Z_STRVAL_P(method));
+                                       zend_throw_error(NULL, "Call to undefined method %s::%s()", ZSTR_VAL(called_scope->name), Z_STRVAL_P(method));
                                }
 
                                HANDLE_EXCEPTION();
@@ -2514,7 +2514,7 @@ try_function_name:
                        fbc = Z_OBJ_HT_P(obj)->get_method(&object, Z_STR_P(method), NULL);
                        if (UNEXPECTED(fbc == NULL)) {
                                if (EXPECTED(!EG(exception))) {
-                                       zend_throw_error(zend_ce_error, "Call to undefined method %s::%s()", ZSTR_VAL(object->ce->name), Z_STRVAL_P(method));
+                                       zend_throw_error(NULL, "Call to undefined method %s::%s()", ZSTR_VAL(object->ce->name), Z_STRVAL_P(method));
                                }
 
                                HANDLE_EXCEPTION();
@@ -2538,7 +2538,7 @@ try_function_name:
                if (UNEXPECTED(EG(exception) != NULL)) {
                        HANDLE_EXCEPTION();
                }
-               zend_throw_error(zend_ce_error, "Function name must be a string");
+               zend_throw_error(NULL, "Function name must be a string");
 
                HANDLE_EXCEPTION();
        }
@@ -2589,7 +2589,7 @@ try_class_name:
                        if (UNEXPECTED(EG(exception) != NULL)) {
                                HANDLE_EXCEPTION();
                        }
-                       zend_throw_error(zend_ce_error, "Class name must be a valid object or a string");
+                       zend_throw_error(NULL, "Class name must be a valid object or a string");
                }
 
                zval_ptr_dtor_nogc(free_op2);
@@ -2644,7 +2644,7 @@ try_function_name:
                        }
                        if (UNEXPECTED(fbc == NULL)) {
                                if (EXPECTED(!EG(exception))) {
-                                       zend_throw_error(zend_ce_error, "Call to undefined method %s::%s()", ZSTR_VAL(called_scope->name), ZSTR_VAL(mname));
+                                       zend_throw_error(NULL, "Call to undefined method %s::%s()", ZSTR_VAL(called_scope->name), ZSTR_VAL(mname));
                                }
                                zend_string_release(lcname);
                                zend_string_release(mname);
@@ -2677,7 +2677,7 @@ try_function_name:
                                lcname = zend_string_tolower(Z_STR_P(function_name));
                        }
                        if (UNEXPECTED((func = zend_hash_find(EG(function_table), lcname)) == NULL)) {
-                               zend_throw_error(zend_ce_error, "Call to undefined function %s()", Z_STRVAL_P(function_name));
+                               zend_throw_error(NULL, "Call to undefined function %s()", Z_STRVAL_P(function_name));
                                zend_string_release(lcname);
                                zval_ptr_dtor_nogc(free_op2);
                                HANDLE_EXCEPTION();
@@ -2708,21 +2708,21 @@ try_function_name:
                method = zend_hash_index_find(Z_ARRVAL_P(function_name), 1);
 
                if (!obj || !method) {
-                       zend_throw_error(zend_ce_error, "Array callback has to contain indices 0 and 1");
+                       zend_throw_error(NULL, "Array callback has to contain indices 0 and 1");
                        zval_ptr_dtor_nogc(free_op2);
                        HANDLE_EXCEPTION();
                }
 
                ZVAL_DEREF(obj);
                if (Z_TYPE_P(obj) != IS_STRING && Z_TYPE_P(obj) != IS_OBJECT) {
-                       zend_throw_error(zend_ce_error, "First array member is not a valid class name or object");
+                       zend_throw_error(NULL, "First array member is not a valid class name or object");
                        zval_ptr_dtor_nogc(free_op2);
                        HANDLE_EXCEPTION();
                }
 
                ZVAL_DEREF(method);
                if (Z_TYPE_P(method) != IS_STRING) {
-                       zend_throw_error(zend_ce_error, "Second array member is not a valid method");
+                       zend_throw_error(NULL, "Second array member is not a valid method");
                        zval_ptr_dtor_nogc(free_op2);
                        HANDLE_EXCEPTION();
                }
@@ -2742,7 +2742,7 @@ try_function_name:
                        }
                        if (UNEXPECTED(fbc == NULL)) {
                                if (EXPECTED(!EG(exception))) {
-                                       zend_throw_error(zend_ce_error, "Call to undefined method %s::%s()", ZSTR_VAL(called_scope->name), Z_STRVAL_P(method));
+                                       zend_throw_error(NULL, "Call to undefined method %s::%s()", ZSTR_VAL(called_scope->name), Z_STRVAL_P(method));
                                }
                                zval_ptr_dtor_nogc(free_op2);
                                HANDLE_EXCEPTION();
@@ -2768,7 +2768,7 @@ try_function_name:
                        fbc = Z_OBJ_HT_P(obj)->get_method(&object, Z_STR_P(method), NULL);
                        if (UNEXPECTED(fbc == NULL)) {
                                if (EXPECTED(!EG(exception))) {
-                                       zend_throw_error(zend_ce_error, "Call to undefined method %s::%s()", ZSTR_VAL(object->ce->name), Z_STRVAL_P(method));
+                                       zend_throw_error(NULL, "Call to undefined method %s::%s()", ZSTR_VAL(object->ce->name), Z_STRVAL_P(method));
                                }
                                zval_ptr_dtor_nogc(free_op2);
                                HANDLE_EXCEPTION();
@@ -2792,7 +2792,7 @@ try_function_name:
                if (UNEXPECTED(EG(exception) != NULL)) {
                        HANDLE_EXCEPTION();
                }
-               zend_throw_error(zend_ce_error, "Function name must be a string");
+               zend_throw_error(NULL, "Function name must be a string");
                zval_ptr_dtor_nogc(free_op2);
                HANDLE_EXCEPTION();
        }
@@ -3154,7 +3154,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_RETURN_BY_REF_SPEC_CONST_HANDL
                retval_ptr = NULL;
 
                if (IS_CONST == IS_VAR && UNEXPECTED(retval_ptr == NULL)) {
-                       zend_throw_error(zend_ce_error, "Cannot return string offsets by reference");
+                       zend_throw_error(NULL, "Cannot return string offsets by reference");
                        HANDLE_EXCEPTION();
                }
 
@@ -3251,7 +3251,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_THROW_SPEC_CONST_HANDLER(ZEND_
                        if (UNEXPECTED(EG(exception) != NULL)) {
                                HANDLE_EXCEPTION();
                        }
-                       zend_throw_error(zend_ce_error, "Can only throw objects");
+                       zend_throw_error(NULL, "Can only throw objects");
 
                        HANDLE_EXCEPTION();
                }
@@ -3298,7 +3298,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEND_VAL_EX_SPEC_CONST_HANDLER
        } else if (ARG_MUST_BE_SENT_BY_REF(EX(call)->func, opline->op2.num)) {
 send_val_by_ref:
                SAVE_OPLINE();
-               zend_throw_error(zend_ce_error, "Cannot pass parameter %d by reference", opline->op2.num);
+               zend_throw_error(NULL, "Cannot pass parameter %d by reference", opline->op2.num);
 
                arg = ZEND_CALL_VAR(EX(call), opline->result.var);
                ZVAL_UNDEF(arg);
@@ -3408,7 +3408,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CLONE_SPEC_CONST_HANDLER(ZEND_
        obj = EX_CONSTANT(opline->op1);
 
        if (IS_CONST == IS_UNUSED && UNEXPECTED(Z_OBJ_P(obj) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                HANDLE_EXCEPTION();
        }
 
@@ -3427,7 +3427,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CLONE_SPEC_CONST_HANDLER(ZEND_
                        if (UNEXPECTED(EG(exception) != NULL)) {
                                HANDLE_EXCEPTION();
                        }
-                       zend_throw_error(zend_ce_error, "__clone method called on non-object");
+                       zend_throw_error(NULL, "__clone method called on non-object");
 
                        HANDLE_EXCEPTION();
                }
@@ -3438,9 +3438,9 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CLONE_SPEC_CONST_HANDLER(ZEND_
        clone_call =  Z_OBJ_HT_P(obj)->clone_obj;
        if (UNEXPECTED(clone_call == NULL)) {
                if (ce) {
-                       zend_throw_error(zend_ce_error, "Trying to clone an uncloneable object of class %s", ZSTR_VAL(ce->name));
+                       zend_throw_error(NULL, "Trying to clone an uncloneable object of class %s", ZSTR_VAL(ce->name));
                } else {
-                       zend_throw_error(zend_ce_error, "Trying to clone an uncloneable object");
+                       zend_throw_error(NULL, "Trying to clone an uncloneable object");
                }
 
                HANDLE_EXCEPTION();
@@ -3451,7 +3451,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CLONE_SPEC_CONST_HANDLER(ZEND_
                        /* Ensure that if we're calling a private function, we're allowed to do so.
                         */
                        if (UNEXPECTED(ce != EG(scope))) {
-                               zend_throw_error(zend_ce_error, "Call to private %s::__clone() from context '%s'", ZSTR_VAL(ce->name), EG(scope) ? ZSTR_VAL(EG(scope)->name) : "");
+                               zend_throw_error(NULL, "Call to private %s::__clone() from context '%s'", ZSTR_VAL(ce->name), EG(scope) ? ZSTR_VAL(EG(scope)->name) : "");
 
                                HANDLE_EXCEPTION();
                        }
@@ -3459,7 +3459,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CLONE_SPEC_CONST_HANDLER(ZEND_
                        /* Ensure that if we're calling a protected function, we're allowed to do so.
                         */
                        if (UNEXPECTED(!zend_check_protected(zend_get_function_root_class(clone), EG(scope)))) {
-                               zend_throw_error(zend_ce_error, "Call to protected %s::__clone() from context '%s'", ZSTR_VAL(ce->name), EG(scope) ? ZSTR_VAL(EG(scope)->name) : "");
+                               zend_throw_error(NULL, "Call to protected %s::__clone() from context '%s'", ZSTR_VAL(ce->name), EG(scope) ? ZSTR_VAL(EG(scope)->name) : "");
 
                                HANDLE_EXCEPTION();
                        }
@@ -4147,13 +4147,13 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_FROM_SPEC_CONST_HANDLER(
 
                        if (Z_ISUNDEF(new_gen->retval)) {
                                if (UNEXPECTED(zend_generator_get_current(new_gen) == generator)) {
-                                       zend_throw_error(zend_ce_error, "Impossible to yield from the Generator being currently run");
+                                       zend_throw_error(NULL, "Impossible to yield from the Generator being currently run");
                                        HANDLE_EXCEPTION();
                                } else {
                                        zend_generator_yield_from(generator, new_gen);
                                }
                        } else if (UNEXPECTED(new_gen->execute_data == NULL)) {
-                               zend_throw_error(zend_ce_error, "Generator passed to yield from was aborted without proper return and is unable to continue");
+                               zend_throw_error(NULL, "Generator passed to yield from was aborted without proper return and is unable to continue");
                                HANDLE_EXCEPTION();
                        } else {
                                if (RETURN_VALUE_USED(opline)) {
@@ -4166,7 +4166,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_FROM_SPEC_CONST_HANDLER(
 
                        if (UNEXPECTED(!iter) || UNEXPECTED(EG(exception))) {
                                if (!EG(exception)) {
-                                       zend_throw_error(zend_ce_error, "Object of type %s did not create an Iterator", ZSTR_VAL(ce->name));
+                                       zend_throw_error(NULL, "Object of type %s did not create an Iterator", ZSTR_VAL(ce->name));
                                }
                                HANDLE_EXCEPTION();
                        }
@@ -4183,7 +4183,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_FROM_SPEC_CONST_HANDLER(
                        ZVAL_OBJ(&generator->values, &iter->std);
                }
        } else {
-               zend_throw_error(zend_ce_error, "Can use \"yield from\" only with arrays and Traversables", 0);
+               zend_throw_error(NULL, "Can use \"yield from\" only with arrays and Traversables", 0);
                HANDLE_EXCEPTION();
        }
 
@@ -4985,7 +4985,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_
 
                                /* check if static properties were destoyed */
                                if (UNEXPECTED(CE_STATIC_MEMBERS(ce) == NULL)) {
-                                       zend_throw_error(zend_ce_error, "Access to undeclared static property: %s::$%s", ZSTR_VAL(ce->name), ZSTR_VAL(name));
+                                       zend_throw_error(NULL, "Access to undeclared static property: %s::$%s", ZSTR_VAL(ce->name), ZSTR_VAL(name));
 
                                        HANDLE_EXCEPTION();
                                }
@@ -5012,7 +5012,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_
 
                                /* check if static properties were destoyed */
                                if (UNEXPECTED(CE_STATIC_MEMBERS(ce) == NULL)) {
-                                       zend_throw_error(zend_ce_error, "Access to undeclared static property: %s::$%s", ZSTR_VAL(ce->name), ZSTR_VAL(name));
+                                       zend_throw_error(NULL, "Access to undeclared static property: %s::$%s", ZSTR_VAL(ce->name), ZSTR_VAL(name));
 
                                        HANDLE_EXCEPTION();
                                }
@@ -5177,14 +5177,14 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_CONST_
 
        if (zend_is_by_ref_func_arg_fetch(opline, EX(call))) {
         if (IS_CONST == IS_CONST || IS_CONST == IS_TMP_VAR) {
-            zend_throw_error(zend_ce_error, "Cannot use temporary expression in write context");
+            zend_throw_error(NULL, "Cannot use temporary expression in write context");
 
 
                        HANDLE_EXCEPTION();
         }
                container = NULL;
                if (IS_CONST == IS_VAR && UNEXPECTED(container == NULL)) {
-                       zend_throw_error(zend_ce_error, "Cannot use string offset as an array");
+                       zend_throw_error(NULL, "Cannot use string offset as an array");
 
                        HANDLE_EXCEPTION();
                }
@@ -5196,7 +5196,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_CONST_
 
        } else {
                if (IS_CONST == IS_UNUSED) {
-                       zend_throw_error(zend_ce_error, "Cannot use [] for reading");
+                       zend_throw_error(NULL, "Cannot use [] for reading");
 
 
                        HANDLE_EXCEPTION();
@@ -5222,7 +5222,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_CONST_CONST_H
        container = EX_CONSTANT(opline->op1);
 
        if (IS_CONST == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
@@ -5295,7 +5295,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_CONST_CONST_
        container = EX_CONSTANT(opline->op1);
 
        if (IS_CONST == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
@@ -5371,18 +5371,18 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CONST_
                container = NULL;
 
                if (IS_CONST == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-                       zend_throw_error(zend_ce_error, "Using $this when not in object context");
+                       zend_throw_error(NULL, "Using $this when not in object context");
 
                        HANDLE_EXCEPTION();
                }
                if (IS_CONST == IS_CONST || IS_CONST == IS_TMP_VAR) {
-                       zend_throw_error(zend_ce_error, "Cannot use temporary expression in write context");
+                       zend_throw_error(NULL, "Cannot use temporary expression in write context");
 
 
                        HANDLE_EXCEPTION();
                }
                if (IS_CONST == IS_VAR && UNEXPECTED(container == NULL)) {
-                       zend_throw_error(zend_ce_error, "Cannot use string offset as an object");
+                       zend_throw_error(NULL, "Cannot use string offset as an object");
 
                        HANDLE_EXCEPTION();
                }
@@ -5543,7 +5543,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_CONST_CO
                        if (UNEXPECTED(EG(exception) != NULL)) {
                                HANDLE_EXCEPTION();
                        }
-                       zend_throw_error(zend_ce_error, "Method name must be a string");
+                       zend_throw_error(NULL, "Method name must be a string");
 
 
                        HANDLE_EXCEPTION();
@@ -5553,7 +5553,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_CONST_CO
        object = EX_CONSTANT(opline->op1);
 
        if (IS_CONST == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
@@ -5573,7 +5573,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_CONST_CO
                                if (UNEXPECTED(EG(exception) != NULL)) {
                                        HANDLE_EXCEPTION();
                                }
-                               zend_throw_error(zend_ce_error, "Call to a member function %s() on %s", Z_STRVAL_P(function_name), zend_get_type_by_const(Z_TYPE_P(object)));
+                               zend_throw_error(NULL, "Call to a member function %s() on %s", Z_STRVAL_P(function_name), zend_get_type_by_const(Z_TYPE_P(object)));
 
 
                                HANDLE_EXCEPTION();
@@ -5589,7 +5589,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_CONST_CO
            zend_object *orig_obj = obj;
 
                if (UNEXPECTED(obj->handlers->get_method == NULL)) {
-                       zend_throw_error(zend_ce_error, "Object does not support method calls");
+                       zend_throw_error(NULL, "Object does not support method calls");
 
 
                        HANDLE_EXCEPTION();
@@ -5599,7 +5599,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_CONST_CO
                fbc = obj->handlers->get_method(&obj, Z_STR_P(function_name), ((IS_CONST == IS_CONST) ? (EX_CONSTANT(opline->op2) + 1) : NULL));
                if (UNEXPECTED(fbc == NULL)) {
                        if (EXPECTED(!EG(exception))) {
-                               zend_throw_error(zend_ce_error, "Call to undefined method %s::%s()", ZSTR_VAL(obj->ce->name), Z_STRVAL_P(function_name));
+                               zend_throw_error(NULL, "Call to undefined method %s::%s()", ZSTR_VAL(obj->ce->name), Z_STRVAL_P(function_name));
                        }
 
 
@@ -5653,7 +5653,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_C
                                HANDLE_EXCEPTION();
                        }
                        if (UNEXPECTED(ce == NULL)) {
-                               zend_throw_error(zend_ce_error, "Class '%s' not found", Z_STRVAL_P(EX_CONSTANT(opline->op1)));
+                               zend_throw_error(NULL, "Class '%s' not found", Z_STRVAL_P(EX_CONSTANT(opline->op1)));
                                HANDLE_EXCEPTION();
                        }
                        CACHE_PTR(Z_CACHE_SLOT_P(EX_CONSTANT(opline->op1)), ce);
@@ -5682,7 +5682,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_C
                                if (UNEXPECTED(EG(exception) != NULL)) {
                                        HANDLE_EXCEPTION();
                                }
-                               zend_throw_error(zend_ce_error, "Function name must be a string");
+                               zend_throw_error(NULL, "Function name must be a string");
 
                                HANDLE_EXCEPTION();
                        }
@@ -5695,7 +5695,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_C
                }
                if (UNEXPECTED(fbc == NULL)) {
                        if (EXPECTED(!EG(exception))) {
-                               zend_throw_error(zend_ce_error, "Call to undefined method %s::%s()", ZSTR_VAL(ce->name), Z_STRVAL_P(function_name));
+                               zend_throw_error(NULL, "Call to undefined method %s::%s()", ZSTR_VAL(ce->name), Z_STRVAL_P(function_name));
                        }
 
                        HANDLE_EXCEPTION();
@@ -5714,11 +5714,11 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_C
                }
        } else {
                if (UNEXPECTED(ce->constructor == NULL)) {
-                       zend_throw_error(zend_ce_error, "Cannot call constructor");
+                       zend_throw_error(NULL, "Cannot call constructor");
                        HANDLE_EXCEPTION();
                }
                if (Z_OBJ(EX(This)) && Z_OBJ(EX(This))->ce != ce->constructor->common.scope && (ce->constructor->common.fn_flags & ZEND_ACC_PRIVATE)) {
-                       zend_throw_error(zend_ce_error, "Cannot call private %s::__construct()", ZSTR_VAL(ce->name));
+                       zend_throw_error(NULL, "Cannot call private %s::__construct()", ZSTR_VAL(ce->name));
                        HANDLE_EXCEPTION();
                }
                fbc = ce->constructor;
@@ -5914,7 +5914,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_CONSTANT_SPEC_CONST_CONS
                                CHECK_EXCEPTION();
                                ZEND_VM_NEXT_OPCODE();
                        } else {
-                               zend_throw_error(zend_ce_error, "Undefined constant '%s'", Z_STRVAL_P(EX_CONSTANT(opline->op2)));
+                               zend_throw_error(NULL, "Undefined constant '%s'", Z_STRVAL_P(EX_CONSTANT(opline->op2)));
                                HANDLE_EXCEPTION();
                        }
                } else {
@@ -5951,7 +5951,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_CONSTANT_SPEC_CONST_CONS
                                                HANDLE_EXCEPTION();
                                        }
                                        if (UNEXPECTED(ce == NULL)) {
-                                               zend_throw_error(zend_ce_error, "Class '%s' not found", Z_STRVAL_P(EX_CONSTANT(opline->op1)));
+                                               zend_throw_error(NULL, "Class '%s' not found", Z_STRVAL_P(EX_CONSTANT(opline->op1)));
                                                HANDLE_EXCEPTION();
                                        }
                                        CACHE_PTR(Z_CACHE_SLOT_P(EX_CONSTANT(opline->op1)), ce);
@@ -5980,7 +5980,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_CONSTANT_SPEC_CONST_CONS
                                        CACHE_POLYMORPHIC_PTR(Z_CACHE_SLOT_P(EX_CONSTANT(opline->op2)), ce, value);
                                }
                        } else {
-                               zend_throw_error(zend_ce_error, "Undefined class constant '%s'", Z_STRVAL_P(EX_CONSTANT(opline->op2)));
+                               zend_throw_error(NULL, "Undefined class constant '%s'", Z_STRVAL_P(EX_CONSTANT(opline->op2)));
                                HANDLE_EXCEPTION();
                        }
                } while (0);
@@ -6008,7 +6008,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_CONST_C
            UNEXPECTED(opline->extended_value & ZEND_ARRAY_ELEMENT_REF)) {
                expr_ptr = NULL;
                if (IS_CONST == IS_VAR && UNEXPECTED(expr_ptr == NULL)) {
-                       zend_throw_error(zend_ce_error, "Cannot create references to/from string offsets");
+                       zend_throw_error(NULL, "Cannot create references to/from string offsets");
                        zend_array_destroy(Z_ARRVAL_P(EX_VAR(opline->result.var)));
                        HANDLE_EXCEPTION();
                }
@@ -6185,7 +6185,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_VAR_SPEC_CONST_CONST_HAN
                                        HANDLE_EXCEPTION();
                                }
                                if (UNEXPECTED(ce == NULL)) {
-                                       zend_throw_error(zend_ce_error, "Class '%s' not found", Z_STRVAL_P(EX_CONSTANT(opline->op2)));
+                                       zend_throw_error(NULL, "Class '%s' not found", Z_STRVAL_P(EX_CONSTANT(opline->op2)));
                                        if (IS_CONST != IS_CONST) {
                                                zend_string_release(Z_STR(tmp));
                                        }
@@ -6328,7 +6328,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_CON
        container = EX_CONSTANT(opline->op1);
 
        if (IS_CONST == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
@@ -6465,7 +6465,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_CO
        container = EX_CONSTANT(opline->op1);
 
        if (IS_CONST == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
@@ -6545,7 +6545,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_CONST_CONST_HANDLER
 
        SAVE_OPLINE();
        if (UNEXPECTED(generator->flags & ZEND_GENERATOR_FORCED_CLOSE)) {
-               zend_throw_error(zend_ce_error, "Cannot yield from finally in a force-closed generator");
+               zend_throw_error(NULL, "Cannot yield from finally in a force-closed generator");
 
 
                HANDLE_EXCEPTION();
@@ -6580,7 +6580,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_CONST_CONST_HANDLER
                                zval *value_ptr = NULL;
 
                                if (IS_CONST == IS_VAR && UNEXPECTED(value_ptr == NULL)) {
-                                       zend_throw_error(zend_ce_error, "Cannot yield string offsets by reference");
+                                       zend_throw_error(NULL, "Cannot yield string offsets by reference");
 
                                        HANDLE_EXCEPTION();
                                }
@@ -6744,7 +6744,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_CONST_TMP_HANDLER(Z
 
        SAVE_OPLINE();
        if (UNEXPECTED(generator->flags & ZEND_GENERATOR_FORCED_CLOSE)) {
-               zend_throw_error(zend_ce_error, "Cannot yield from finally in a force-closed generator");
+               zend_throw_error(NULL, "Cannot yield from finally in a force-closed generator");
                zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
 
                HANDLE_EXCEPTION();
@@ -6779,7 +6779,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_CONST_TMP_HANDLER(Z
                                zval *value_ptr = NULL;
 
                                if (IS_CONST == IS_VAR && UNEXPECTED(value_ptr == NULL)) {
-                                       zend_throw_error(zend_ce_error, "Cannot yield string offsets by reference");
+                                       zend_throw_error(NULL, "Cannot yield string offsets by reference");
                                        zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
                                        HANDLE_EXCEPTION();
                                }
@@ -6954,7 +6954,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_
 
                                /* check if static properties were destoyed */
                                if (UNEXPECTED(CE_STATIC_MEMBERS(ce) == NULL)) {
-                                       zend_throw_error(zend_ce_error, "Access to undeclared static property: %s::$%s", ZSTR_VAL(ce->name), ZSTR_VAL(name));
+                                       zend_throw_error(NULL, "Access to undeclared static property: %s::$%s", ZSTR_VAL(ce->name), ZSTR_VAL(name));
 
                                        HANDLE_EXCEPTION();
                                }
@@ -6981,7 +6981,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_
 
                                /* check if static properties were destoyed */
                                if (UNEXPECTED(CE_STATIC_MEMBERS(ce) == NULL)) {
-                                       zend_throw_error(zend_ce_error, "Access to undeclared static property: %s::$%s", ZSTR_VAL(ce->name), ZSTR_VAL(name));
+                                       zend_throw_error(NULL, "Access to undeclared static property: %s::$%s", ZSTR_VAL(ce->name), ZSTR_VAL(name));
 
                                        HANDLE_EXCEPTION();
                                }
@@ -7163,7 +7163,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_VAR_SPEC_CONST_VAR_HANDL
                                        HANDLE_EXCEPTION();
                                }
                                if (UNEXPECTED(ce == NULL)) {
-                                       zend_throw_error(zend_ce_error, "Class '%s' not found", Z_STRVAL_P(EX_CONSTANT(opline->op2)));
+                                       zend_throw_error(NULL, "Class '%s' not found", Z_STRVAL_P(EX_CONSTANT(opline->op2)));
                                        if (IS_CONST != IS_CONST) {
                                                zend_string_release(Z_STR(tmp));
                                        }
@@ -7301,7 +7301,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_CONST_VAR_HANDLER(Z
 
        SAVE_OPLINE();
        if (UNEXPECTED(generator->flags & ZEND_GENERATOR_FORCED_CLOSE)) {
-               zend_throw_error(zend_ce_error, "Cannot yield from finally in a force-closed generator");
+               zend_throw_error(NULL, "Cannot yield from finally in a force-closed generator");
                zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
 
                HANDLE_EXCEPTION();
@@ -7336,7 +7336,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_CONST_VAR_HANDLER(Z
                                zval *value_ptr = NULL;
 
                                if (IS_CONST == IS_VAR && UNEXPECTED(value_ptr == NULL)) {
-                                       zend_throw_error(zend_ce_error, "Cannot yield string offsets by reference");
+                                       zend_throw_error(NULL, "Cannot yield string offsets by reference");
                                        zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
                                        HANDLE_EXCEPTION();
                                }
@@ -7469,7 +7469,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_
 
                                /* check if static properties were destoyed */
                                if (UNEXPECTED(CE_STATIC_MEMBERS(ce) == NULL)) {
-                                       zend_throw_error(zend_ce_error, "Access to undeclared static property: %s::$%s", ZSTR_VAL(ce->name), ZSTR_VAL(name));
+                                       zend_throw_error(NULL, "Access to undeclared static property: %s::$%s", ZSTR_VAL(ce->name), ZSTR_VAL(name));
 
                                        HANDLE_EXCEPTION();
                                }
@@ -7496,7 +7496,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_
 
                                /* check if static properties were destoyed */
                                if (UNEXPECTED(CE_STATIC_MEMBERS(ce) == NULL)) {
-                                       zend_throw_error(zend_ce_error, "Access to undeclared static property: %s::$%s", ZSTR_VAL(ce->name), ZSTR_VAL(name));
+                                       zend_throw_error(NULL, "Access to undeclared static property: %s::$%s", ZSTR_VAL(ce->name), ZSTR_VAL(name));
 
                                        HANDLE_EXCEPTION();
                                }
@@ -7631,14 +7631,14 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_CONST_
 
        if (zend_is_by_ref_func_arg_fetch(opline, EX(call))) {
         if (IS_CONST == IS_CONST || IS_CONST == IS_TMP_VAR) {
-            zend_throw_error(zend_ce_error, "Cannot use temporary expression in write context");
+            zend_throw_error(NULL, "Cannot use temporary expression in write context");
 
 
                        HANDLE_EXCEPTION();
         }
                container = NULL;
                if (IS_CONST == IS_VAR && UNEXPECTED(container == NULL)) {
-                       zend_throw_error(zend_ce_error, "Cannot use string offset as an array");
+                       zend_throw_error(NULL, "Cannot use string offset as an array");
 
                        HANDLE_EXCEPTION();
                }
@@ -7650,7 +7650,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_CONST_
 
        } else {
                if (IS_UNUSED == IS_UNUSED) {
-                       zend_throw_error(zend_ce_error, "Cannot use [] for reading");
+                       zend_throw_error(NULL, "Cannot use [] for reading");
 
 
                        HANDLE_EXCEPTION();
@@ -7685,7 +7685,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_C
                                HANDLE_EXCEPTION();
                        }
                        if (UNEXPECTED(ce == NULL)) {
-                               zend_throw_error(zend_ce_error, "Class '%s' not found", Z_STRVAL_P(EX_CONSTANT(opline->op1)));
+                               zend_throw_error(NULL, "Class '%s' not found", Z_STRVAL_P(EX_CONSTANT(opline->op1)));
                                HANDLE_EXCEPTION();
                        }
                        CACHE_PTR(Z_CACHE_SLOT_P(EX_CONSTANT(opline->op1)), ce);
@@ -7714,7 +7714,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_C
                                if (UNEXPECTED(EG(exception) != NULL)) {
                                        HANDLE_EXCEPTION();
                                }
-                               zend_throw_error(zend_ce_error, "Function name must be a string");
+                               zend_throw_error(NULL, "Function name must be a string");
 
                                HANDLE_EXCEPTION();
                        }
@@ -7727,7 +7727,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_C
                }
                if (UNEXPECTED(fbc == NULL)) {
                        if (EXPECTED(!EG(exception))) {
-                               zend_throw_error(zend_ce_error, "Call to undefined method %s::%s()", ZSTR_VAL(ce->name), Z_STRVAL_P(function_name));
+                               zend_throw_error(NULL, "Call to undefined method %s::%s()", ZSTR_VAL(ce->name), Z_STRVAL_P(function_name));
                        }
 
                        HANDLE_EXCEPTION();
@@ -7746,11 +7746,11 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_C
                }
        } else {
                if (UNEXPECTED(ce->constructor == NULL)) {
-                       zend_throw_error(zend_ce_error, "Cannot call constructor");
+                       zend_throw_error(NULL, "Cannot call constructor");
                        HANDLE_EXCEPTION();
                }
                if (Z_OBJ(EX(This)) && Z_OBJ(EX(This))->ce != ce->constructor->common.scope && (ce->constructor->common.fn_flags & ZEND_ACC_PRIVATE)) {
-                       zend_throw_error(zend_ce_error, "Cannot call private %s::__construct()", ZSTR_VAL(ce->name));
+                       zend_throw_error(NULL, "Cannot call private %s::__construct()", ZSTR_VAL(ce->name));
                        HANDLE_EXCEPTION();
                }
                fbc = ce->constructor;
@@ -7857,7 +7857,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_CONST_U
            UNEXPECTED(opline->extended_value & ZEND_ARRAY_ELEMENT_REF)) {
                expr_ptr = NULL;
                if (IS_CONST == IS_VAR && UNEXPECTED(expr_ptr == NULL)) {
-                       zend_throw_error(zend_ce_error, "Cannot create references to/from string offsets");
+                       zend_throw_error(NULL, "Cannot create references to/from string offsets");
                        zend_array_destroy(Z_ARRVAL_P(EX_VAR(opline->result.var)));
                        HANDLE_EXCEPTION();
                }
@@ -8034,7 +8034,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_VAR_SPEC_CONST_UNUSED_HA
                                        HANDLE_EXCEPTION();
                                }
                                if (UNEXPECTED(ce == NULL)) {
-                                       zend_throw_error(zend_ce_error, "Class '%s' not found", Z_STRVAL_P(EX_CONSTANT(opline->op2)));
+                                       zend_throw_error(NULL, "Class '%s' not found", Z_STRVAL_P(EX_CONSTANT(opline->op2)));
                                        if (IS_CONST != IS_CONST) {
                                                zend_string_release(Z_STR(tmp));
                                        }
@@ -8195,7 +8195,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_CONST_UNUSED_HANDLE
 
        SAVE_OPLINE();
        if (UNEXPECTED(generator->flags & ZEND_GENERATOR_FORCED_CLOSE)) {
-               zend_throw_error(zend_ce_error, "Cannot yield from finally in a force-closed generator");
+               zend_throw_error(NULL, "Cannot yield from finally in a force-closed generator");
 
 
                HANDLE_EXCEPTION();
@@ -8230,7 +8230,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_CONST_UNUSED_HANDLE
                                zval *value_ptr = NULL;
 
                                if (IS_CONST == IS_VAR && UNEXPECTED(value_ptr == NULL)) {
-                                       zend_throw_error(zend_ce_error, "Cannot yield string offsets by reference");
+                                       zend_throw_error(NULL, "Cannot yield string offsets by reference");
 
                                        HANDLE_EXCEPTION();
                                }
@@ -9013,14 +9013,14 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_CONST_
 
        if (zend_is_by_ref_func_arg_fetch(opline, EX(call))) {
         if (IS_CONST == IS_CONST || IS_CONST == IS_TMP_VAR) {
-            zend_throw_error(zend_ce_error, "Cannot use temporary expression in write context");
+            zend_throw_error(NULL, "Cannot use temporary expression in write context");
 
 
                        HANDLE_EXCEPTION();
         }
                container = NULL;
                if (IS_CONST == IS_VAR && UNEXPECTED(container == NULL)) {
-                       zend_throw_error(zend_ce_error, "Cannot use string offset as an array");
+                       zend_throw_error(NULL, "Cannot use string offset as an array");
 
                        HANDLE_EXCEPTION();
                }
@@ -9032,7 +9032,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_CONST_
 
        } else {
                if (IS_CV == IS_UNUSED) {
-                       zend_throw_error(zend_ce_error, "Cannot use [] for reading");
+                       zend_throw_error(NULL, "Cannot use [] for reading");
 
 
                        HANDLE_EXCEPTION();
@@ -9058,7 +9058,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_CONST_CV_HAND
        container = EX_CONSTANT(opline->op1);
 
        if (IS_CONST == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
@@ -9131,7 +9131,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_CONST_CV_HAN
        container = EX_CONSTANT(opline->op1);
 
        if (IS_CONST == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
@@ -9207,18 +9207,18 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CONST_
                container = NULL;
 
                if (IS_CONST == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-                       zend_throw_error(zend_ce_error, "Using $this when not in object context");
+                       zend_throw_error(NULL, "Using $this when not in object context");
 
                        HANDLE_EXCEPTION();
                }
                if (IS_CONST == IS_CONST || IS_CONST == IS_TMP_VAR) {
-                       zend_throw_error(zend_ce_error, "Cannot use temporary expression in write context");
+                       zend_throw_error(NULL, "Cannot use temporary expression in write context");
 
 
                        HANDLE_EXCEPTION();
                }
                if (IS_CONST == IS_VAR && UNEXPECTED(container == NULL)) {
-                       zend_throw_error(zend_ce_error, "Cannot use string offset as an object");
+                       zend_throw_error(NULL, "Cannot use string offset as an object");
 
                        HANDLE_EXCEPTION();
                }
@@ -9334,7 +9334,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_CONST_CV
                        if (UNEXPECTED(EG(exception) != NULL)) {
                                HANDLE_EXCEPTION();
                        }
-                       zend_throw_error(zend_ce_error, "Method name must be a string");
+                       zend_throw_error(NULL, "Method name must be a string");
 
 
                        HANDLE_EXCEPTION();
@@ -9344,7 +9344,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_CONST_CV
        object = EX_CONSTANT(opline->op1);
 
        if (IS_CONST == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
@@ -9364,7 +9364,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_CONST_CV
                                if (UNEXPECTED(EG(exception) != NULL)) {
                                        HANDLE_EXCEPTION();
                                }
-                               zend_throw_error(zend_ce_error, "Call to a member function %s() on %s", Z_STRVAL_P(function_name), zend_get_type_by_const(Z_TYPE_P(object)));
+                               zend_throw_error(NULL, "Call to a member function %s() on %s", Z_STRVAL_P(function_name), zend_get_type_by_const(Z_TYPE_P(object)));
 
 
                                HANDLE_EXCEPTION();
@@ -9380,7 +9380,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_CONST_CV
            zend_object *orig_obj = obj;
 
                if (UNEXPECTED(obj->handlers->get_method == NULL)) {
-                       zend_throw_error(zend_ce_error, "Object does not support method calls");
+                       zend_throw_error(NULL, "Object does not support method calls");
 
 
                        HANDLE_EXCEPTION();
@@ -9390,7 +9390,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_CONST_CV
                fbc = obj->handlers->get_method(&obj, Z_STR_P(function_name), ((IS_CV == IS_CONST) ? (EX_CONSTANT(opline->op2) + 1) : NULL));
                if (UNEXPECTED(fbc == NULL)) {
                        if (EXPECTED(!EG(exception))) {
-                               zend_throw_error(zend_ce_error, "Call to undefined method %s::%s()", ZSTR_VAL(obj->ce->name), Z_STRVAL_P(function_name));
+                               zend_throw_error(NULL, "Call to undefined method %s::%s()", ZSTR_VAL(obj->ce->name), Z_STRVAL_P(function_name));
                        }
 
 
@@ -9444,7 +9444,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_C
                                HANDLE_EXCEPTION();
                        }
                        if (UNEXPECTED(ce == NULL)) {
-                               zend_throw_error(zend_ce_error, "Class '%s' not found", Z_STRVAL_P(EX_CONSTANT(opline->op1)));
+                               zend_throw_error(NULL, "Class '%s' not found", Z_STRVAL_P(EX_CONSTANT(opline->op1)));
                                HANDLE_EXCEPTION();
                        }
                        CACHE_PTR(Z_CACHE_SLOT_P(EX_CONSTANT(opline->op1)), ce);
@@ -9473,7 +9473,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_C
                                if (UNEXPECTED(EG(exception) != NULL)) {
                                        HANDLE_EXCEPTION();
                                }
-                               zend_throw_error(zend_ce_error, "Function name must be a string");
+                               zend_throw_error(NULL, "Function name must be a string");
 
                                HANDLE_EXCEPTION();
                        }
@@ -9486,7 +9486,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_C
                }
                if (UNEXPECTED(fbc == NULL)) {
                        if (EXPECTED(!EG(exception))) {
-                               zend_throw_error(zend_ce_error, "Call to undefined method %s::%s()", ZSTR_VAL(ce->name), Z_STRVAL_P(function_name));
+                               zend_throw_error(NULL, "Call to undefined method %s::%s()", ZSTR_VAL(ce->name), Z_STRVAL_P(function_name));
                        }
 
                        HANDLE_EXCEPTION();
@@ -9505,11 +9505,11 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_C
                }
        } else {
                if (UNEXPECTED(ce->constructor == NULL)) {
-                       zend_throw_error(zend_ce_error, "Cannot call constructor");
+                       zend_throw_error(NULL, "Cannot call constructor");
                        HANDLE_EXCEPTION();
                }
                if (Z_OBJ(EX(This)) && Z_OBJ(EX(This))->ce != ce->constructor->common.scope && (ce->constructor->common.fn_flags & ZEND_ACC_PRIVATE)) {
-                       zend_throw_error(zend_ce_error, "Cannot call private %s::__construct()", ZSTR_VAL(ce->name));
+                       zend_throw_error(NULL, "Cannot call private %s::__construct()", ZSTR_VAL(ce->name));
                        HANDLE_EXCEPTION();
                }
                fbc = ce->constructor;
@@ -9741,7 +9741,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_CONST_C
            UNEXPECTED(opline->extended_value & ZEND_ARRAY_ELEMENT_REF)) {
                expr_ptr = NULL;
                if (IS_CONST == IS_VAR && UNEXPECTED(expr_ptr == NULL)) {
-                       zend_throw_error(zend_ce_error, "Cannot create references to/from string offsets");
+                       zend_throw_error(NULL, "Cannot create references to/from string offsets");
                        zend_array_destroy(Z_ARRVAL_P(EX_VAR(opline->result.var)));
                        HANDLE_EXCEPTION();
                }
@@ -9874,7 +9874,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_CON
        container = EX_CONSTANT(opline->op1);
 
        if (IS_CONST == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
@@ -10011,7 +10011,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_CO
        container = EX_CONSTANT(opline->op1);
 
        if (IS_CONST == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
@@ -10054,7 +10054,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_CONST_CV_HANDLER(ZE
 
        SAVE_OPLINE();
        if (UNEXPECTED(generator->flags & ZEND_GENERATOR_FORCED_CLOSE)) {
-               zend_throw_error(zend_ce_error, "Cannot yield from finally in a force-closed generator");
+               zend_throw_error(NULL, "Cannot yield from finally in a force-closed generator");
 
 
                HANDLE_EXCEPTION();
@@ -10089,7 +10089,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_CONST_CV_HANDLER(ZE
                                zval *value_ptr = NULL;
 
                                if (IS_CONST == IS_VAR && UNEXPECTED(value_ptr == NULL)) {
-                                       zend_throw_error(zend_ce_error, "Cannot yield string offsets by reference");
+                                       zend_throw_error(NULL, "Cannot yield string offsets by reference");
 
                                        HANDLE_EXCEPTION();
                                }
@@ -10846,14 +10846,14 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_CONST_
 
        if (zend_is_by_ref_func_arg_fetch(opline, EX(call))) {
         if (IS_CONST == IS_CONST || IS_CONST == IS_TMP_VAR) {
-            zend_throw_error(zend_ce_error, "Cannot use temporary expression in write context");
+            zend_throw_error(NULL, "Cannot use temporary expression in write context");
                        zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
 
                        HANDLE_EXCEPTION();
         }
                container = NULL;
                if (IS_CONST == IS_VAR && UNEXPECTED(container == NULL)) {
-                       zend_throw_error(zend_ce_error, "Cannot use string offset as an array");
+                       zend_throw_error(NULL, "Cannot use string offset as an array");
                        zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
                        HANDLE_EXCEPTION();
                }
@@ -10865,7 +10865,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_CONST_
 
        } else {
                if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED) {
-                       zend_throw_error(zend_ce_error, "Cannot use [] for reading");
+                       zend_throw_error(NULL, "Cannot use [] for reading");
                        zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
 
                        HANDLE_EXCEPTION();
@@ -10891,7 +10891,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_CONST_TMPVAR_
        container = EX_CONSTANT(opline->op1);
 
        if (IS_CONST == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
                HANDLE_EXCEPTION();
        }
@@ -10965,7 +10965,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_CONST_TMPVAR
        container = EX_CONSTANT(opline->op1);
 
        if (IS_CONST == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
                HANDLE_EXCEPTION();
        }
@@ -11042,18 +11042,18 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CONST_
                container = NULL;
 
                if (IS_CONST == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-                       zend_throw_error(zend_ce_error, "Using $this when not in object context");
+                       zend_throw_error(NULL, "Using $this when not in object context");
                        zval_ptr_dtor_nogc(free_op2);
                        HANDLE_EXCEPTION();
                }
                if (IS_CONST == IS_CONST || IS_CONST == IS_TMP_VAR) {
-                       zend_throw_error(zend_ce_error, "Cannot use temporary expression in write context");
+                       zend_throw_error(NULL, "Cannot use temporary expression in write context");
                        zval_ptr_dtor_nogc(free_op2);
 
                        HANDLE_EXCEPTION();
                }
                if (IS_CONST == IS_VAR && UNEXPECTED(container == NULL)) {
-                       zend_throw_error(zend_ce_error, "Cannot use string offset as an object");
+                       zend_throw_error(NULL, "Cannot use string offset as an object");
                        zval_ptr_dtor_nogc(free_op2);
                        HANDLE_EXCEPTION();
                }
@@ -11169,7 +11169,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_CONST_TM
                        if (UNEXPECTED(EG(exception) != NULL)) {
                                HANDLE_EXCEPTION();
                        }
-                       zend_throw_error(zend_ce_error, "Method name must be a string");
+                       zend_throw_error(NULL, "Method name must be a string");
                        zval_ptr_dtor_nogc(free_op2);
 
                        HANDLE_EXCEPTION();
@@ -11179,7 +11179,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_CONST_TM
        object = EX_CONSTANT(opline->op1);
 
        if (IS_CONST == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                zval_ptr_dtor_nogc(free_op2);
                HANDLE_EXCEPTION();
        }
@@ -11199,7 +11199,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_CONST_TM
                                if (UNEXPECTED(EG(exception) != NULL)) {
                                        HANDLE_EXCEPTION();
                                }
-                               zend_throw_error(zend_ce_error, "Call to a member function %s() on %s", Z_STRVAL_P(function_name), zend_get_type_by_const(Z_TYPE_P(object)));
+                               zend_throw_error(NULL, "Call to a member function %s() on %s", Z_STRVAL_P(function_name), zend_get_type_by_const(Z_TYPE_P(object)));
                                zval_ptr_dtor_nogc(free_op2);
 
                                HANDLE_EXCEPTION();
@@ -11215,7 +11215,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_CONST_TM
            zend_object *orig_obj = obj;
 
                if (UNEXPECTED(obj->handlers->get_method == NULL)) {
-                       zend_throw_error(zend_ce_error, "Object does not support method calls");
+                       zend_throw_error(NULL, "Object does not support method calls");
                        zval_ptr_dtor_nogc(free_op2);
 
                        HANDLE_EXCEPTION();
@@ -11225,7 +11225,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_CONST_TM
                fbc = obj->handlers->get_method(&obj, Z_STR_P(function_name), (((IS_TMP_VAR|IS_VAR) == IS_CONST) ? (EX_CONSTANT(opline->op2) + 1) : NULL));
                if (UNEXPECTED(fbc == NULL)) {
                        if (EXPECTED(!EG(exception))) {
-                               zend_throw_error(zend_ce_error, "Call to undefined method %s::%s()", ZSTR_VAL(obj->ce->name), Z_STRVAL_P(function_name));
+                               zend_throw_error(NULL, "Call to undefined method %s::%s()", ZSTR_VAL(obj->ce->name), Z_STRVAL_P(function_name));
                        }
                        zval_ptr_dtor_nogc(free_op2);
 
@@ -11280,7 +11280,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_C
                                HANDLE_EXCEPTION();
                        }
                        if (UNEXPECTED(ce == NULL)) {
-                               zend_throw_error(zend_ce_error, "Class '%s' not found", Z_STRVAL_P(EX_CONSTANT(opline->op1)));
+                               zend_throw_error(NULL, "Class '%s' not found", Z_STRVAL_P(EX_CONSTANT(opline->op1)));
                                HANDLE_EXCEPTION();
                        }
                        CACHE_PTR(Z_CACHE_SLOT_P(EX_CONSTANT(opline->op1)), ce);
@@ -11309,7 +11309,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_C
                                if (UNEXPECTED(EG(exception) != NULL)) {
                                        HANDLE_EXCEPTION();
                                }
-                               zend_throw_error(zend_ce_error, "Function name must be a string");
+                               zend_throw_error(NULL, "Function name must be a string");
                                zval_ptr_dtor_nogc(free_op2);
                                HANDLE_EXCEPTION();
                        }
@@ -11322,7 +11322,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_C
                }
                if (UNEXPECTED(fbc == NULL)) {
                        if (EXPECTED(!EG(exception))) {
-                               zend_throw_error(zend_ce_error, "Call to undefined method %s::%s()", ZSTR_VAL(ce->name), Z_STRVAL_P(function_name));
+                               zend_throw_error(NULL, "Call to undefined method %s::%s()", ZSTR_VAL(ce->name), Z_STRVAL_P(function_name));
                        }
                        zval_ptr_dtor_nogc(free_op2);
                        HANDLE_EXCEPTION();
@@ -11341,11 +11341,11 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_C
                }
        } else {
                if (UNEXPECTED(ce->constructor == NULL)) {
-                       zend_throw_error(zend_ce_error, "Cannot call constructor");
+                       zend_throw_error(NULL, "Cannot call constructor");
                        HANDLE_EXCEPTION();
                }
                if (Z_OBJ(EX(This)) && Z_OBJ(EX(This))->ce != ce->constructor->common.scope && (ce->constructor->common.fn_flags & ZEND_ACC_PRIVATE)) {
-                       zend_throw_error(zend_ce_error, "Cannot call private %s::__construct()", ZSTR_VAL(ce->name));
+                       zend_throw_error(NULL, "Cannot call private %s::__construct()", ZSTR_VAL(ce->name));
                        HANDLE_EXCEPTION();
                }
                fbc = ce->constructor;
@@ -11527,7 +11527,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_CONST_T
            UNEXPECTED(opline->extended_value & ZEND_ARRAY_ELEMENT_REF)) {
                expr_ptr = NULL;
                if (IS_CONST == IS_VAR && UNEXPECTED(expr_ptr == NULL)) {
-                       zend_throw_error(zend_ce_error, "Cannot create references to/from string offsets");
+                       zend_throw_error(NULL, "Cannot create references to/from string offsets");
                        zend_array_destroy(Z_ARRVAL_P(EX_VAR(opline->result.var)));
                        HANDLE_EXCEPTION();
                }
@@ -11660,7 +11660,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_CON
        container = EX_CONSTANT(opline->op1);
 
        if (IS_CONST == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
                HANDLE_EXCEPTION();
        }
@@ -11797,7 +11797,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_CO
        container = EX_CONSTANT(opline->op1);
 
        if (IS_CONST == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
                HANDLE_EXCEPTION();
        }
@@ -11931,7 +11931,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_RETURN_BY_REF_SPEC_TMP_HANDLER
                retval_ptr = NULL;
 
                if (IS_TMP_VAR == IS_VAR && UNEXPECTED(retval_ptr == NULL)) {
-                       zend_throw_error(zend_ce_error, "Cannot return string offsets by reference");
+                       zend_throw_error(NULL, "Cannot return string offsets by reference");
                        HANDLE_EXCEPTION();
                }
 
@@ -12028,7 +12028,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_THROW_SPEC_TMP_HANDLER(ZEND_OP
                        if (UNEXPECTED(EG(exception) != NULL)) {
                                HANDLE_EXCEPTION();
                        }
-                       zend_throw_error(zend_ce_error, "Can only throw objects");
+                       zend_throw_error(NULL, "Can only throw objects");
                        zval_ptr_dtor_nogc(free_op1);
                        HANDLE_EXCEPTION();
                }
@@ -12075,7 +12075,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEND_VAL_EX_SPEC_TMP_HANDLER(Z
        } else if (ARG_MUST_BE_SENT_BY_REF(EX(call)->func, opline->op2.num)) {
 send_val_by_ref:
                SAVE_OPLINE();
-               zend_throw_error(zend_ce_error, "Cannot pass parameter %d by reference", opline->op2.num);
+               zend_throw_error(NULL, "Cannot pass parameter %d by reference", opline->op2.num);
                zval_ptr_dtor_nogc(EX_VAR(opline->op1.var));
                arg = ZEND_CALL_VAR(EX(call), opline->result.var);
                ZVAL_UNDEF(arg);
@@ -12616,13 +12616,13 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_FROM_SPEC_TMP_HANDLER(ZE
 
                        if (Z_ISUNDEF(new_gen->retval)) {
                                if (UNEXPECTED(zend_generator_get_current(new_gen) == generator)) {
-                                       zend_throw_error(zend_ce_error, "Impossible to yield from the Generator being currently run");
+                                       zend_throw_error(NULL, "Impossible to yield from the Generator being currently run");
                                        HANDLE_EXCEPTION();
                                } else {
                                        zend_generator_yield_from(generator, new_gen);
                                }
                        } else if (UNEXPECTED(new_gen->execute_data == NULL)) {
-                               zend_throw_error(zend_ce_error, "Generator passed to yield from was aborted without proper return and is unable to continue");
+                               zend_throw_error(NULL, "Generator passed to yield from was aborted without proper return and is unable to continue");
                                HANDLE_EXCEPTION();
                        } else {
                                if (RETURN_VALUE_USED(opline)) {
@@ -12636,7 +12636,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_FROM_SPEC_TMP_HANDLER(ZE
 
                        if (UNEXPECTED(!iter) || UNEXPECTED(EG(exception))) {
                                if (!EG(exception)) {
-                                       zend_throw_error(zend_ce_error, "Object of type %s did not create an Iterator", ZSTR_VAL(ce->name));
+                                       zend_throw_error(NULL, "Object of type %s did not create an Iterator", ZSTR_VAL(ce->name));
                                }
                                HANDLE_EXCEPTION();
                        }
@@ -12653,7 +12653,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_FROM_SPEC_TMP_HANDLER(ZE
                        ZVAL_OBJ(&generator->values, &iter->std);
                }
        } else {
-               zend_throw_error(zend_ce_error, "Can use \"yield from\" only with arrays and Traversables", 0);
+               zend_throw_error(NULL, "Can use \"yield from\" only with arrays and Traversables", 0);
                HANDLE_EXCEPTION();
        }
 
@@ -12763,14 +12763,14 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_TMP_CO
 
        if (zend_is_by_ref_func_arg_fetch(opline, EX(call))) {
         if (IS_TMP_VAR == IS_CONST || IS_TMP_VAR == IS_TMP_VAR) {
-            zend_throw_error(zend_ce_error, "Cannot use temporary expression in write context");
+            zend_throw_error(NULL, "Cannot use temporary expression in write context");
 
                        zval_ptr_dtor_nogc(EX_VAR(opline->op1.var));
                        HANDLE_EXCEPTION();
         }
                container = NULL;
                if (IS_TMP_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
-                       zend_throw_error(zend_ce_error, "Cannot use string offset as an array");
+                       zend_throw_error(NULL, "Cannot use string offset as an array");
 
                        HANDLE_EXCEPTION();
                }
@@ -12782,7 +12782,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_TMP_CO
 
        } else {
                if (IS_CONST == IS_UNUSED) {
-                       zend_throw_error(zend_ce_error, "Cannot use [] for reading");
+                       zend_throw_error(NULL, "Cannot use [] for reading");
 
                        zval_ptr_dtor_nogc(EX_VAR(opline->op1.var));
                        HANDLE_EXCEPTION();
@@ -12808,7 +12808,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_TMP_CONST_HAN
        container = _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1);
 
        if (IS_TMP_VAR == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
@@ -12884,18 +12884,18 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_TMP_CO
                container = NULL;
 
                if (IS_TMP_VAR == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-                       zend_throw_error(zend_ce_error, "Using $this when not in object context");
+                       zend_throw_error(NULL, "Using $this when not in object context");
 
                        HANDLE_EXCEPTION();
                }
                if (IS_TMP_VAR == IS_CONST || IS_TMP_VAR == IS_TMP_VAR) {
-                       zend_throw_error(zend_ce_error, "Cannot use temporary expression in write context");
+                       zend_throw_error(NULL, "Cannot use temporary expression in write context");
 
 
                        HANDLE_EXCEPTION();
                }
                if (IS_TMP_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
-                       zend_throw_error(zend_ce_error, "Cannot use string offset as an object");
+                       zend_throw_error(NULL, "Cannot use string offset as an object");
 
                        HANDLE_EXCEPTION();
                }
@@ -13009,7 +13009,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_TMP_CON
            UNEXPECTED(opline->extended_value & ZEND_ARRAY_ELEMENT_REF)) {
                expr_ptr = NULL;
                if (IS_TMP_VAR == IS_VAR && UNEXPECTED(expr_ptr == NULL)) {
-                       zend_throw_error(zend_ce_error, "Cannot create references to/from string offsets");
+                       zend_throw_error(NULL, "Cannot create references to/from string offsets");
                        zend_array_destroy(Z_ARRVAL_P(EX_VAR(opline->result.var)));
                        HANDLE_EXCEPTION();
                }
@@ -13137,7 +13137,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_TMP_CONST_HANDLER(Z
 
        SAVE_OPLINE();
        if (UNEXPECTED(generator->flags & ZEND_GENERATOR_FORCED_CLOSE)) {
-               zend_throw_error(zend_ce_error, "Cannot yield from finally in a force-closed generator");
+               zend_throw_error(NULL, "Cannot yield from finally in a force-closed generator");
 
                zval_ptr_dtor_nogc(EX_VAR(opline->op1.var));
                HANDLE_EXCEPTION();
@@ -13172,7 +13172,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_TMP_CONST_HANDLER(Z
                                zval *value_ptr = NULL;
 
                                if (IS_TMP_VAR == IS_VAR && UNEXPECTED(value_ptr == NULL)) {
-                                       zend_throw_error(zend_ce_error, "Cannot yield string offsets by reference");
+                                       zend_throw_error(NULL, "Cannot yield string offsets by reference");
 
                                        HANDLE_EXCEPTION();
                                }
@@ -13320,7 +13320,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_TMP_TMP_HANDLER(ZEN
 
        SAVE_OPLINE();
        if (UNEXPECTED(generator->flags & ZEND_GENERATOR_FORCED_CLOSE)) {
-               zend_throw_error(zend_ce_error, "Cannot yield from finally in a force-closed generator");
+               zend_throw_error(NULL, "Cannot yield from finally in a force-closed generator");
                zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
                zval_ptr_dtor_nogc(EX_VAR(opline->op1.var));
                HANDLE_EXCEPTION();
@@ -13355,7 +13355,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_TMP_TMP_HANDLER(ZEN
                                zval *value_ptr = NULL;
 
                                if (IS_TMP_VAR == IS_VAR && UNEXPECTED(value_ptr == NULL)) {
-                                       zend_throw_error(zend_ce_error, "Cannot yield string offsets by reference");
+                                       zend_throw_error(NULL, "Cannot yield string offsets by reference");
                                        zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
                                        HANDLE_EXCEPTION();
                                }
@@ -13503,7 +13503,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_TMP_VAR_HANDLER(ZEN
 
        SAVE_OPLINE();
        if (UNEXPECTED(generator->flags & ZEND_GENERATOR_FORCED_CLOSE)) {
-               zend_throw_error(zend_ce_error, "Cannot yield from finally in a force-closed generator");
+               zend_throw_error(NULL, "Cannot yield from finally in a force-closed generator");
                zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
                zval_ptr_dtor_nogc(EX_VAR(opline->op1.var));
                HANDLE_EXCEPTION();
@@ -13538,7 +13538,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_TMP_VAR_HANDLER(ZEN
                                zval *value_ptr = NULL;
 
                                if (IS_TMP_VAR == IS_VAR && UNEXPECTED(value_ptr == NULL)) {
-                                       zend_throw_error(zend_ce_error, "Cannot yield string offsets by reference");
+                                       zend_throw_error(NULL, "Cannot yield string offsets by reference");
                                        zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
                                        HANDLE_EXCEPTION();
                                }
@@ -13646,14 +13646,14 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_TMP_UN
 
        if (zend_is_by_ref_func_arg_fetch(opline, EX(call))) {
         if (IS_TMP_VAR == IS_CONST || IS_TMP_VAR == IS_TMP_VAR) {
-            zend_throw_error(zend_ce_error, "Cannot use temporary expression in write context");
+            zend_throw_error(NULL, "Cannot use temporary expression in write context");
 
                        zval_ptr_dtor_nogc(EX_VAR(opline->op1.var));
                        HANDLE_EXCEPTION();
         }
                container = NULL;
                if (IS_TMP_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
-                       zend_throw_error(zend_ce_error, "Cannot use string offset as an array");
+                       zend_throw_error(NULL, "Cannot use string offset as an array");
 
                        HANDLE_EXCEPTION();
                }
@@ -13665,7 +13665,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_TMP_UN
 
        } else {
                if (IS_UNUSED == IS_UNUSED) {
-                       zend_throw_error(zend_ce_error, "Cannot use [] for reading");
+                       zend_throw_error(NULL, "Cannot use [] for reading");
 
                        zval_ptr_dtor_nogc(EX_VAR(opline->op1.var));
                        HANDLE_EXCEPTION();
@@ -13739,7 +13739,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_TMP_UNU
            UNEXPECTED(opline->extended_value & ZEND_ARRAY_ELEMENT_REF)) {
                expr_ptr = NULL;
                if (IS_TMP_VAR == IS_VAR && UNEXPECTED(expr_ptr == NULL)) {
-                       zend_throw_error(zend_ce_error, "Cannot create references to/from string offsets");
+                       zend_throw_error(NULL, "Cannot create references to/from string offsets");
                        zend_array_destroy(Z_ARRVAL_P(EX_VAR(opline->result.var)));
                        HANDLE_EXCEPTION();
                }
@@ -13867,7 +13867,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_TMP_UNUSED_HANDLER(
 
        SAVE_OPLINE();
        if (UNEXPECTED(generator->flags & ZEND_GENERATOR_FORCED_CLOSE)) {
-               zend_throw_error(zend_ce_error, "Cannot yield from finally in a force-closed generator");
+               zend_throw_error(NULL, "Cannot yield from finally in a force-closed generator");
 
                zval_ptr_dtor_nogc(EX_VAR(opline->op1.var));
                HANDLE_EXCEPTION();
@@ -13902,7 +13902,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_TMP_UNUSED_HANDLER(
                                zval *value_ptr = NULL;
 
                                if (IS_TMP_VAR == IS_VAR && UNEXPECTED(value_ptr == NULL)) {
-                                       zend_throw_error(zend_ce_error, "Cannot yield string offsets by reference");
+                                       zend_throw_error(NULL, "Cannot yield string offsets by reference");
 
                                        HANDLE_EXCEPTION();
                                }
@@ -14052,14 +14052,14 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_TMP_CV
 
        if (zend_is_by_ref_func_arg_fetch(opline, EX(call))) {
         if (IS_TMP_VAR == IS_CONST || IS_TMP_VAR == IS_TMP_VAR) {
-            zend_throw_error(zend_ce_error, "Cannot use temporary expression in write context");
+            zend_throw_error(NULL, "Cannot use temporary expression in write context");
 
                        zval_ptr_dtor_nogc(EX_VAR(opline->op1.var));
                        HANDLE_EXCEPTION();
         }
                container = NULL;
                if (IS_TMP_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
-                       zend_throw_error(zend_ce_error, "Cannot use string offset as an array");
+                       zend_throw_error(NULL, "Cannot use string offset as an array");
 
                        HANDLE_EXCEPTION();
                }
@@ -14071,7 +14071,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_TMP_CV
 
        } else {
                if (IS_CV == IS_UNUSED) {
-                       zend_throw_error(zend_ce_error, "Cannot use [] for reading");
+                       zend_throw_error(NULL, "Cannot use [] for reading");
 
                        zval_ptr_dtor_nogc(EX_VAR(opline->op1.var));
                        HANDLE_EXCEPTION();
@@ -14097,7 +14097,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_TMP_CV_HANDLE
        container = _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1);
 
        if (IS_TMP_VAR == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
@@ -14173,18 +14173,18 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_TMP_CV
                container = NULL;
 
                if (IS_TMP_VAR == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-                       zend_throw_error(zend_ce_error, "Using $this when not in object context");
+                       zend_throw_error(NULL, "Using $this when not in object context");
 
                        HANDLE_EXCEPTION();
                }
                if (IS_TMP_VAR == IS_CONST || IS_TMP_VAR == IS_TMP_VAR) {
-                       zend_throw_error(zend_ce_error, "Cannot use temporary expression in write context");
+                       zend_throw_error(NULL, "Cannot use temporary expression in write context");
 
 
                        HANDLE_EXCEPTION();
                }
                if (IS_TMP_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
-                       zend_throw_error(zend_ce_error, "Cannot use string offset as an object");
+                       zend_throw_error(NULL, "Cannot use string offset as an object");
 
                        HANDLE_EXCEPTION();
                }
@@ -14298,7 +14298,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_TMP_CV_
            UNEXPECTED(opline->extended_value & ZEND_ARRAY_ELEMENT_REF)) {
                expr_ptr = NULL;
                if (IS_TMP_VAR == IS_VAR && UNEXPECTED(expr_ptr == NULL)) {
-                       zend_throw_error(zend_ce_error, "Cannot create references to/from string offsets");
+                       zend_throw_error(NULL, "Cannot create references to/from string offsets");
                        zend_array_destroy(Z_ARRVAL_P(EX_VAR(opline->result.var)));
                        HANDLE_EXCEPTION();
                }
@@ -14426,7 +14426,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_TMP_CV_HANDLER(ZEND
 
        SAVE_OPLINE();
        if (UNEXPECTED(generator->flags & ZEND_GENERATOR_FORCED_CLOSE)) {
-               zend_throw_error(zend_ce_error, "Cannot yield from finally in a force-closed generator");
+               zend_throw_error(NULL, "Cannot yield from finally in a force-closed generator");
 
                zval_ptr_dtor_nogc(EX_VAR(opline->op1.var));
                HANDLE_EXCEPTION();
@@ -14461,7 +14461,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_TMP_CV_HANDLER(ZEND
                                zval *value_ptr = NULL;
 
                                if (IS_TMP_VAR == IS_VAR && UNEXPECTED(value_ptr == NULL)) {
-                                       zend_throw_error(zend_ce_error, "Cannot yield string offsets by reference");
+                                       zend_throw_error(NULL, "Cannot yield string offsets by reference");
 
                                        HANDLE_EXCEPTION();
                                }
@@ -14569,14 +14569,14 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_TMP_TM
 
        if (zend_is_by_ref_func_arg_fetch(opline, EX(call))) {
         if (IS_TMP_VAR == IS_CONST || IS_TMP_VAR == IS_TMP_VAR) {
-            zend_throw_error(zend_ce_error, "Cannot use temporary expression in write context");
+            zend_throw_error(NULL, "Cannot use temporary expression in write context");
                        zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
                        zval_ptr_dtor_nogc(EX_VAR(opline->op1.var));
                        HANDLE_EXCEPTION();
         }
                container = NULL;
                if (IS_TMP_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
-                       zend_throw_error(zend_ce_error, "Cannot use string offset as an array");
+                       zend_throw_error(NULL, "Cannot use string offset as an array");
                        zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
                        HANDLE_EXCEPTION();
                }
@@ -14588,7 +14588,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_TMP_TM
 
        } else {
                if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED) {
-                       zend_throw_error(zend_ce_error, "Cannot use [] for reading");
+                       zend_throw_error(NULL, "Cannot use [] for reading");
                        zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
                        zval_ptr_dtor_nogc(EX_VAR(opline->op1.var));
                        HANDLE_EXCEPTION();
@@ -14614,7 +14614,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_TMP_TMPVAR_HA
        container = _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1);
 
        if (IS_TMP_VAR == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
                HANDLE_EXCEPTION();
        }
@@ -14691,18 +14691,18 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_TMP_TM
                container = NULL;
 
                if (IS_TMP_VAR == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-                       zend_throw_error(zend_ce_error, "Using $this when not in object context");
+                       zend_throw_error(NULL, "Using $this when not in object context");
                        zval_ptr_dtor_nogc(free_op2);
                        HANDLE_EXCEPTION();
                }
                if (IS_TMP_VAR == IS_CONST || IS_TMP_VAR == IS_TMP_VAR) {
-                       zend_throw_error(zend_ce_error, "Cannot use temporary expression in write context");
+                       zend_throw_error(NULL, "Cannot use temporary expression in write context");
                        zval_ptr_dtor_nogc(free_op2);
 
                        HANDLE_EXCEPTION();
                }
                if (IS_TMP_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
-                       zend_throw_error(zend_ce_error, "Cannot use string offset as an object");
+                       zend_throw_error(NULL, "Cannot use string offset as an object");
                        zval_ptr_dtor_nogc(free_op2);
                        HANDLE_EXCEPTION();
                }
@@ -14816,7 +14816,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_TMP_TMP
            UNEXPECTED(opline->extended_value & ZEND_ARRAY_ELEMENT_REF)) {
                expr_ptr = NULL;
                if (IS_TMP_VAR == IS_VAR && UNEXPECTED(expr_ptr == NULL)) {
-                       zend_throw_error(zend_ce_error, "Cannot create references to/from string offsets");
+                       zend_throw_error(NULL, "Cannot create references to/from string offsets");
                        zend_array_destroy(Z_ARRVAL_P(EX_VAR(opline->result.var)));
                        HANDLE_EXCEPTION();
                }
@@ -14946,7 +14946,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_PRE_INC_SPEC_VAR_HANDLER(ZEND_
 
        if (IS_VAR == IS_VAR && UNEXPECTED(var_ptr == NULL)) {
                SAVE_OPLINE();
-               zend_throw_error(zend_ce_error, "Cannot increment/decrement overloaded objects nor string offsets");
+               zend_throw_error(NULL, "Cannot increment/decrement overloaded objects nor string offsets");
                HANDLE_EXCEPTION();
        }
 
@@ -14993,7 +14993,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_PRE_DEC_SPEC_VAR_HANDLER(ZEND_
 
        if (IS_VAR == IS_VAR && UNEXPECTED(var_ptr == NULL)) {
                SAVE_OPLINE();
-               zend_throw_error(zend_ce_error, "Cannot increment/decrement overloaded objects nor string offsets");
+               zend_throw_error(NULL, "Cannot increment/decrement overloaded objects nor string offsets");
                HANDLE_EXCEPTION();
        }
 
@@ -15040,7 +15040,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_POST_INC_SPEC_VAR_HANDLER(ZEND
 
        if (IS_VAR == IS_VAR && UNEXPECTED(var_ptr == NULL)) {
                SAVE_OPLINE();
-               zend_throw_error(zend_ce_error, "Cannot increment/decrement overloaded objects nor string offsets");
+               zend_throw_error(NULL, "Cannot increment/decrement overloaded objects nor string offsets");
                HANDLE_EXCEPTION();
        }
 
@@ -15080,7 +15080,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_POST_DEC_SPEC_VAR_HANDLER(ZEND
 
        if (IS_VAR == IS_VAR && UNEXPECTED(var_ptr == NULL)) {
                SAVE_OPLINE();
-               zend_throw_error(zend_ce_error, "Cannot increment/decrement overloaded objects nor string offsets");
+               zend_throw_error(NULL, "Cannot increment/decrement overloaded objects nor string offsets");
                HANDLE_EXCEPTION();
        }
 
@@ -15192,7 +15192,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_RETURN_BY_REF_SPEC_VAR_HANDLER
                retval_ptr = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
 
                if (IS_VAR == IS_VAR && UNEXPECTED(retval_ptr == NULL)) {
-                       zend_throw_error(zend_ce_error, "Cannot return string offsets by reference");
+                       zend_throw_error(NULL, "Cannot return string offsets by reference");
                        HANDLE_EXCEPTION();
                }
 
@@ -15290,7 +15290,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_THROW_SPEC_VAR_HANDLER(ZEND_OP
                        if (UNEXPECTED(EG(exception) != NULL)) {
                                HANDLE_EXCEPTION();
                        }
-                       zend_throw_error(zend_ce_error, "Can only throw objects");
+                       zend_throw_error(NULL, "Can only throw objects");
                        zval_ptr_dtor_nogc(free_op1);
                        HANDLE_EXCEPTION();
                }
@@ -15395,7 +15395,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEND_REF_SPEC_VAR_HANDLER(ZEND
        varptr = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
 
        if (IS_VAR == IS_VAR && UNEXPECTED(varptr == NULL)) {
-               zend_throw_error(zend_ce_error, "Only variables can be passed by reference");
+               zend_throw_error(NULL, "Only variables can be passed by reference");
                HANDLE_EXCEPTION();
        }
 
@@ -16475,13 +16475,13 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_FROM_SPEC_VAR_HANDLER(ZE
 
                        if (Z_ISUNDEF(new_gen->retval)) {
                                if (UNEXPECTED(zend_generator_get_current(new_gen) == generator)) {
-                                       zend_throw_error(zend_ce_error, "Impossible to yield from the Generator being currently run");
+                                       zend_throw_error(NULL, "Impossible to yield from the Generator being currently run");
                                        HANDLE_EXCEPTION();
                                } else {
                                        zend_generator_yield_from(generator, new_gen);
                                }
                        } else if (UNEXPECTED(new_gen->execute_data == NULL)) {
-                               zend_throw_error(zend_ce_error, "Generator passed to yield from was aborted without proper return and is unable to continue");
+                               zend_throw_error(NULL, "Generator passed to yield from was aborted without proper return and is unable to continue");
                                HANDLE_EXCEPTION();
                        } else {
                                if (RETURN_VALUE_USED(opline)) {
@@ -16495,7 +16495,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_FROM_SPEC_VAR_HANDLER(ZE
 
                        if (UNEXPECTED(!iter) || UNEXPECTED(EG(exception))) {
                                if (!EG(exception)) {
-                                       zend_throw_error(zend_ce_error, "Object of type %s did not create an Iterator", ZSTR_VAL(ce->name));
+                                       zend_throw_error(NULL, "Object of type %s did not create an Iterator", ZSTR_VAL(ce->name));
                                }
                                HANDLE_EXCEPTION();
                        }
@@ -16512,7 +16512,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_FROM_SPEC_VAR_HANDLER(ZE
                        ZVAL_OBJ(&generator->values, &iter->std);
                }
        } else {
-               zend_throw_error(zend_ce_error, "Can use \"yield from\" only with arrays and Traversables", 0);
+               zend_throw_error(NULL, "Can use \"yield from\" only with arrays and Traversables", 0);
                HANDLE_EXCEPTION();
        }
 
@@ -16625,7 +16625,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_obj_helper_SP
        object = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
 
        if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
 
                HANDLE_EXCEPTION();
@@ -16634,7 +16634,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_obj_helper_SP
        property = EX_CONSTANT(opline->op2);
 
        if (IS_VAR == IS_VAR && UNEXPECTED(object == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an object");
+               zend_throw_error(NULL, "Cannot use string offset as an object");
                FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
 
                HANDLE_EXCEPTION();
@@ -16689,13 +16689,13 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_dim_helper_SP
        SAVE_OPLINE();
        container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
        if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
 
                HANDLE_EXCEPTION();
        }
        if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an array");
+               zend_throw_error(NULL, "Cannot use string offset as an array");
                FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
 
                HANDLE_EXCEPTION();
@@ -16721,7 +16721,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_dim_helper_SP
                var_ptr = Z_INDIRECT(rv);
 
                if (UNEXPECTED(var_ptr == NULL)) {
-                       zend_throw_error(zend_ce_error, "Cannot use assign-op operators with overloaded objects nor string offsets");
+                       zend_throw_error(NULL, "Cannot use assign-op operators with overloaded objects nor string offsets");
 
                        FREE_OP(free_op_data1);
                        if (free_op1) {zval_ptr_dtor_nogc(free_op1);};
@@ -16763,7 +16763,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_V
        var_ptr = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
 
        if (IS_VAR == IS_VAR && UNEXPECTED(var_ptr == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use assign-op operators with overloaded objects nor string offsets");
+               zend_throw_error(NULL, "Cannot use assign-op operators with overloaded objects nor string offsets");
 
                HANDLE_EXCEPTION();
        }
@@ -17020,7 +17020,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_pre_incdec_property_helper_SPE
        object = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
 
        if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
@@ -17028,7 +17028,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_pre_incdec_property_helper_SPE
        property = EX_CONSTANT(opline->op2);
 
        if (IS_VAR == IS_VAR && UNEXPECTED(object == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot increment/decrement overloaded objects nor string offsets");
+               zend_throw_error(NULL, "Cannot increment/decrement overloaded objects nor string offsets");
 
                HANDLE_EXCEPTION();
        }
@@ -17101,7 +17101,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_post_incdec_property_helper_SP
        object = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
 
        if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
@@ -17109,7 +17109,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_post_incdec_property_helper_SP
        property = EX_CONSTANT(opline->op2);
 
        if (IS_VAR == IS_VAR && UNEXPECTED(object == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot increment/decrement overloaded objects nor string offsets");
+               zend_throw_error(NULL, "Cannot increment/decrement overloaded objects nor string offsets");
 
                HANDLE_EXCEPTION();
        }
@@ -17176,7 +17176,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_W_SPEC_VAR_CONST_HAN
        container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
 
        if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an array");
+               zend_throw_error(NULL, "Cannot use string offset as an array");
                HANDLE_EXCEPTION();
        }
        zend_fetch_dimension_address_W(EX_VAR(opline->result.var), container, EX_CONSTANT(opline->op2), IS_CONST);
@@ -17199,7 +17199,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_RW_SPEC_VAR_CONST_HA
        container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
 
        if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an array");
+               zend_throw_error(NULL, "Cannot use string offset as an array");
                HANDLE_EXCEPTION();
        }
        zend_fetch_dimension_address_RW(EX_VAR(opline->result.var), container, EX_CONSTANT(opline->op2), IS_CONST);
@@ -17222,14 +17222,14 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_CO
 
        if (zend_is_by_ref_func_arg_fetch(opline, EX(call))) {
         if (IS_VAR == IS_CONST || IS_VAR == IS_TMP_VAR) {
-            zend_throw_error(zend_ce_error, "Cannot use temporary expression in write context");
+            zend_throw_error(NULL, "Cannot use temporary expression in write context");
 
                        zval_ptr_dtor_nogc(EX_VAR(opline->op1.var));
                        HANDLE_EXCEPTION();
         }
                container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
                if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
-                       zend_throw_error(zend_ce_error, "Cannot use string offset as an array");
+                       zend_throw_error(NULL, "Cannot use string offset as an array");
 
                        HANDLE_EXCEPTION();
                }
@@ -17241,7 +17241,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_CO
                if (free_op1) {zval_ptr_dtor_nogc(free_op1);};
        } else {
                if (IS_CONST == IS_UNUSED) {
-                       zend_throw_error(zend_ce_error, "Cannot use [] for reading");
+                       zend_throw_error(NULL, "Cannot use [] for reading");
 
                        zval_ptr_dtor_nogc(EX_VAR(opline->op1.var));
                        HANDLE_EXCEPTION();
@@ -17265,7 +17265,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_UNSET_SPEC_VAR_CONST
        container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
 
        if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an array");
+               zend_throw_error(NULL, "Cannot use string offset as an array");
 
                HANDLE_EXCEPTION();
        }
@@ -17291,7 +17291,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_VAR_CONST_HAN
        container = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1);
 
        if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
@@ -17364,12 +17364,12 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_W_SPEC_VAR_CONST_HAN
 
        container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
        if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
        if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an object");
+               zend_throw_error(NULL, "Cannot use string offset as an object");
 
                HANDLE_EXCEPTION();
        }
@@ -17396,12 +17396,12 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_RW_SPEC_VAR_CONST_HA
        container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
 
        if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
        if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an object");
+               zend_throw_error(NULL, "Cannot use string offset as an object");
 
                HANDLE_EXCEPTION();
        }
@@ -17430,18 +17430,18 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_VAR_CO
                container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
 
                if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-                       zend_throw_error(zend_ce_error, "Using $this when not in object context");
+                       zend_throw_error(NULL, "Using $this when not in object context");
 
                        HANDLE_EXCEPTION();
                }
                if (IS_VAR == IS_CONST || IS_VAR == IS_TMP_VAR) {
-                       zend_throw_error(zend_ce_error, "Cannot use temporary expression in write context");
+                       zend_throw_error(NULL, "Cannot use temporary expression in write context");
 
                        if (free_op1) {zval_ptr_dtor_nogc(free_op1);};
                        HANDLE_EXCEPTION();
                }
                if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
-                       zend_throw_error(zend_ce_error, "Cannot use string offset as an object");
+                       zend_throw_error(NULL, "Cannot use string offset as an object");
 
                        HANDLE_EXCEPTION();
                }
@@ -17468,7 +17468,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_UNSET_SPEC_VAR_CONST
        container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
 
        if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
@@ -17476,7 +17476,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_UNSET_SPEC_VAR_CONST
        property = EX_CONSTANT(opline->op2);
 
        if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an object");
+               zend_throw_error(NULL, "Cannot use string offset as an object");
 
                HANDLE_EXCEPTION();
        }
@@ -17501,7 +17501,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_VAR_CONST_HAND
        object = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
 
        if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
@@ -17509,7 +17509,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_VAR_CONST_HAND
        property_name = EX_CONSTANT(opline->op2);
 
        if (IS_VAR == IS_VAR && UNEXPECTED(object == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an array");
+               zend_throw_error(NULL, "Cannot use string offset as an array");
 
                HANDLE_EXCEPTION();
        }
@@ -17536,7 +17536,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_VAR_CONST_HAND
        object_ptr = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
 
        if (IS_VAR == IS_VAR && UNEXPECTED(object_ptr == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an array");
+               zend_throw_error(NULL, "Cannot use string offset as an array");
                FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
 
                HANDLE_EXCEPTION();
@@ -17585,7 +17585,7 @@ try_assign_dim_array:
                } else if (EXPECTED(Z_TYPE_P(object_ptr) == IS_STRING)) {
                        if (EXPECTED(Z_STRLEN_P(object_ptr) != 0)) {
                                if (IS_CONST == IS_UNUSED) {
-                                       zend_throw_error(zend_ce_error, "[] operator not supported for strings");
+                                       zend_throw_error(NULL, "[] operator not supported for strings");
                                        FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
                                        if (free_op1) {zval_ptr_dtor_nogc(free_op1);};
                                        HANDLE_EXCEPTION();
@@ -17680,7 +17680,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_V
                                HANDLE_EXCEPTION();
                        }
                        if (UNEXPECTED(ce == NULL)) {
-                               zend_throw_error(zend_ce_error, "Class '%s' not found", Z_STRVAL_P(EX_CONSTANT(opline->op1)));
+                               zend_throw_error(NULL, "Class '%s' not found", Z_STRVAL_P(EX_CONSTANT(opline->op1)));
                                HANDLE_EXCEPTION();
                        }
                        CACHE_PTR(Z_CACHE_SLOT_P(EX_CONSTANT(opline->op1)), ce);
@@ -17709,7 +17709,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_V
                                if (UNEXPECTED(EG(exception) != NULL)) {
                                        HANDLE_EXCEPTION();
                                }
-                               zend_throw_error(zend_ce_error, "Function name must be a string");
+                               zend_throw_error(NULL, "Function name must be a string");
 
                                HANDLE_EXCEPTION();
                        }
@@ -17722,7 +17722,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_V
                }
                if (UNEXPECTED(fbc == NULL)) {
                        if (EXPECTED(!EG(exception))) {
-                               zend_throw_error(zend_ce_error, "Call to undefined method %s::%s()", ZSTR_VAL(ce->name), Z_STRVAL_P(function_name));
+                               zend_throw_error(NULL, "Call to undefined method %s::%s()", ZSTR_VAL(ce->name), Z_STRVAL_P(function_name));
                        }
 
                        HANDLE_EXCEPTION();
@@ -17741,11 +17741,11 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_V
                }
        } else {
                if (UNEXPECTED(ce->constructor == NULL)) {
-                       zend_throw_error(zend_ce_error, "Cannot call constructor");
+                       zend_throw_error(NULL, "Cannot call constructor");
                        HANDLE_EXCEPTION();
                }
                if (Z_OBJ(EX(This)) && Z_OBJ(EX(This))->ce != ce->constructor->common.scope && (ce->constructor->common.fn_flags & ZEND_ACC_PRIVATE)) {
-                       zend_throw_error(zend_ce_error, "Cannot call private %s::__construct()", ZSTR_VAL(ce->name));
+                       zend_throw_error(NULL, "Cannot call private %s::__construct()", ZSTR_VAL(ce->name));
                        HANDLE_EXCEPTION();
                }
                fbc = ce->constructor;
@@ -17818,7 +17818,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_CONSTANT_SPEC_VAR_CONST_
                                CHECK_EXCEPTION();
                                ZEND_VM_NEXT_OPCODE();
                        } else {
-                               zend_throw_error(zend_ce_error, "Undefined constant '%s'", Z_STRVAL_P(EX_CONSTANT(opline->op2)));
+                               zend_throw_error(NULL, "Undefined constant '%s'", Z_STRVAL_P(EX_CONSTANT(opline->op2)));
                                HANDLE_EXCEPTION();
                        }
                } else {
@@ -17855,7 +17855,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_CONSTANT_SPEC_VAR_CONST_
                                                HANDLE_EXCEPTION();
                                        }
                                        if (UNEXPECTED(ce == NULL)) {
-                                               zend_throw_error(zend_ce_error, "Class '%s' not found", Z_STRVAL_P(EX_CONSTANT(opline->op1)));
+                                               zend_throw_error(NULL, "Class '%s' not found", Z_STRVAL_P(EX_CONSTANT(opline->op1)));
                                                HANDLE_EXCEPTION();
                                        }
                                        CACHE_PTR(Z_CACHE_SLOT_P(EX_CONSTANT(opline->op1)), ce);
@@ -17884,7 +17884,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_CONSTANT_SPEC_VAR_CONST_
                                        CACHE_POLYMORPHIC_PTR(Z_CACHE_SLOT_P(EX_CONSTANT(opline->op2)), ce, value);
                                }
                        } else {
-                               zend_throw_error(zend_ce_error, "Undefined class constant '%s'", Z_STRVAL_P(EX_CONSTANT(opline->op2)));
+                               zend_throw_error(NULL, "Undefined class constant '%s'", Z_STRVAL_P(EX_CONSTANT(opline->op2)));
                                HANDLE_EXCEPTION();
                        }
                } while (0);
@@ -17912,7 +17912,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_CON
            UNEXPECTED(opline->extended_value & ZEND_ARRAY_ELEMENT_REF)) {
                expr_ptr = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
                if (IS_VAR == IS_VAR && UNEXPECTED(expr_ptr == NULL)) {
-                       zend_throw_error(zend_ce_error, "Cannot create references to/from string offsets");
+                       zend_throw_error(NULL, "Cannot create references to/from string offsets");
                        zend_array_destroy(Z_ARRVAL_P(EX_VAR(opline->result.var)));
                        HANDLE_EXCEPTION();
                }
@@ -18044,12 +18044,12 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_DIM_SPEC_VAR_CONST_HANDL
        SAVE_OPLINE();
        container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
        if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
        if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot unset string offsets");
+               zend_throw_error(NULL, "Cannot unset string offsets");
 
                HANDLE_EXCEPTION();
        }
@@ -18117,12 +18117,12 @@ num_index_dim:
                }
                if (IS_VAR == IS_UNUSED || EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) {
                        if (UNEXPECTED(Z_OBJ_HT_P(container)->unset_dimension == NULL)) {
-                               zend_throw_error(zend_ce_error, "Cannot use object as array");
+                               zend_throw_error(NULL, "Cannot use object as array");
                        } else {
                                Z_OBJ_HT_P(container)->unset_dimension(container, offset);
                        }
                } else if (IS_VAR != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_STRING)) {
-                       zend_throw_error(zend_ce_error, "Cannot unset string offsets");
+                       zend_throw_error(NULL, "Cannot unset string offsets");
                }
        } while (0);
 
@@ -18141,12 +18141,12 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_OBJ_SPEC_VAR_CONST_HANDL
        SAVE_OPLINE();
        container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
        if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
        if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot unset string offsets");
+               zend_throw_error(NULL, "Cannot unset string offsets");
 
                HANDLE_EXCEPTION();
        }
@@ -18183,7 +18183,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_VAR_CONST_HANDLER(Z
 
        SAVE_OPLINE();
        if (UNEXPECTED(generator->flags & ZEND_GENERATOR_FORCED_CLOSE)) {
-               zend_throw_error(zend_ce_error, "Cannot yield from finally in a force-closed generator");
+               zend_throw_error(NULL, "Cannot yield from finally in a force-closed generator");
 
                zval_ptr_dtor_nogc(EX_VAR(opline->op1.var));
                HANDLE_EXCEPTION();
@@ -18218,7 +18218,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_VAR_CONST_HANDLER(Z
                                zval *value_ptr = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
 
                                if (IS_VAR == IS_VAR && UNEXPECTED(value_ptr == NULL)) {
-                                       zend_throw_error(zend_ce_error, "Cannot yield string offsets by reference");
+                                       zend_throw_error(NULL, "Cannot yield string offsets by reference");
 
                                        HANDLE_EXCEPTION();
                                }
@@ -18401,7 +18401,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_VAR_TMP_HANDLER(ZEN
 
        SAVE_OPLINE();
        if (UNEXPECTED(generator->flags & ZEND_GENERATOR_FORCED_CLOSE)) {
-               zend_throw_error(zend_ce_error, "Cannot yield from finally in a force-closed generator");
+               zend_throw_error(NULL, "Cannot yield from finally in a force-closed generator");
                zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
                zval_ptr_dtor_nogc(EX_VAR(opline->op1.var));
                HANDLE_EXCEPTION();
@@ -18436,7 +18436,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_VAR_TMP_HANDLER(ZEN
                                zval *value_ptr = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
 
                                if (IS_VAR == IS_VAR && UNEXPECTED(value_ptr == NULL)) {
-                                       zend_throw_error(zend_ce_error, "Cannot yield string offsets by reference");
+                                       zend_throw_error(NULL, "Cannot yield string offsets by reference");
                                        zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
                                        HANDLE_EXCEPTION();
                                }
@@ -18617,7 +18617,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_REF_SPEC_VAR_VAR_HANDLE
        value_ptr = _get_zval_ptr_ptr_var(opline->op2.var, execute_data, &free_op2);
 
        if (IS_VAR == IS_VAR && UNEXPECTED(value_ptr == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot create references to/from string offsets nor overloaded objects");
+               zend_throw_error(NULL, "Cannot create references to/from string offsets nor overloaded objects");
                zval_ptr_dtor_nogc(EX_VAR(opline->op1.var));
                HANDLE_EXCEPTION();
        }
@@ -18638,14 +18638,14 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_REF_SPEC_VAR_VAR_HANDLE
 
        variable_ptr = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
        if (IS_VAR == IS_VAR && UNEXPECTED(variable_ptr == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot create references to/from string offsets nor overloaded objects");
+               zend_throw_error(NULL, "Cannot create references to/from string offsets nor overloaded objects");
                if (free_op2) {zval_ptr_dtor_nogc(free_op2);};
                HANDLE_EXCEPTION();
        }
        if (IS_VAR == IS_VAR &&
            UNEXPECTED(Z_TYPE_P(EX_VAR(opline->op1.var)) != IS_INDIRECT) &&
            UNEXPECTED(!Z_ISREF_P(variable_ptr))) {
-               zend_throw_error(zend_ce_error, "Cannot assign by reference to overloaded object");
+               zend_throw_error(NULL, "Cannot assign by reference to overloaded object");
                if (free_op2) {zval_ptr_dtor_nogc(free_op2);};
                if (free_op1) {zval_ptr_dtor_nogc(free_op1);};
                HANDLE_EXCEPTION();
@@ -18676,7 +18676,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_VAR_VAR_HANDLER(ZEN
 
        SAVE_OPLINE();
        if (UNEXPECTED(generator->flags & ZEND_GENERATOR_FORCED_CLOSE)) {
-               zend_throw_error(zend_ce_error, "Cannot yield from finally in a force-closed generator");
+               zend_throw_error(NULL, "Cannot yield from finally in a force-closed generator");
                zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
                zval_ptr_dtor_nogc(EX_VAR(opline->op1.var));
                HANDLE_EXCEPTION();
@@ -18711,7 +18711,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_VAR_VAR_HANDLER(ZEN
                                zval *value_ptr = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
 
                                if (IS_VAR == IS_VAR && UNEXPECTED(value_ptr == NULL)) {
-                                       zend_throw_error(zend_ce_error, "Cannot yield string offsets by reference");
+                                       zend_throw_error(NULL, "Cannot yield string offsets by reference");
                                        zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
                                        HANDLE_EXCEPTION();
                                }
@@ -18820,13 +18820,13 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_dim_helper_SP
        SAVE_OPLINE();
        container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
        if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
 
                HANDLE_EXCEPTION();
        }
        if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an array");
+               zend_throw_error(NULL, "Cannot use string offset as an array");
                FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
 
                HANDLE_EXCEPTION();
@@ -18852,7 +18852,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_dim_helper_SP
                var_ptr = Z_INDIRECT(rv);
 
                if (UNEXPECTED(var_ptr == NULL)) {
-                       zend_throw_error(zend_ce_error, "Cannot use assign-op operators with overloaded objects nor string offsets");
+                       zend_throw_error(NULL, "Cannot use assign-op operators with overloaded objects nor string offsets");
 
                        FREE_OP(free_op_data1);
                        if (free_op1) {zval_ptr_dtor_nogc(free_op1);};
@@ -19112,7 +19112,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_W_SPEC_VAR_UNUSED_HA
        container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
 
        if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an array");
+               zend_throw_error(NULL, "Cannot use string offset as an array");
                HANDLE_EXCEPTION();
        }
        zend_fetch_dimension_address_W(EX_VAR(opline->result.var), container, NULL, IS_UNUSED);
@@ -19135,7 +19135,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_RW_SPEC_VAR_UNUSED_H
        container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
 
        if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an array");
+               zend_throw_error(NULL, "Cannot use string offset as an array");
                HANDLE_EXCEPTION();
        }
        zend_fetch_dimension_address_RW(EX_VAR(opline->result.var), container, NULL, IS_UNUSED);
@@ -19158,14 +19158,14 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_UN
 
        if (zend_is_by_ref_func_arg_fetch(opline, EX(call))) {
         if (IS_VAR == IS_CONST || IS_VAR == IS_TMP_VAR) {
-            zend_throw_error(zend_ce_error, "Cannot use temporary expression in write context");
+            zend_throw_error(NULL, "Cannot use temporary expression in write context");
 
                        zval_ptr_dtor_nogc(EX_VAR(opline->op1.var));
                        HANDLE_EXCEPTION();
         }
                container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
                if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
-                       zend_throw_error(zend_ce_error, "Cannot use string offset as an array");
+                       zend_throw_error(NULL, "Cannot use string offset as an array");
 
                        HANDLE_EXCEPTION();
                }
@@ -19177,7 +19177,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_UN
                if (free_op1) {zval_ptr_dtor_nogc(free_op1);};
        } else {
                if (IS_UNUSED == IS_UNUSED) {
-                       zend_throw_error(zend_ce_error, "Cannot use [] for reading");
+                       zend_throw_error(NULL, "Cannot use [] for reading");
 
                        zval_ptr_dtor_nogc(EX_VAR(opline->op1.var));
                        HANDLE_EXCEPTION();
@@ -19205,7 +19205,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_VAR_UNUSED_HAN
        object_ptr = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
 
        if (IS_VAR == IS_VAR && UNEXPECTED(object_ptr == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an array");
+               zend_throw_error(NULL, "Cannot use string offset as an array");
                FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
 
                HANDLE_EXCEPTION();
@@ -19254,7 +19254,7 @@ try_assign_dim_array:
                } else if (EXPECTED(Z_TYPE_P(object_ptr) == IS_STRING)) {
                        if (EXPECTED(Z_STRLEN_P(object_ptr) != 0)) {
                                if (IS_UNUSED == IS_UNUSED) {
-                                       zend_throw_error(zend_ce_error, "[] operator not supported for strings");
+                                       zend_throw_error(NULL, "[] operator not supported for strings");
                                        FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
                                        if (free_op1) {zval_ptr_dtor_nogc(free_op1);};
                                        HANDLE_EXCEPTION();
@@ -19320,7 +19320,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_V
                                HANDLE_EXCEPTION();
                        }
                        if (UNEXPECTED(ce == NULL)) {
-                               zend_throw_error(zend_ce_error, "Class '%s' not found", Z_STRVAL_P(EX_CONSTANT(opline->op1)));
+                               zend_throw_error(NULL, "Class '%s' not found", Z_STRVAL_P(EX_CONSTANT(opline->op1)));
                                HANDLE_EXCEPTION();
                        }
                        CACHE_PTR(Z_CACHE_SLOT_P(EX_CONSTANT(opline->op1)), ce);
@@ -19349,7 +19349,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_V
                                if (UNEXPECTED(EG(exception) != NULL)) {
                                        HANDLE_EXCEPTION();
                                }
-                               zend_throw_error(zend_ce_error, "Function name must be a string");
+                               zend_throw_error(NULL, "Function name must be a string");
 
                                HANDLE_EXCEPTION();
                        }
@@ -19362,7 +19362,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_V
                }
                if (UNEXPECTED(fbc == NULL)) {
                        if (EXPECTED(!EG(exception))) {
-                               zend_throw_error(zend_ce_error, "Call to undefined method %s::%s()", ZSTR_VAL(ce->name), Z_STRVAL_P(function_name));
+                               zend_throw_error(NULL, "Call to undefined method %s::%s()", ZSTR_VAL(ce->name), Z_STRVAL_P(function_name));
                        }
 
                        HANDLE_EXCEPTION();
@@ -19381,11 +19381,11 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_V
                }
        } else {
                if (UNEXPECTED(ce->constructor == NULL)) {
-                       zend_throw_error(zend_ce_error, "Cannot call constructor");
+                       zend_throw_error(NULL, "Cannot call constructor");
                        HANDLE_EXCEPTION();
                }
                if (Z_OBJ(EX(This)) && Z_OBJ(EX(This))->ce != ce->constructor->common.scope && (ce->constructor->common.fn_flags & ZEND_ACC_PRIVATE)) {
-                       zend_throw_error(zend_ce_error, "Cannot call private %s::__construct()", ZSTR_VAL(ce->name));
+                       zend_throw_error(NULL, "Cannot call private %s::__construct()", ZSTR_VAL(ce->name));
                        HANDLE_EXCEPTION();
                }
                fbc = ce->constructor;
@@ -19492,7 +19492,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_UNU
            UNEXPECTED(opline->extended_value & ZEND_ARRAY_ELEMENT_REF)) {
                expr_ptr = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
                if (IS_VAR == IS_VAR && UNEXPECTED(expr_ptr == NULL)) {
-                       zend_throw_error(zend_ce_error, "Cannot create references to/from string offsets");
+                       zend_throw_error(NULL, "Cannot create references to/from string offsets");
                        zend_array_destroy(Z_ARRVAL_P(EX_VAR(opline->result.var)));
                        HANDLE_EXCEPTION();
                }
@@ -19637,7 +19637,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_VAR_UNUSED_HANDLER(
 
        SAVE_OPLINE();
        if (UNEXPECTED(generator->flags & ZEND_GENERATOR_FORCED_CLOSE)) {
-               zend_throw_error(zend_ce_error, "Cannot yield from finally in a force-closed generator");
+               zend_throw_error(NULL, "Cannot yield from finally in a force-closed generator");
 
                zval_ptr_dtor_nogc(EX_VAR(opline->op1.var));
                HANDLE_EXCEPTION();
@@ -19672,7 +19672,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_VAR_UNUSED_HANDLER(
                                zval *value_ptr = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
 
                                if (IS_VAR == IS_VAR && UNEXPECTED(value_ptr == NULL)) {
-                                       zend_throw_error(zend_ce_error, "Cannot yield string offsets by reference");
+                                       zend_throw_error(NULL, "Cannot yield string offsets by reference");
 
                                        HANDLE_EXCEPTION();
                                }
@@ -19826,7 +19826,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_obj_helper_SP
        object = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
 
        if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
 
                HANDLE_EXCEPTION();
@@ -19835,7 +19835,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_obj_helper_SP
        property = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
 
        if (IS_VAR == IS_VAR && UNEXPECTED(object == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an object");
+               zend_throw_error(NULL, "Cannot use string offset as an object");
                FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
 
                HANDLE_EXCEPTION();
@@ -19890,13 +19890,13 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_dim_helper_SP
        SAVE_OPLINE();
        container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
        if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
 
                HANDLE_EXCEPTION();
        }
        if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an array");
+               zend_throw_error(NULL, "Cannot use string offset as an array");
                FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
 
                HANDLE_EXCEPTION();
@@ -19922,7 +19922,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_dim_helper_SP
                var_ptr = Z_INDIRECT(rv);
 
                if (UNEXPECTED(var_ptr == NULL)) {
-                       zend_throw_error(zend_ce_error, "Cannot use assign-op operators with overloaded objects nor string offsets");
+                       zend_throw_error(NULL, "Cannot use assign-op operators with overloaded objects nor string offsets");
 
                        FREE_OP(free_op_data1);
                        if (free_op1) {zval_ptr_dtor_nogc(free_op1);};
@@ -19964,7 +19964,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_V
        var_ptr = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
 
        if (IS_VAR == IS_VAR && UNEXPECTED(var_ptr == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use assign-op operators with overloaded objects nor string offsets");
+               zend_throw_error(NULL, "Cannot use assign-op operators with overloaded objects nor string offsets");
 
                HANDLE_EXCEPTION();
        }
@@ -20221,7 +20221,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_pre_incdec_property_helper_SPE
        object = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
 
        if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
@@ -20229,7 +20229,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_pre_incdec_property_helper_SPE
        property = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
 
        if (IS_VAR == IS_VAR && UNEXPECTED(object == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot increment/decrement overloaded objects nor string offsets");
+               zend_throw_error(NULL, "Cannot increment/decrement overloaded objects nor string offsets");
 
                HANDLE_EXCEPTION();
        }
@@ -20302,7 +20302,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_post_incdec_property_helper_SP
        object = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
 
        if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
@@ -20310,7 +20310,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_post_incdec_property_helper_SP
        property = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
 
        if (IS_VAR == IS_VAR && UNEXPECTED(object == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot increment/decrement overloaded objects nor string offsets");
+               zend_throw_error(NULL, "Cannot increment/decrement overloaded objects nor string offsets");
 
                HANDLE_EXCEPTION();
        }
@@ -20377,7 +20377,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_W_SPEC_VAR_CV_HANDLE
        container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
 
        if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an array");
+               zend_throw_error(NULL, "Cannot use string offset as an array");
                HANDLE_EXCEPTION();
        }
        zend_fetch_dimension_address_W(EX_VAR(opline->result.var), container, _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var), IS_CV);
@@ -20400,7 +20400,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_RW_SPEC_VAR_CV_HANDL
        container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
 
        if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an array");
+               zend_throw_error(NULL, "Cannot use string offset as an array");
                HANDLE_EXCEPTION();
        }
        zend_fetch_dimension_address_RW(EX_VAR(opline->result.var), container, _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var), IS_CV);
@@ -20423,14 +20423,14 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_CV
 
        if (zend_is_by_ref_func_arg_fetch(opline, EX(call))) {
         if (IS_VAR == IS_CONST || IS_VAR == IS_TMP_VAR) {
-            zend_throw_error(zend_ce_error, "Cannot use temporary expression in write context");
+            zend_throw_error(NULL, "Cannot use temporary expression in write context");
 
                        zval_ptr_dtor_nogc(EX_VAR(opline->op1.var));
                        HANDLE_EXCEPTION();
         }
                container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
                if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
-                       zend_throw_error(zend_ce_error, "Cannot use string offset as an array");
+                       zend_throw_error(NULL, "Cannot use string offset as an array");
 
                        HANDLE_EXCEPTION();
                }
@@ -20442,7 +20442,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_CV
                if (free_op1) {zval_ptr_dtor_nogc(free_op1);};
        } else {
                if (IS_CV == IS_UNUSED) {
-                       zend_throw_error(zend_ce_error, "Cannot use [] for reading");
+                       zend_throw_error(NULL, "Cannot use [] for reading");
 
                        zval_ptr_dtor_nogc(EX_VAR(opline->op1.var));
                        HANDLE_EXCEPTION();
@@ -20466,7 +20466,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_UNSET_SPEC_VAR_CV_HA
        container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
 
        if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an array");
+               zend_throw_error(NULL, "Cannot use string offset as an array");
 
                HANDLE_EXCEPTION();
        }
@@ -20492,7 +20492,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_VAR_CV_HANDLE
        container = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1);
 
        if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
@@ -20565,12 +20565,12 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_W_SPEC_VAR_CV_HANDLE
 
        container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
        if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
        if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an object");
+               zend_throw_error(NULL, "Cannot use string offset as an object");
 
                HANDLE_EXCEPTION();
        }
@@ -20597,12 +20597,12 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_RW_SPEC_VAR_CV_HANDL
        container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
 
        if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
        if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an object");
+               zend_throw_error(NULL, "Cannot use string offset as an object");
 
                HANDLE_EXCEPTION();
        }
@@ -20631,18 +20631,18 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_VAR_CV
                container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
 
                if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-                       zend_throw_error(zend_ce_error, "Using $this when not in object context");
+                       zend_throw_error(NULL, "Using $this when not in object context");
 
                        HANDLE_EXCEPTION();
                }
                if (IS_VAR == IS_CONST || IS_VAR == IS_TMP_VAR) {
-                       zend_throw_error(zend_ce_error, "Cannot use temporary expression in write context");
+                       zend_throw_error(NULL, "Cannot use temporary expression in write context");
 
                        if (free_op1) {zval_ptr_dtor_nogc(free_op1);};
                        HANDLE_EXCEPTION();
                }
                if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
-                       zend_throw_error(zend_ce_error, "Cannot use string offset as an object");
+                       zend_throw_error(NULL, "Cannot use string offset as an object");
 
                        HANDLE_EXCEPTION();
                }
@@ -20669,7 +20669,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_UNSET_SPEC_VAR_CV_HA
        container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
 
        if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
@@ -20677,7 +20677,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_UNSET_SPEC_VAR_CV_HA
        property = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
 
        if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an object");
+               zend_throw_error(NULL, "Cannot use string offset as an object");
 
                HANDLE_EXCEPTION();
        }
@@ -20702,7 +20702,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_VAR_CV_HANDLER
        object = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
 
        if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
@@ -20710,7 +20710,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_VAR_CV_HANDLER
        property_name = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
 
        if (IS_VAR == IS_VAR && UNEXPECTED(object == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an array");
+               zend_throw_error(NULL, "Cannot use string offset as an array");
 
                HANDLE_EXCEPTION();
        }
@@ -20737,7 +20737,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_VAR_CV_HANDLER
        object_ptr = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
 
        if (IS_VAR == IS_VAR && UNEXPECTED(object_ptr == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an array");
+               zend_throw_error(NULL, "Cannot use string offset as an array");
                FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
 
                HANDLE_EXCEPTION();
@@ -20786,7 +20786,7 @@ try_assign_dim_array:
                } else if (EXPECTED(Z_TYPE_P(object_ptr) == IS_STRING)) {
                        if (EXPECTED(Z_STRLEN_P(object_ptr) != 0)) {
                                if (IS_CV == IS_UNUSED) {
-                                       zend_throw_error(zend_ce_error, "[] operator not supported for strings");
+                                       zend_throw_error(NULL, "[] operator not supported for strings");
                                        FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
                                        if (free_op1) {zval_ptr_dtor_nogc(free_op1);};
                                        HANDLE_EXCEPTION();
@@ -20871,7 +20871,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_REF_SPEC_VAR_CV_HANDLER
        value_ptr = _get_zval_ptr_cv_BP_VAR_W(execute_data, opline->op2.var);
 
        if (IS_CV == IS_VAR && UNEXPECTED(value_ptr == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot create references to/from string offsets nor overloaded objects");
+               zend_throw_error(NULL, "Cannot create references to/from string offsets nor overloaded objects");
                zval_ptr_dtor_nogc(EX_VAR(opline->op1.var));
                HANDLE_EXCEPTION();
        }
@@ -20892,14 +20892,14 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_REF_SPEC_VAR_CV_HANDLER
 
        variable_ptr = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
        if (IS_VAR == IS_VAR && UNEXPECTED(variable_ptr == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot create references to/from string offsets nor overloaded objects");
+               zend_throw_error(NULL, "Cannot create references to/from string offsets nor overloaded objects");
 
                HANDLE_EXCEPTION();
        }
        if (IS_VAR == IS_VAR &&
            UNEXPECTED(Z_TYPE_P(EX_VAR(opline->op1.var)) != IS_INDIRECT) &&
            UNEXPECTED(!Z_ISREF_P(variable_ptr))) {
-               zend_throw_error(zend_ce_error, "Cannot assign by reference to overloaded object");
+               zend_throw_error(NULL, "Cannot assign by reference to overloaded object");
 
                if (free_op1) {zval_ptr_dtor_nogc(free_op1);};
                HANDLE_EXCEPTION();
@@ -20942,7 +20942,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_V
                                HANDLE_EXCEPTION();
                        }
                        if (UNEXPECTED(ce == NULL)) {
-                               zend_throw_error(zend_ce_error, "Class '%s' not found", Z_STRVAL_P(EX_CONSTANT(opline->op1)));
+                               zend_throw_error(NULL, "Class '%s' not found", Z_STRVAL_P(EX_CONSTANT(opline->op1)));
                                HANDLE_EXCEPTION();
                        }
                        CACHE_PTR(Z_CACHE_SLOT_P(EX_CONSTANT(opline->op1)), ce);
@@ -20971,7 +20971,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_V
                                if (UNEXPECTED(EG(exception) != NULL)) {
                                        HANDLE_EXCEPTION();
                                }
-                               zend_throw_error(zend_ce_error, "Function name must be a string");
+                               zend_throw_error(NULL, "Function name must be a string");
 
                                HANDLE_EXCEPTION();
                        }
@@ -20984,7 +20984,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_V
                }
                if (UNEXPECTED(fbc == NULL)) {
                        if (EXPECTED(!EG(exception))) {
-                               zend_throw_error(zend_ce_error, "Call to undefined method %s::%s()", ZSTR_VAL(ce->name), Z_STRVAL_P(function_name));
+                               zend_throw_error(NULL, "Call to undefined method %s::%s()", ZSTR_VAL(ce->name), Z_STRVAL_P(function_name));
                        }
 
                        HANDLE_EXCEPTION();
@@ -21003,11 +21003,11 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_V
                }
        } else {
                if (UNEXPECTED(ce->constructor == NULL)) {
-                       zend_throw_error(zend_ce_error, "Cannot call constructor");
+                       zend_throw_error(NULL, "Cannot call constructor");
                        HANDLE_EXCEPTION();
                }
                if (Z_OBJ(EX(This)) && Z_OBJ(EX(This))->ce != ce->constructor->common.scope && (ce->constructor->common.fn_flags & ZEND_ACC_PRIVATE)) {
-                       zend_throw_error(zend_ce_error, "Cannot call private %s::__construct()", ZSTR_VAL(ce->name));
+                       zend_throw_error(NULL, "Cannot call private %s::__construct()", ZSTR_VAL(ce->name));
                        HANDLE_EXCEPTION();
                }
                fbc = ce->constructor;
@@ -21065,7 +21065,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_CV_
            UNEXPECTED(opline->extended_value & ZEND_ARRAY_ELEMENT_REF)) {
                expr_ptr = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
                if (IS_VAR == IS_VAR && UNEXPECTED(expr_ptr == NULL)) {
-                       zend_throw_error(zend_ce_error, "Cannot create references to/from string offsets");
+                       zend_throw_error(NULL, "Cannot create references to/from string offsets");
                        zend_array_destroy(Z_ARRVAL_P(EX_VAR(opline->result.var)));
                        HANDLE_EXCEPTION();
                }
@@ -21197,12 +21197,12 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_DIM_SPEC_VAR_CV_HANDLER(
        SAVE_OPLINE();
        container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
        if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
        if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot unset string offsets");
+               zend_throw_error(NULL, "Cannot unset string offsets");
 
                HANDLE_EXCEPTION();
        }
@@ -21270,12 +21270,12 @@ num_index_dim:
                }
                if (IS_VAR == IS_UNUSED || EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) {
                        if (UNEXPECTED(Z_OBJ_HT_P(container)->unset_dimension == NULL)) {
-                               zend_throw_error(zend_ce_error, "Cannot use object as array");
+                               zend_throw_error(NULL, "Cannot use object as array");
                        } else {
                                Z_OBJ_HT_P(container)->unset_dimension(container, offset);
                        }
                } else if (IS_VAR != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_STRING)) {
-                       zend_throw_error(zend_ce_error, "Cannot unset string offsets");
+                       zend_throw_error(NULL, "Cannot unset string offsets");
                }
        } while (0);
 
@@ -21294,12 +21294,12 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_OBJ_SPEC_VAR_CV_HANDLER(
        SAVE_OPLINE();
        container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
        if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
        if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot unset string offsets");
+               zend_throw_error(NULL, "Cannot unset string offsets");
 
                HANDLE_EXCEPTION();
        }
@@ -21336,7 +21336,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_VAR_CV_HANDLER(ZEND
 
        SAVE_OPLINE();
        if (UNEXPECTED(generator->flags & ZEND_GENERATOR_FORCED_CLOSE)) {
-               zend_throw_error(zend_ce_error, "Cannot yield from finally in a force-closed generator");
+               zend_throw_error(NULL, "Cannot yield from finally in a force-closed generator");
 
                zval_ptr_dtor_nogc(EX_VAR(opline->op1.var));
                HANDLE_EXCEPTION();
@@ -21371,7 +21371,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_VAR_CV_HANDLER(ZEND
                                zval *value_ptr = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
 
                                if (IS_VAR == IS_VAR && UNEXPECTED(value_ptr == NULL)) {
-                                       zend_throw_error(zend_ce_error, "Cannot yield string offsets by reference");
+                                       zend_throw_error(NULL, "Cannot yield string offsets by reference");
 
                                        HANDLE_EXCEPTION();
                                }
@@ -21488,7 +21488,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_obj_helper_SP
        object = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
 
        if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
                zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
                HANDLE_EXCEPTION();
@@ -21497,7 +21497,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_obj_helper_SP
        property = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
 
        if (IS_VAR == IS_VAR && UNEXPECTED(object == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an object");
+               zend_throw_error(NULL, "Cannot use string offset as an object");
                FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
                zval_ptr_dtor_nogc(free_op2);
                HANDLE_EXCEPTION();
@@ -21552,13 +21552,13 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_dim_helper_SP
        SAVE_OPLINE();
        container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
        if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
                zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
                HANDLE_EXCEPTION();
        }
        if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an array");
+               zend_throw_error(NULL, "Cannot use string offset as an array");
                FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
                zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
                HANDLE_EXCEPTION();
@@ -21584,7 +21584,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_dim_helper_SP
                var_ptr = Z_INDIRECT(rv);
 
                if (UNEXPECTED(var_ptr == NULL)) {
-                       zend_throw_error(zend_ce_error, "Cannot use assign-op operators with overloaded objects nor string offsets");
+                       zend_throw_error(NULL, "Cannot use assign-op operators with overloaded objects nor string offsets");
                        zval_ptr_dtor_nogc(free_op2);
                        FREE_OP(free_op_data1);
                        if (free_op1) {zval_ptr_dtor_nogc(free_op1);};
@@ -21627,7 +21627,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_V
        var_ptr = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
 
        if (IS_VAR == IS_VAR && UNEXPECTED(var_ptr == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use assign-op operators with overloaded objects nor string offsets");
+               zend_throw_error(NULL, "Cannot use assign-op operators with overloaded objects nor string offsets");
                zval_ptr_dtor_nogc(free_op2);
                HANDLE_EXCEPTION();
        }
@@ -21885,7 +21885,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_pre_incdec_property_helper_SPE
        object = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
 
        if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
                HANDLE_EXCEPTION();
        }
@@ -21893,7 +21893,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_pre_incdec_property_helper_SPE
        property = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
 
        if (IS_VAR == IS_VAR && UNEXPECTED(object == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot increment/decrement overloaded objects nor string offsets");
+               zend_throw_error(NULL, "Cannot increment/decrement overloaded objects nor string offsets");
                zval_ptr_dtor_nogc(free_op2);
                HANDLE_EXCEPTION();
        }
@@ -21967,7 +21967,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_post_incdec_property_helper_SP
        object = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
 
        if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
                HANDLE_EXCEPTION();
        }
@@ -21975,7 +21975,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_post_incdec_property_helper_SP
        property = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
 
        if (IS_VAR == IS_VAR && UNEXPECTED(object == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot increment/decrement overloaded objects nor string offsets");
+               zend_throw_error(NULL, "Cannot increment/decrement overloaded objects nor string offsets");
                zval_ptr_dtor_nogc(free_op2);
                HANDLE_EXCEPTION();
        }
@@ -22043,7 +22043,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_W_SPEC_VAR_TMPVAR_HA
        container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
 
        if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an array");
+               zend_throw_error(NULL, "Cannot use string offset as an array");
                HANDLE_EXCEPTION();
        }
        zend_fetch_dimension_address_W(EX_VAR(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2), (IS_TMP_VAR|IS_VAR));
@@ -22066,7 +22066,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_RW_SPEC_VAR_TMPVAR_H
        container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
 
        if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an array");
+               zend_throw_error(NULL, "Cannot use string offset as an array");
                HANDLE_EXCEPTION();
        }
        zend_fetch_dimension_address_RW(EX_VAR(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2), (IS_TMP_VAR|IS_VAR));
@@ -22089,14 +22089,14 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_TM
 
        if (zend_is_by_ref_func_arg_fetch(opline, EX(call))) {
         if (IS_VAR == IS_CONST || IS_VAR == IS_TMP_VAR) {
-            zend_throw_error(zend_ce_error, "Cannot use temporary expression in write context");
+            zend_throw_error(NULL, "Cannot use temporary expression in write context");
                        zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
                        zval_ptr_dtor_nogc(EX_VAR(opline->op1.var));
                        HANDLE_EXCEPTION();
         }
                container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
                if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
-                       zend_throw_error(zend_ce_error, "Cannot use string offset as an array");
+                       zend_throw_error(NULL, "Cannot use string offset as an array");
                        zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
                        HANDLE_EXCEPTION();
                }
@@ -22108,7 +22108,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_TM
                if (free_op1) {zval_ptr_dtor_nogc(free_op1);};
        } else {
                if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED) {
-                       zend_throw_error(zend_ce_error, "Cannot use [] for reading");
+                       zend_throw_error(NULL, "Cannot use [] for reading");
                        zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
                        zval_ptr_dtor_nogc(EX_VAR(opline->op1.var));
                        HANDLE_EXCEPTION();
@@ -22132,7 +22132,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_UNSET_SPEC_VAR_TMPVA
        container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
 
        if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an array");
+               zend_throw_error(NULL, "Cannot use string offset as an array");
                zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
                HANDLE_EXCEPTION();
        }
@@ -22158,7 +22158,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_VAR_TMPVAR_HA
        container = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1);
 
        if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
                HANDLE_EXCEPTION();
        }
@@ -22232,12 +22232,12 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_W_SPEC_VAR_TMPVAR_HA
 
        container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
        if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                zval_ptr_dtor_nogc(free_op2);
                HANDLE_EXCEPTION();
        }
        if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an object");
+               zend_throw_error(NULL, "Cannot use string offset as an object");
                zval_ptr_dtor_nogc(free_op2);
                HANDLE_EXCEPTION();
        }
@@ -22264,12 +22264,12 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_RW_SPEC_VAR_TMPVAR_H
        container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
 
        if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                zval_ptr_dtor_nogc(free_op2);
                HANDLE_EXCEPTION();
        }
        if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an object");
+               zend_throw_error(NULL, "Cannot use string offset as an object");
                zval_ptr_dtor_nogc(free_op2);
                HANDLE_EXCEPTION();
        }
@@ -22298,18 +22298,18 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_VAR_TM
                container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
 
                if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-                       zend_throw_error(zend_ce_error, "Using $this when not in object context");
+                       zend_throw_error(NULL, "Using $this when not in object context");
                        zval_ptr_dtor_nogc(free_op2);
                        HANDLE_EXCEPTION();
                }
                if (IS_VAR == IS_CONST || IS_VAR == IS_TMP_VAR) {
-                       zend_throw_error(zend_ce_error, "Cannot use temporary expression in write context");
+                       zend_throw_error(NULL, "Cannot use temporary expression in write context");
                        zval_ptr_dtor_nogc(free_op2);
                        if (free_op1) {zval_ptr_dtor_nogc(free_op1);};
                        HANDLE_EXCEPTION();
                }
                if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
-                       zend_throw_error(zend_ce_error, "Cannot use string offset as an object");
+                       zend_throw_error(NULL, "Cannot use string offset as an object");
                        zval_ptr_dtor_nogc(free_op2);
                        HANDLE_EXCEPTION();
                }
@@ -22336,7 +22336,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_UNSET_SPEC_VAR_TMPVA
        container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
 
        if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
                HANDLE_EXCEPTION();
        }
@@ -22344,7 +22344,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_UNSET_SPEC_VAR_TMPVA
        property = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
 
        if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an object");
+               zend_throw_error(NULL, "Cannot use string offset as an object");
                zval_ptr_dtor_nogc(free_op2);
                HANDLE_EXCEPTION();
        }
@@ -22369,7 +22369,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_VAR_TMPVAR_HAN
        object = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
 
        if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
                HANDLE_EXCEPTION();
        }
@@ -22377,7 +22377,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_VAR_TMPVAR_HAN
        property_name = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
 
        if (IS_VAR == IS_VAR && UNEXPECTED(object == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an array");
+               zend_throw_error(NULL, "Cannot use string offset as an array");
                zval_ptr_dtor_nogc(free_op2);
                HANDLE_EXCEPTION();
        }
@@ -22404,7 +22404,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_VAR_TMPVAR_HAN
        object_ptr = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
 
        if (IS_VAR == IS_VAR && UNEXPECTED(object_ptr == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an array");
+               zend_throw_error(NULL, "Cannot use string offset as an array");
                FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
                zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
                HANDLE_EXCEPTION();
@@ -22453,7 +22453,7 @@ try_assign_dim_array:
                } else if (EXPECTED(Z_TYPE_P(object_ptr) == IS_STRING)) {
                        if (EXPECTED(Z_STRLEN_P(object_ptr) != 0)) {
                                if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED) {
-                                       zend_throw_error(zend_ce_error, "[] operator not supported for strings");
+                                       zend_throw_error(NULL, "[] operator not supported for strings");
                                        FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
                                        if (free_op1) {zval_ptr_dtor_nogc(free_op1);};
                                        HANDLE_EXCEPTION();
@@ -22519,7 +22519,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_V
                                HANDLE_EXCEPTION();
                        }
                        if (UNEXPECTED(ce == NULL)) {
-                               zend_throw_error(zend_ce_error, "Class '%s' not found", Z_STRVAL_P(EX_CONSTANT(opline->op1)));
+                               zend_throw_error(NULL, "Class '%s' not found", Z_STRVAL_P(EX_CONSTANT(opline->op1)));
                                HANDLE_EXCEPTION();
                        }
                        CACHE_PTR(Z_CACHE_SLOT_P(EX_CONSTANT(opline->op1)), ce);
@@ -22548,7 +22548,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_V
                                if (UNEXPECTED(EG(exception) != NULL)) {
                                        HANDLE_EXCEPTION();
                                }
-                               zend_throw_error(zend_ce_error, "Function name must be a string");
+                               zend_throw_error(NULL, "Function name must be a string");
                                zval_ptr_dtor_nogc(free_op2);
                                HANDLE_EXCEPTION();
                        }
@@ -22561,7 +22561,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_V
                }
                if (UNEXPECTED(fbc == NULL)) {
                        if (EXPECTED(!EG(exception))) {
-                               zend_throw_error(zend_ce_error, "Call to undefined method %s::%s()", ZSTR_VAL(ce->name), Z_STRVAL_P(function_name));
+                               zend_throw_error(NULL, "Call to undefined method %s::%s()", ZSTR_VAL(ce->name), Z_STRVAL_P(function_name));
                        }
                        zval_ptr_dtor_nogc(free_op2);
                        HANDLE_EXCEPTION();
@@ -22580,11 +22580,11 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_V
                }
        } else {
                if (UNEXPECTED(ce->constructor == NULL)) {
-                       zend_throw_error(zend_ce_error, "Cannot call constructor");
+                       zend_throw_error(NULL, "Cannot call constructor");
                        HANDLE_EXCEPTION();
                }
                if (Z_OBJ(EX(This)) && Z_OBJ(EX(This))->ce != ce->constructor->common.scope && (ce->constructor->common.fn_flags & ZEND_ACC_PRIVATE)) {
-                       zend_throw_error(zend_ce_error, "Cannot call private %s::__construct()", ZSTR_VAL(ce->name));
+                       zend_throw_error(NULL, "Cannot call private %s::__construct()", ZSTR_VAL(ce->name));
                        HANDLE_EXCEPTION();
                }
                fbc = ce->constructor;
@@ -22642,7 +22642,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_TMP
            UNEXPECTED(opline->extended_value & ZEND_ARRAY_ELEMENT_REF)) {
                expr_ptr = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
                if (IS_VAR == IS_VAR && UNEXPECTED(expr_ptr == NULL)) {
-                       zend_throw_error(zend_ce_error, "Cannot create references to/from string offsets");
+                       zend_throw_error(NULL, "Cannot create references to/from string offsets");
                        zend_array_destroy(Z_ARRVAL_P(EX_VAR(opline->result.var)));
                        HANDLE_EXCEPTION();
                }
@@ -22774,12 +22774,12 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_DIM_SPEC_VAR_TMPVAR_HAND
        SAVE_OPLINE();
        container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
        if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
                HANDLE_EXCEPTION();
        }
        if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot unset string offsets");
+               zend_throw_error(NULL, "Cannot unset string offsets");
                zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
                HANDLE_EXCEPTION();
        }
@@ -22847,12 +22847,12 @@ num_index_dim:
                }
                if (IS_VAR == IS_UNUSED || EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) {
                        if (UNEXPECTED(Z_OBJ_HT_P(container)->unset_dimension == NULL)) {
-                               zend_throw_error(zend_ce_error, "Cannot use object as array");
+                               zend_throw_error(NULL, "Cannot use object as array");
                        } else {
                                Z_OBJ_HT_P(container)->unset_dimension(container, offset);
                        }
                } else if (IS_VAR != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_STRING)) {
-                       zend_throw_error(zend_ce_error, "Cannot unset string offsets");
+                       zend_throw_error(NULL, "Cannot unset string offsets");
                }
        } while (0);
 
@@ -22872,12 +22872,12 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_OBJ_SPEC_VAR_TMPVAR_HAND
        SAVE_OPLINE();
        container = _get_zval_ptr_ptr_var(opline->op1.var, execute_data, &free_op1);
        if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
                HANDLE_EXCEPTION();
        }
        if (IS_VAR == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot unset string offsets");
+               zend_throw_error(NULL, "Cannot unset string offsets");
                zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
                HANDLE_EXCEPTION();
        }
@@ -22925,7 +22925,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CLONE_SPEC_UNUSED_HANDLER(ZEND
        obj = _get_obj_zval_ptr_unused(execute_data);
 
        if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_OBJ_P(obj) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                HANDLE_EXCEPTION();
        }
 
@@ -22944,7 +22944,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CLONE_SPEC_UNUSED_HANDLER(ZEND
                        if (UNEXPECTED(EG(exception) != NULL)) {
                                HANDLE_EXCEPTION();
                        }
-                       zend_throw_error(zend_ce_error, "__clone method called on non-object");
+                       zend_throw_error(NULL, "__clone method called on non-object");
 
                        HANDLE_EXCEPTION();
                }
@@ -22955,9 +22955,9 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CLONE_SPEC_UNUSED_HANDLER(ZEND
        clone_call =  Z_OBJ_HT_P(obj)->clone_obj;
        if (UNEXPECTED(clone_call == NULL)) {
                if (ce) {
-                       zend_throw_error(zend_ce_error, "Trying to clone an uncloneable object of class %s", ZSTR_VAL(ce->name));
+                       zend_throw_error(NULL, "Trying to clone an uncloneable object of class %s", ZSTR_VAL(ce->name));
                } else {
-                       zend_throw_error(zend_ce_error, "Trying to clone an uncloneable object");
+                       zend_throw_error(NULL, "Trying to clone an uncloneable object");
                }
 
                HANDLE_EXCEPTION();
@@ -22968,7 +22968,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CLONE_SPEC_UNUSED_HANDLER(ZEND
                        /* Ensure that if we're calling a private function, we're allowed to do so.
                         */
                        if (UNEXPECTED(ce != EG(scope))) {
-                               zend_throw_error(zend_ce_error, "Call to private %s::__clone() from context '%s'", ZSTR_VAL(ce->name), EG(scope) ? ZSTR_VAL(EG(scope)->name) : "");
+                               zend_throw_error(NULL, "Call to private %s::__clone() from context '%s'", ZSTR_VAL(ce->name), EG(scope) ? ZSTR_VAL(EG(scope)->name) : "");
 
                                HANDLE_EXCEPTION();
                        }
@@ -22976,7 +22976,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CLONE_SPEC_UNUSED_HANDLER(ZEND
                        /* Ensure that if we're calling a protected function, we're allowed to do so.
                         */
                        if (UNEXPECTED(!zend_check_protected(zend_get_function_root_class(clone), EG(scope)))) {
-                               zend_throw_error(zend_ce_error, "Call to protected %s::__clone() from context '%s'", ZSTR_VAL(ce->name), EG(scope) ? ZSTR_VAL(EG(scope)->name) : "");
+                               zend_throw_error(NULL, "Call to protected %s::__clone() from context '%s'", ZSTR_VAL(ce->name), EG(scope) ? ZSTR_VAL(EG(scope)->name) : "");
 
                                HANDLE_EXCEPTION();
                        }
@@ -23038,7 +23038,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_obj_helper_SP
        object = _get_obj_zval_ptr_unused(execute_data);
 
        if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
 
                HANDLE_EXCEPTION();
@@ -23047,7 +23047,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_obj_helper_SP
        property = EX_CONSTANT(opline->op2);
 
        if (IS_UNUSED == IS_VAR && UNEXPECTED(object == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an object");
+               zend_throw_error(NULL, "Cannot use string offset as an object");
                FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
 
                HANDLE_EXCEPTION();
@@ -23102,13 +23102,13 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_dim_helper_SP
        SAVE_OPLINE();
        container = _get_obj_zval_ptr_unused(execute_data);
        if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
 
                HANDLE_EXCEPTION();
        }
        if (IS_UNUSED == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an array");
+               zend_throw_error(NULL, "Cannot use string offset as an array");
                FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
 
                HANDLE_EXCEPTION();
@@ -23134,7 +23134,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_dim_helper_SP
                var_ptr = Z_INDIRECT(rv);
 
                if (UNEXPECTED(var_ptr == NULL)) {
-                       zend_throw_error(zend_ce_error, "Cannot use assign-op operators with overloaded objects nor string offsets");
+                       zend_throw_error(NULL, "Cannot use assign-op operators with overloaded objects nor string offsets");
 
                        FREE_OP(free_op_data1);
 
@@ -23396,7 +23396,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_pre_incdec_property_helper_SPE
        object = _get_obj_zval_ptr_unused(execute_data);
 
        if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
@@ -23404,7 +23404,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_pre_incdec_property_helper_SPE
        property = EX_CONSTANT(opline->op2);
 
        if (IS_UNUSED == IS_VAR && UNEXPECTED(object == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot increment/decrement overloaded objects nor string offsets");
+               zend_throw_error(NULL, "Cannot increment/decrement overloaded objects nor string offsets");
 
                HANDLE_EXCEPTION();
        }
@@ -23477,7 +23477,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_post_incdec_property_helper_SP
        object = _get_obj_zval_ptr_unused(execute_data);
 
        if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
@@ -23485,7 +23485,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_post_incdec_property_helper_SP
        property = EX_CONSTANT(opline->op2);
 
        if (IS_UNUSED == IS_VAR && UNEXPECTED(object == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot increment/decrement overloaded objects nor string offsets");
+               zend_throw_error(NULL, "Cannot increment/decrement overloaded objects nor string offsets");
 
                HANDLE_EXCEPTION();
        }
@@ -23554,7 +23554,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_UNUSED_CONST_
        container = _get_obj_zval_ptr_unused(execute_data);
 
        if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
@@ -23627,12 +23627,12 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_W_SPEC_UNUSED_CONST_
 
        container = _get_obj_zval_ptr_unused(execute_data);
        if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
        if (IS_UNUSED == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an object");
+               zend_throw_error(NULL, "Cannot use string offset as an object");
 
                HANDLE_EXCEPTION();
        }
@@ -23659,12 +23659,12 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_RW_SPEC_UNUSED_CONST
        container = _get_obj_zval_ptr_unused(execute_data);
 
        if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
        if (IS_UNUSED == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an object");
+               zend_throw_error(NULL, "Cannot use string offset as an object");
 
                HANDLE_EXCEPTION();
        }
@@ -23690,7 +23690,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_UNUSED_CONST
        container = _get_obj_zval_ptr_unused(execute_data);
 
        if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
@@ -23766,18 +23766,18 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_UNUSED
                container = _get_obj_zval_ptr_unused(execute_data);
 
                if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-                       zend_throw_error(zend_ce_error, "Using $this when not in object context");
+                       zend_throw_error(NULL, "Using $this when not in object context");
 
                        HANDLE_EXCEPTION();
                }
                if (IS_UNUSED == IS_CONST || IS_UNUSED == IS_TMP_VAR) {
-                       zend_throw_error(zend_ce_error, "Cannot use temporary expression in write context");
+                       zend_throw_error(NULL, "Cannot use temporary expression in write context");
 
 
                        HANDLE_EXCEPTION();
                }
                if (IS_UNUSED == IS_VAR && UNEXPECTED(container == NULL)) {
-                       zend_throw_error(zend_ce_error, "Cannot use string offset as an object");
+                       zend_throw_error(NULL, "Cannot use string offset as an object");
 
                        HANDLE_EXCEPTION();
                }
@@ -23804,7 +23804,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_UNSET_SPEC_UNUSED_CO
        container = _get_obj_zval_ptr_unused(execute_data);
 
        if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
@@ -23812,7 +23812,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_UNSET_SPEC_UNUSED_CO
        property = EX_CONSTANT(opline->op2);
 
        if (IS_UNUSED == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an object");
+               zend_throw_error(NULL, "Cannot use string offset as an object");
 
                HANDLE_EXCEPTION();
        }
@@ -23837,7 +23837,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_UNUSED_CONST_H
        object = _get_obj_zval_ptr_unused(execute_data);
 
        if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
@@ -23845,7 +23845,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_UNUSED_CONST_H
        property_name = EX_CONSTANT(opline->op2);
 
        if (IS_UNUSED == IS_VAR && UNEXPECTED(object == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an array");
+               zend_throw_error(NULL, "Cannot use string offset as an array");
 
                HANDLE_EXCEPTION();
        }
@@ -23922,7 +23922,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_UNUSED_C
                        if (UNEXPECTED(EG(exception) != NULL)) {
                                HANDLE_EXCEPTION();
                        }
-                       zend_throw_error(zend_ce_error, "Method name must be a string");
+                       zend_throw_error(NULL, "Method name must be a string");
 
 
                        HANDLE_EXCEPTION();
@@ -23932,7 +23932,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_UNUSED_C
        object = _get_obj_zval_ptr_unused(execute_data);
 
        if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
@@ -23952,7 +23952,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_UNUSED_C
                                if (UNEXPECTED(EG(exception) != NULL)) {
                                        HANDLE_EXCEPTION();
                                }
-                               zend_throw_error(zend_ce_error, "Call to a member function %s() on %s", Z_STRVAL_P(function_name), zend_get_type_by_const(Z_TYPE_P(object)));
+                               zend_throw_error(NULL, "Call to a member function %s() on %s", Z_STRVAL_P(function_name), zend_get_type_by_const(Z_TYPE_P(object)));
 
 
                                HANDLE_EXCEPTION();
@@ -23968,7 +23968,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_UNUSED_C
            zend_object *orig_obj = obj;
 
                if (UNEXPECTED(obj->handlers->get_method == NULL)) {
-                       zend_throw_error(zend_ce_error, "Object does not support method calls");
+                       zend_throw_error(NULL, "Object does not support method calls");
 
 
                        HANDLE_EXCEPTION();
@@ -23978,7 +23978,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_UNUSED_C
                fbc = obj->handlers->get_method(&obj, Z_STR_P(function_name), ((IS_CONST == IS_CONST) ? (EX_CONSTANT(opline->op2) + 1) : NULL));
                if (UNEXPECTED(fbc == NULL)) {
                        if (EXPECTED(!EG(exception))) {
-                               zend_throw_error(zend_ce_error, "Call to undefined method %s::%s()", ZSTR_VAL(obj->ce->name), Z_STRVAL_P(function_name));
+                               zend_throw_error(NULL, "Call to undefined method %s::%s()", ZSTR_VAL(obj->ce->name), Z_STRVAL_P(function_name));
                        }
 
 
@@ -24037,7 +24037,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_CONSTANT_SPEC_UNUSED_CON
                                CHECK_EXCEPTION();
                                ZEND_VM_NEXT_OPCODE();
                        } else {
-                               zend_throw_error(zend_ce_error, "Undefined constant '%s'", Z_STRVAL_P(EX_CONSTANT(opline->op2)));
+                               zend_throw_error(NULL, "Undefined constant '%s'", Z_STRVAL_P(EX_CONSTANT(opline->op2)));
                                HANDLE_EXCEPTION();
                        }
                } else {
@@ -24074,7 +24074,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_CONSTANT_SPEC_UNUSED_CON
                                                HANDLE_EXCEPTION();
                                        }
                                        if (UNEXPECTED(ce == NULL)) {
-                                               zend_throw_error(zend_ce_error, "Class '%s' not found", Z_STRVAL_P(EX_CONSTANT(opline->op1)));
+                                               zend_throw_error(NULL, "Class '%s' not found", Z_STRVAL_P(EX_CONSTANT(opline->op1)));
                                                HANDLE_EXCEPTION();
                                        }
                                        CACHE_PTR(Z_CACHE_SLOT_P(EX_CONSTANT(opline->op1)), ce);
@@ -24103,7 +24103,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_CONSTANT_SPEC_UNUSED_CON
                                        CACHE_POLYMORPHIC_PTR(Z_CACHE_SLOT_P(EX_CONSTANT(opline->op2)), ce, value);
                                }
                        } else {
-                               zend_throw_error(zend_ce_error, "Undefined class constant '%s'", Z_STRVAL_P(EX_CONSTANT(opline->op2)));
+                               zend_throw_error(NULL, "Undefined class constant '%s'", Z_STRVAL_P(EX_CONSTANT(opline->op2)));
                                HANDLE_EXCEPTION();
                        }
                } while (0);
@@ -24163,12 +24163,12 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_DIM_SPEC_UNUSED_CONST_HA
        SAVE_OPLINE();
        container = _get_obj_zval_ptr_unused(execute_data);
        if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
        if (IS_UNUSED == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot unset string offsets");
+               zend_throw_error(NULL, "Cannot unset string offsets");
 
                HANDLE_EXCEPTION();
        }
@@ -24236,12 +24236,12 @@ num_index_dim:
                }
                if (IS_UNUSED == IS_UNUSED || EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) {
                        if (UNEXPECTED(Z_OBJ_HT_P(container)->unset_dimension == NULL)) {
-                               zend_throw_error(zend_ce_error, "Cannot use object as array");
+                               zend_throw_error(NULL, "Cannot use object as array");
                        } else {
                                Z_OBJ_HT_P(container)->unset_dimension(container, offset);
                        }
                } else if (IS_UNUSED != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_STRING)) {
-                       zend_throw_error(zend_ce_error, "Cannot unset string offsets");
+                       zend_throw_error(NULL, "Cannot unset string offsets");
                }
        } while (0);
 
@@ -24260,12 +24260,12 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_OBJ_SPEC_UNUSED_CONST_HA
        SAVE_OPLINE();
        container = _get_obj_zval_ptr_unused(execute_data);
        if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
        if (IS_UNUSED == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot unset string offsets");
+               zend_throw_error(NULL, "Cannot unset string offsets");
 
                HANDLE_EXCEPTION();
        }
@@ -24307,7 +24307,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_UNU
        container = _get_obj_zval_ptr_unused(execute_data);
 
        if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
@@ -24444,7 +24444,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_UN
        container = _get_obj_zval_ptr_unused(execute_data);
 
        if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
@@ -24487,7 +24487,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_UNUSED_CONST_HANDLE
 
        SAVE_OPLINE();
        if (UNEXPECTED(generator->flags & ZEND_GENERATOR_FORCED_CLOSE)) {
-               zend_throw_error(zend_ce_error, "Cannot yield from finally in a force-closed generator");
+               zend_throw_error(NULL, "Cannot yield from finally in a force-closed generator");
 
 
                HANDLE_EXCEPTION();
@@ -24522,7 +24522,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_UNUSED_CONST_HANDLE
                                zval *value_ptr = NULL;
 
                                if (IS_UNUSED == IS_VAR && UNEXPECTED(value_ptr == NULL)) {
-                                       zend_throw_error(zend_ce_error, "Cannot yield string offsets by reference");
+                                       zend_throw_error(NULL, "Cannot yield string offsets by reference");
 
                                        HANDLE_EXCEPTION();
                                }
@@ -24628,7 +24628,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_UNUSED_TMP_HANDLER(
 
        SAVE_OPLINE();
        if (UNEXPECTED(generator->flags & ZEND_GENERATOR_FORCED_CLOSE)) {
-               zend_throw_error(zend_ce_error, "Cannot yield from finally in a force-closed generator");
+               zend_throw_error(NULL, "Cannot yield from finally in a force-closed generator");
                zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
 
                HANDLE_EXCEPTION();
@@ -24663,7 +24663,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_UNUSED_TMP_HANDLER(
                                zval *value_ptr = NULL;
 
                                if (IS_UNUSED == IS_VAR && UNEXPECTED(value_ptr == NULL)) {
-                                       zend_throw_error(zend_ce_error, "Cannot yield string offsets by reference");
+                                       zend_throw_error(NULL, "Cannot yield string offsets by reference");
                                        zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
                                        HANDLE_EXCEPTION();
                                }
@@ -24769,7 +24769,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_UNUSED_VAR_HANDLER(
 
        SAVE_OPLINE();
        if (UNEXPECTED(generator->flags & ZEND_GENERATOR_FORCED_CLOSE)) {
-               zend_throw_error(zend_ce_error, "Cannot yield from finally in a force-closed generator");
+               zend_throw_error(NULL, "Cannot yield from finally in a force-closed generator");
                zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
 
                HANDLE_EXCEPTION();
@@ -24804,7 +24804,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_UNUSED_VAR_HANDLER(
                                zval *value_ptr = NULL;
 
                                if (IS_UNUSED == IS_VAR && UNEXPECTED(value_ptr == NULL)) {
-                                       zend_throw_error(zend_ce_error, "Cannot yield string offsets by reference");
+                                       zend_throw_error(NULL, "Cannot yield string offsets by reference");
                                        zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
                                        HANDLE_EXCEPTION();
                                }
@@ -24912,13 +24912,13 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_dim_helper_SP
        SAVE_OPLINE();
        container = _get_obj_zval_ptr_unused(execute_data);
        if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
 
                HANDLE_EXCEPTION();
        }
        if (IS_UNUSED == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an array");
+               zend_throw_error(NULL, "Cannot use string offset as an array");
                FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
 
                HANDLE_EXCEPTION();
@@ -24944,7 +24944,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_dim_helper_SP
                var_ptr = Z_INDIRECT(rv);
 
                if (UNEXPECTED(var_ptr == NULL)) {
-                       zend_throw_error(zend_ce_error, "Cannot use assign-op operators with overloaded objects nor string offsets");
+                       zend_throw_error(NULL, "Cannot use assign-op operators with overloaded objects nor string offsets");
 
                        FREE_OP(free_op_data1);
 
@@ -25282,7 +25282,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_UNUSED_UNUSED_HANDL
 
        SAVE_OPLINE();
        if (UNEXPECTED(generator->flags & ZEND_GENERATOR_FORCED_CLOSE)) {
-               zend_throw_error(zend_ce_error, "Cannot yield from finally in a force-closed generator");
+               zend_throw_error(NULL, "Cannot yield from finally in a force-closed generator");
 
 
                HANDLE_EXCEPTION();
@@ -25317,7 +25317,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_UNUSED_UNUSED_HANDL
                                zval *value_ptr = NULL;
 
                                if (IS_UNUSED == IS_VAR && UNEXPECTED(value_ptr == NULL)) {
-                                       zend_throw_error(zend_ce_error, "Cannot yield string offsets by reference");
+                                       zend_throw_error(NULL, "Cannot yield string offsets by reference");
 
                                        HANDLE_EXCEPTION();
                                }
@@ -25428,7 +25428,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_obj_helper_SP
        object = _get_obj_zval_ptr_unused(execute_data);
 
        if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
 
                HANDLE_EXCEPTION();
@@ -25437,7 +25437,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_obj_helper_SP
        property = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
 
        if (IS_UNUSED == IS_VAR && UNEXPECTED(object == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an object");
+               zend_throw_error(NULL, "Cannot use string offset as an object");
                FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
 
                HANDLE_EXCEPTION();
@@ -25492,13 +25492,13 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_dim_helper_SP
        SAVE_OPLINE();
        container = _get_obj_zval_ptr_unused(execute_data);
        if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
 
                HANDLE_EXCEPTION();
        }
        if (IS_UNUSED == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an array");
+               zend_throw_error(NULL, "Cannot use string offset as an array");
                FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
 
                HANDLE_EXCEPTION();
@@ -25524,7 +25524,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_dim_helper_SP
                var_ptr = Z_INDIRECT(rv);
 
                if (UNEXPECTED(var_ptr == NULL)) {
-                       zend_throw_error(zend_ce_error, "Cannot use assign-op operators with overloaded objects nor string offsets");
+                       zend_throw_error(NULL, "Cannot use assign-op operators with overloaded objects nor string offsets");
 
                        FREE_OP(free_op_data1);
 
@@ -25786,7 +25786,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_pre_incdec_property_helper_SPE
        object = _get_obj_zval_ptr_unused(execute_data);
 
        if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
@@ -25794,7 +25794,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_pre_incdec_property_helper_SPE
        property = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
 
        if (IS_UNUSED == IS_VAR && UNEXPECTED(object == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot increment/decrement overloaded objects nor string offsets");
+               zend_throw_error(NULL, "Cannot increment/decrement overloaded objects nor string offsets");
 
                HANDLE_EXCEPTION();
        }
@@ -25867,7 +25867,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_post_incdec_property_helper_SP
        object = _get_obj_zval_ptr_unused(execute_data);
 
        if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
@@ -25875,7 +25875,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_post_incdec_property_helper_SP
        property = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
 
        if (IS_UNUSED == IS_VAR && UNEXPECTED(object == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot increment/decrement overloaded objects nor string offsets");
+               zend_throw_error(NULL, "Cannot increment/decrement overloaded objects nor string offsets");
 
                HANDLE_EXCEPTION();
        }
@@ -25944,7 +25944,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_UNUSED_CV_HAN
        container = _get_obj_zval_ptr_unused(execute_data);
 
        if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
@@ -26017,12 +26017,12 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_W_SPEC_UNUSED_CV_HAN
 
        container = _get_obj_zval_ptr_unused(execute_data);
        if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
        if (IS_UNUSED == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an object");
+               zend_throw_error(NULL, "Cannot use string offset as an object");
 
                HANDLE_EXCEPTION();
        }
@@ -26049,12 +26049,12 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_RW_SPEC_UNUSED_CV_HA
        container = _get_obj_zval_ptr_unused(execute_data);
 
        if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
        if (IS_UNUSED == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an object");
+               zend_throw_error(NULL, "Cannot use string offset as an object");
 
                HANDLE_EXCEPTION();
        }
@@ -26080,7 +26080,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_UNUSED_CV_HA
        container = _get_obj_zval_ptr_unused(execute_data);
 
        if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
@@ -26156,18 +26156,18 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_UNUSED
                container = _get_obj_zval_ptr_unused(execute_data);
 
                if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-                       zend_throw_error(zend_ce_error, "Using $this when not in object context");
+                       zend_throw_error(NULL, "Using $this when not in object context");
 
                        HANDLE_EXCEPTION();
                }
                if (IS_UNUSED == IS_CONST || IS_UNUSED == IS_TMP_VAR) {
-                       zend_throw_error(zend_ce_error, "Cannot use temporary expression in write context");
+                       zend_throw_error(NULL, "Cannot use temporary expression in write context");
 
 
                        HANDLE_EXCEPTION();
                }
                if (IS_UNUSED == IS_VAR && UNEXPECTED(container == NULL)) {
-                       zend_throw_error(zend_ce_error, "Cannot use string offset as an object");
+                       zend_throw_error(NULL, "Cannot use string offset as an object");
 
                        HANDLE_EXCEPTION();
                }
@@ -26194,7 +26194,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_UNSET_SPEC_UNUSED_CV
        container = _get_obj_zval_ptr_unused(execute_data);
 
        if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
@@ -26202,7 +26202,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_UNSET_SPEC_UNUSED_CV
        property = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
 
        if (IS_UNUSED == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an object");
+               zend_throw_error(NULL, "Cannot use string offset as an object");
 
                HANDLE_EXCEPTION();
        }
@@ -26227,7 +26227,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_UNUSED_CV_HAND
        object = _get_obj_zval_ptr_unused(execute_data);
 
        if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
@@ -26235,7 +26235,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_UNUSED_CV_HAND
        property_name = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
 
        if (IS_UNUSED == IS_VAR && UNEXPECTED(object == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an array");
+               zend_throw_error(NULL, "Cannot use string offset as an array");
 
                HANDLE_EXCEPTION();
        }
@@ -26312,7 +26312,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_UNUSED_C
                        if (UNEXPECTED(EG(exception) != NULL)) {
                                HANDLE_EXCEPTION();
                        }
-                       zend_throw_error(zend_ce_error, "Method name must be a string");
+                       zend_throw_error(NULL, "Method name must be a string");
 
 
                        HANDLE_EXCEPTION();
@@ -26322,7 +26322,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_UNUSED_C
        object = _get_obj_zval_ptr_unused(execute_data);
 
        if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
@@ -26342,7 +26342,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_UNUSED_C
                                if (UNEXPECTED(EG(exception) != NULL)) {
                                        HANDLE_EXCEPTION();
                                }
-                               zend_throw_error(zend_ce_error, "Call to a member function %s() on %s", Z_STRVAL_P(function_name), zend_get_type_by_const(Z_TYPE_P(object)));
+                               zend_throw_error(NULL, "Call to a member function %s() on %s", Z_STRVAL_P(function_name), zend_get_type_by_const(Z_TYPE_P(object)));
 
 
                                HANDLE_EXCEPTION();
@@ -26358,7 +26358,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_UNUSED_C
            zend_object *orig_obj = obj;
 
                if (UNEXPECTED(obj->handlers->get_method == NULL)) {
-                       zend_throw_error(zend_ce_error, "Object does not support method calls");
+                       zend_throw_error(NULL, "Object does not support method calls");
 
 
                        HANDLE_EXCEPTION();
@@ -26368,7 +26368,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_UNUSED_C
                fbc = obj->handlers->get_method(&obj, Z_STR_P(function_name), ((IS_CV == IS_CONST) ? (EX_CONSTANT(opline->op2) + 1) : NULL));
                if (UNEXPECTED(fbc == NULL)) {
                        if (EXPECTED(!EG(exception))) {
-                               zend_throw_error(zend_ce_error, "Call to undefined method %s::%s()", ZSTR_VAL(obj->ce->name), Z_STRVAL_P(function_name));
+                               zend_throw_error(NULL, "Call to undefined method %s::%s()", ZSTR_VAL(obj->ce->name), Z_STRVAL_P(function_name));
                        }
 
 
@@ -26444,12 +26444,12 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_DIM_SPEC_UNUSED_CV_HANDL
        SAVE_OPLINE();
        container = _get_obj_zval_ptr_unused(execute_data);
        if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
        if (IS_UNUSED == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot unset string offsets");
+               zend_throw_error(NULL, "Cannot unset string offsets");
 
                HANDLE_EXCEPTION();
        }
@@ -26517,12 +26517,12 @@ num_index_dim:
                }
                if (IS_UNUSED == IS_UNUSED || EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) {
                        if (UNEXPECTED(Z_OBJ_HT_P(container)->unset_dimension == NULL)) {
-                               zend_throw_error(zend_ce_error, "Cannot use object as array");
+                               zend_throw_error(NULL, "Cannot use object as array");
                        } else {
                                Z_OBJ_HT_P(container)->unset_dimension(container, offset);
                        }
                } else if (IS_UNUSED != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_STRING)) {
-                       zend_throw_error(zend_ce_error, "Cannot unset string offsets");
+                       zend_throw_error(NULL, "Cannot unset string offsets");
                }
        } while (0);
 
@@ -26541,12 +26541,12 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_OBJ_SPEC_UNUSED_CV_HANDL
        SAVE_OPLINE();
        container = _get_obj_zval_ptr_unused(execute_data);
        if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
        if (IS_UNUSED == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot unset string offsets");
+               zend_throw_error(NULL, "Cannot unset string offsets");
 
                HANDLE_EXCEPTION();
        }
@@ -26588,7 +26588,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_UNU
        container = _get_obj_zval_ptr_unused(execute_data);
 
        if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
@@ -26725,7 +26725,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_UN
        container = _get_obj_zval_ptr_unused(execute_data);
 
        if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
@@ -26768,7 +26768,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_UNUSED_CV_HANDLER(Z
 
        SAVE_OPLINE();
        if (UNEXPECTED(generator->flags & ZEND_GENERATOR_FORCED_CLOSE)) {
-               zend_throw_error(zend_ce_error, "Cannot yield from finally in a force-closed generator");
+               zend_throw_error(NULL, "Cannot yield from finally in a force-closed generator");
 
 
                HANDLE_EXCEPTION();
@@ -26803,7 +26803,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_UNUSED_CV_HANDLER(Z
                                zval *value_ptr = NULL;
 
                                if (IS_UNUSED == IS_VAR && UNEXPECTED(value_ptr == NULL)) {
-                                       zend_throw_error(zend_ce_error, "Cannot yield string offsets by reference");
+                                       zend_throw_error(NULL, "Cannot yield string offsets by reference");
 
                                        HANDLE_EXCEPTION();
                                }
@@ -26914,7 +26914,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_obj_helper_SP
        object = _get_obj_zval_ptr_unused(execute_data);
 
        if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
                zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
                HANDLE_EXCEPTION();
@@ -26923,7 +26923,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_obj_helper_SP
        property = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
 
        if (IS_UNUSED == IS_VAR && UNEXPECTED(object == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an object");
+               zend_throw_error(NULL, "Cannot use string offset as an object");
                FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
                zval_ptr_dtor_nogc(free_op2);
                HANDLE_EXCEPTION();
@@ -26978,13 +26978,13 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_dim_helper_SP
        SAVE_OPLINE();
        container = _get_obj_zval_ptr_unused(execute_data);
        if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
                zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
                HANDLE_EXCEPTION();
        }
        if (IS_UNUSED == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an array");
+               zend_throw_error(NULL, "Cannot use string offset as an array");
                FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
                zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
                HANDLE_EXCEPTION();
@@ -27010,7 +27010,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_dim_helper_SP
                var_ptr = Z_INDIRECT(rv);
 
                if (UNEXPECTED(var_ptr == NULL)) {
-                       zend_throw_error(zend_ce_error, "Cannot use assign-op operators with overloaded objects nor string offsets");
+                       zend_throw_error(NULL, "Cannot use assign-op operators with overloaded objects nor string offsets");
                        zval_ptr_dtor_nogc(free_op2);
                        FREE_OP(free_op_data1);
 
@@ -27273,7 +27273,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_pre_incdec_property_helper_SPE
        object = _get_obj_zval_ptr_unused(execute_data);
 
        if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
                HANDLE_EXCEPTION();
        }
@@ -27281,7 +27281,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_pre_incdec_property_helper_SPE
        property = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
 
        if (IS_UNUSED == IS_VAR && UNEXPECTED(object == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot increment/decrement overloaded objects nor string offsets");
+               zend_throw_error(NULL, "Cannot increment/decrement overloaded objects nor string offsets");
                zval_ptr_dtor_nogc(free_op2);
                HANDLE_EXCEPTION();
        }
@@ -27355,7 +27355,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_post_incdec_property_helper_SP
        object = _get_obj_zval_ptr_unused(execute_data);
 
        if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
                HANDLE_EXCEPTION();
        }
@@ -27363,7 +27363,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_post_incdec_property_helper_SP
        property = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
 
        if (IS_UNUSED == IS_VAR && UNEXPECTED(object == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot increment/decrement overloaded objects nor string offsets");
+               zend_throw_error(NULL, "Cannot increment/decrement overloaded objects nor string offsets");
                zval_ptr_dtor_nogc(free_op2);
                HANDLE_EXCEPTION();
        }
@@ -27433,7 +27433,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_UNUSED_TMPVAR
        container = _get_obj_zval_ptr_unused(execute_data);
 
        if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
                HANDLE_EXCEPTION();
        }
@@ -27507,12 +27507,12 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_W_SPEC_UNUSED_TMPVAR
 
        container = _get_obj_zval_ptr_unused(execute_data);
        if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                zval_ptr_dtor_nogc(free_op2);
                HANDLE_EXCEPTION();
        }
        if (IS_UNUSED == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an object");
+               zend_throw_error(NULL, "Cannot use string offset as an object");
                zval_ptr_dtor_nogc(free_op2);
                HANDLE_EXCEPTION();
        }
@@ -27539,12 +27539,12 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_RW_SPEC_UNUSED_TMPVA
        container = _get_obj_zval_ptr_unused(execute_data);
 
        if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                zval_ptr_dtor_nogc(free_op2);
                HANDLE_EXCEPTION();
        }
        if (IS_UNUSED == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an object");
+               zend_throw_error(NULL, "Cannot use string offset as an object");
                zval_ptr_dtor_nogc(free_op2);
                HANDLE_EXCEPTION();
        }
@@ -27570,7 +27570,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_UNUSED_TMPVA
        container = _get_obj_zval_ptr_unused(execute_data);
 
        if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
                HANDLE_EXCEPTION();
        }
@@ -27647,18 +27647,18 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_UNUSED
                container = _get_obj_zval_ptr_unused(execute_data);
 
                if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-                       zend_throw_error(zend_ce_error, "Using $this when not in object context");
+                       zend_throw_error(NULL, "Using $this when not in object context");
                        zval_ptr_dtor_nogc(free_op2);
                        HANDLE_EXCEPTION();
                }
                if (IS_UNUSED == IS_CONST || IS_UNUSED == IS_TMP_VAR) {
-                       zend_throw_error(zend_ce_error, "Cannot use temporary expression in write context");
+                       zend_throw_error(NULL, "Cannot use temporary expression in write context");
                        zval_ptr_dtor_nogc(free_op2);
 
                        HANDLE_EXCEPTION();
                }
                if (IS_UNUSED == IS_VAR && UNEXPECTED(container == NULL)) {
-                       zend_throw_error(zend_ce_error, "Cannot use string offset as an object");
+                       zend_throw_error(NULL, "Cannot use string offset as an object");
                        zval_ptr_dtor_nogc(free_op2);
                        HANDLE_EXCEPTION();
                }
@@ -27685,7 +27685,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_UNSET_SPEC_UNUSED_TM
        container = _get_obj_zval_ptr_unused(execute_data);
 
        if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
                HANDLE_EXCEPTION();
        }
@@ -27693,7 +27693,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_UNSET_SPEC_UNUSED_TM
        property = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
 
        if (IS_UNUSED == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an object");
+               zend_throw_error(NULL, "Cannot use string offset as an object");
                zval_ptr_dtor_nogc(free_op2);
                HANDLE_EXCEPTION();
        }
@@ -27718,7 +27718,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_UNUSED_TMPVAR_
        object = _get_obj_zval_ptr_unused(execute_data);
 
        if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
                HANDLE_EXCEPTION();
        }
@@ -27726,7 +27726,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_UNUSED_TMPVAR_
        property_name = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
 
        if (IS_UNUSED == IS_VAR && UNEXPECTED(object == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an array");
+               zend_throw_error(NULL, "Cannot use string offset as an array");
                zval_ptr_dtor_nogc(free_op2);
                HANDLE_EXCEPTION();
        }
@@ -27803,7 +27803,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_UNUSED_T
                        if (UNEXPECTED(EG(exception) != NULL)) {
                                HANDLE_EXCEPTION();
                        }
-                       zend_throw_error(zend_ce_error, "Method name must be a string");
+                       zend_throw_error(NULL, "Method name must be a string");
                        zval_ptr_dtor_nogc(free_op2);
 
                        HANDLE_EXCEPTION();
@@ -27813,7 +27813,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_UNUSED_T
        object = _get_obj_zval_ptr_unused(execute_data);
 
        if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                zval_ptr_dtor_nogc(free_op2);
                HANDLE_EXCEPTION();
        }
@@ -27833,7 +27833,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_UNUSED_T
                                if (UNEXPECTED(EG(exception) != NULL)) {
                                        HANDLE_EXCEPTION();
                                }
-                               zend_throw_error(zend_ce_error, "Call to a member function %s() on %s", Z_STRVAL_P(function_name), zend_get_type_by_const(Z_TYPE_P(object)));
+                               zend_throw_error(NULL, "Call to a member function %s() on %s", Z_STRVAL_P(function_name), zend_get_type_by_const(Z_TYPE_P(object)));
                                zval_ptr_dtor_nogc(free_op2);
 
                                HANDLE_EXCEPTION();
@@ -27849,7 +27849,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_UNUSED_T
            zend_object *orig_obj = obj;
 
                if (UNEXPECTED(obj->handlers->get_method == NULL)) {
-                       zend_throw_error(zend_ce_error, "Object does not support method calls");
+                       zend_throw_error(NULL, "Object does not support method calls");
                        zval_ptr_dtor_nogc(free_op2);
 
                        HANDLE_EXCEPTION();
@@ -27859,7 +27859,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_UNUSED_T
                fbc = obj->handlers->get_method(&obj, Z_STR_P(function_name), (((IS_TMP_VAR|IS_VAR) == IS_CONST) ? (EX_CONSTANT(opline->op2) + 1) : NULL));
                if (UNEXPECTED(fbc == NULL)) {
                        if (EXPECTED(!EG(exception))) {
-                               zend_throw_error(zend_ce_error, "Call to undefined method %s::%s()", ZSTR_VAL(obj->ce->name), Z_STRVAL_P(function_name));
+                               zend_throw_error(NULL, "Call to undefined method %s::%s()", ZSTR_VAL(obj->ce->name), Z_STRVAL_P(function_name));
                        }
                        zval_ptr_dtor_nogc(free_op2);
 
@@ -27936,12 +27936,12 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_DIM_SPEC_UNUSED_TMPVAR_H
        SAVE_OPLINE();
        container = _get_obj_zval_ptr_unused(execute_data);
        if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
                HANDLE_EXCEPTION();
        }
        if (IS_UNUSED == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot unset string offsets");
+               zend_throw_error(NULL, "Cannot unset string offsets");
                zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
                HANDLE_EXCEPTION();
        }
@@ -28009,12 +28009,12 @@ num_index_dim:
                }
                if (IS_UNUSED == IS_UNUSED || EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) {
                        if (UNEXPECTED(Z_OBJ_HT_P(container)->unset_dimension == NULL)) {
-                               zend_throw_error(zend_ce_error, "Cannot use object as array");
+                               zend_throw_error(NULL, "Cannot use object as array");
                        } else {
                                Z_OBJ_HT_P(container)->unset_dimension(container, offset);
                        }
                } else if (IS_UNUSED != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_STRING)) {
-                       zend_throw_error(zend_ce_error, "Cannot unset string offsets");
+                       zend_throw_error(NULL, "Cannot unset string offsets");
                }
        } while (0);
 
@@ -28034,12 +28034,12 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_OBJ_SPEC_UNUSED_TMPVAR_H
        SAVE_OPLINE();
        container = _get_obj_zval_ptr_unused(execute_data);
        if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
                HANDLE_EXCEPTION();
        }
        if (IS_UNUSED == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot unset string offsets");
+               zend_throw_error(NULL, "Cannot unset string offsets");
                zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
                HANDLE_EXCEPTION();
        }
@@ -28082,7 +28082,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_UNU
        container = _get_obj_zval_ptr_unused(execute_data);
 
        if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
                HANDLE_EXCEPTION();
        }
@@ -28219,7 +28219,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_UN
        container = _get_obj_zval_ptr_unused(execute_data);
 
        if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
                HANDLE_EXCEPTION();
        }
@@ -28303,7 +28303,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_PRE_INC_SPEC_CV_HANDLER(ZEND_O
 
        if (IS_CV == IS_VAR && UNEXPECTED(var_ptr == NULL)) {
                SAVE_OPLINE();
-               zend_throw_error(zend_ce_error, "Cannot increment/decrement overloaded objects nor string offsets");
+               zend_throw_error(NULL, "Cannot increment/decrement overloaded objects nor string offsets");
                HANDLE_EXCEPTION();
        }
 
@@ -28349,7 +28349,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_PRE_DEC_SPEC_CV_HANDLER(ZEND_O
 
        if (IS_CV == IS_VAR && UNEXPECTED(var_ptr == NULL)) {
                SAVE_OPLINE();
-               zend_throw_error(zend_ce_error, "Cannot increment/decrement overloaded objects nor string offsets");
+               zend_throw_error(NULL, "Cannot increment/decrement overloaded objects nor string offsets");
                HANDLE_EXCEPTION();
        }
 
@@ -28395,7 +28395,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_POST_INC_SPEC_CV_HANDLER(ZEND_
 
        if (IS_CV == IS_VAR && UNEXPECTED(var_ptr == NULL)) {
                SAVE_OPLINE();
-               zend_throw_error(zend_ce_error, "Cannot increment/decrement overloaded objects nor string offsets");
+               zend_throw_error(NULL, "Cannot increment/decrement overloaded objects nor string offsets");
                HANDLE_EXCEPTION();
        }
 
@@ -28434,7 +28434,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_POST_DEC_SPEC_CV_HANDLER(ZEND_
 
        if (IS_CV == IS_VAR && UNEXPECTED(var_ptr == NULL)) {
                SAVE_OPLINE();
-               zend_throw_error(zend_ce_error, "Cannot increment/decrement overloaded objects nor string offsets");
+               zend_throw_error(NULL, "Cannot increment/decrement overloaded objects nor string offsets");
                HANDLE_EXCEPTION();
        }
 
@@ -28774,7 +28774,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_RETURN_BY_REF_SPEC_CV_HANDLER(
                retval_ptr = _get_zval_ptr_cv_BP_VAR_W(execute_data, opline->op1.var);
 
                if (IS_CV == IS_VAR && UNEXPECTED(retval_ptr == NULL)) {
-                       zend_throw_error(zend_ce_error, "Cannot return string offsets by reference");
+                       zend_throw_error(NULL, "Cannot return string offsets by reference");
                        HANDLE_EXCEPTION();
                }
 
@@ -28871,7 +28871,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_THROW_SPEC_CV_HANDLER(ZEND_OPC
                        if (UNEXPECTED(EG(exception) != NULL)) {
                                HANDLE_EXCEPTION();
                        }
-                       zend_throw_error(zend_ce_error, "Can only throw objects");
+                       zend_throw_error(NULL, "Can only throw objects");
 
                        HANDLE_EXCEPTION();
                }
@@ -28976,7 +28976,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEND_REF_SPEC_CV_HANDLER(ZEND_
        varptr = _get_zval_ptr_cv_BP_VAR_W(execute_data, opline->op1.var);
 
        if (IS_CV == IS_VAR && UNEXPECTED(varptr == NULL)) {
-               zend_throw_error(zend_ce_error, "Only variables can be passed by reference");
+               zend_throw_error(NULL, "Only variables can be passed by reference");
                HANDLE_EXCEPTION();
        }
 
@@ -29139,7 +29139,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CLONE_SPEC_CV_HANDLER(ZEND_OPC
        obj = _get_zval_ptr_cv_undef(execute_data, opline->op1.var);
 
        if (IS_CV == IS_UNUSED && UNEXPECTED(Z_OBJ_P(obj) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                HANDLE_EXCEPTION();
        }
 
@@ -29158,7 +29158,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CLONE_SPEC_CV_HANDLER(ZEND_OPC
                        if (UNEXPECTED(EG(exception) != NULL)) {
                                HANDLE_EXCEPTION();
                        }
-                       zend_throw_error(zend_ce_error, "__clone method called on non-object");
+                       zend_throw_error(NULL, "__clone method called on non-object");
 
                        HANDLE_EXCEPTION();
                }
@@ -29169,9 +29169,9 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CLONE_SPEC_CV_HANDLER(ZEND_OPC
        clone_call =  Z_OBJ_HT_P(obj)->clone_obj;
        if (UNEXPECTED(clone_call == NULL)) {
                if (ce) {
-                       zend_throw_error(zend_ce_error, "Trying to clone an uncloneable object of class %s", ZSTR_VAL(ce->name));
+                       zend_throw_error(NULL, "Trying to clone an uncloneable object of class %s", ZSTR_VAL(ce->name));
                } else {
-                       zend_throw_error(zend_ce_error, "Trying to clone an uncloneable object");
+                       zend_throw_error(NULL, "Trying to clone an uncloneable object");
                }
 
                HANDLE_EXCEPTION();
@@ -29182,7 +29182,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CLONE_SPEC_CV_HANDLER(ZEND_OPC
                        /* Ensure that if we're calling a private function, we're allowed to do so.
                         */
                        if (UNEXPECTED(ce != EG(scope))) {
-                               zend_throw_error(zend_ce_error, "Call to private %s::__clone() from context '%s'", ZSTR_VAL(ce->name), EG(scope) ? ZSTR_VAL(EG(scope)->name) : "");
+                               zend_throw_error(NULL, "Call to private %s::__clone() from context '%s'", ZSTR_VAL(ce->name), EG(scope) ? ZSTR_VAL(EG(scope)->name) : "");
 
                                HANDLE_EXCEPTION();
                        }
@@ -29190,7 +29190,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CLONE_SPEC_CV_HANDLER(ZEND_OPC
                        /* Ensure that if we're calling a protected function, we're allowed to do so.
                         */
                        if (UNEXPECTED(!zend_check_protected(zend_get_function_root_class(clone), EG(scope)))) {
-                               zend_throw_error(zend_ce_error, "Call to protected %s::__clone() from context '%s'", ZSTR_VAL(ce->name), EG(scope) ? ZSTR_VAL(EG(scope)->name) : "");
+                               zend_throw_error(NULL, "Call to protected %s::__clone() from context '%s'", ZSTR_VAL(ce->name), EG(scope) ? ZSTR_VAL(EG(scope)->name) : "");
 
                                HANDLE_EXCEPTION();
                        }
@@ -29878,13 +29878,13 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_FROM_SPEC_CV_HANDLER(ZEN
 
                        if (Z_ISUNDEF(new_gen->retval)) {
                                if (UNEXPECTED(zend_generator_get_current(new_gen) == generator)) {
-                                       zend_throw_error(zend_ce_error, "Impossible to yield from the Generator being currently run");
+                                       zend_throw_error(NULL, "Impossible to yield from the Generator being currently run");
                                        HANDLE_EXCEPTION();
                                } else {
                                        zend_generator_yield_from(generator, new_gen);
                                }
                        } else if (UNEXPECTED(new_gen->execute_data == NULL)) {
-                               zend_throw_error(zend_ce_error, "Generator passed to yield from was aborted without proper return and is unable to continue");
+                               zend_throw_error(NULL, "Generator passed to yield from was aborted without proper return and is unable to continue");
                                HANDLE_EXCEPTION();
                        } else {
                                if (RETURN_VALUE_USED(opline)) {
@@ -29897,7 +29897,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_FROM_SPEC_CV_HANDLER(ZEN
 
                        if (UNEXPECTED(!iter) || UNEXPECTED(EG(exception))) {
                                if (!EG(exception)) {
-                                       zend_throw_error(zend_ce_error, "Object of type %s did not create an Iterator", ZSTR_VAL(ce->name));
+                                       zend_throw_error(NULL, "Object of type %s did not create an Iterator", ZSTR_VAL(ce->name));
                                }
                                HANDLE_EXCEPTION();
                        }
@@ -29914,7 +29914,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_FROM_SPEC_CV_HANDLER(ZEN
                        ZVAL_OBJ(&generator->values, &iter->std);
                }
        } else {
-               zend_throw_error(zend_ce_error, "Can use \"yield from\" only with arrays and Traversables", 0);
+               zend_throw_error(NULL, "Can use \"yield from\" only with arrays and Traversables", 0);
                HANDLE_EXCEPTION();
        }
 
@@ -30674,7 +30674,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_obj_helper_SP
        object = _get_zval_ptr_cv_BP_VAR_RW(execute_data, opline->op1.var);
 
        if (IS_CV == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
 
                HANDLE_EXCEPTION();
@@ -30683,7 +30683,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_obj_helper_SP
        property = EX_CONSTANT(opline->op2);
 
        if (IS_CV == IS_VAR && UNEXPECTED(object == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an object");
+               zend_throw_error(NULL, "Cannot use string offset as an object");
                FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
 
                HANDLE_EXCEPTION();
@@ -30738,13 +30738,13 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_dim_helper_SP
        SAVE_OPLINE();
        container = _get_zval_ptr_cv_BP_VAR_RW(execute_data, opline->op1.var);
        if (IS_CV == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
 
                HANDLE_EXCEPTION();
        }
        if (IS_CV == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an array");
+               zend_throw_error(NULL, "Cannot use string offset as an array");
                FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
 
                HANDLE_EXCEPTION();
@@ -30770,7 +30770,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_dim_helper_SP
                var_ptr = Z_INDIRECT(rv);
 
                if (UNEXPECTED(var_ptr == NULL)) {
-                       zend_throw_error(zend_ce_error, "Cannot use assign-op operators with overloaded objects nor string offsets");
+                       zend_throw_error(NULL, "Cannot use assign-op operators with overloaded objects nor string offsets");
 
                        FREE_OP(free_op_data1);
 
@@ -30812,7 +30812,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_C
        var_ptr = _get_zval_ptr_cv_BP_VAR_RW(execute_data, opline->op1.var);
 
        if (IS_CV == IS_VAR && UNEXPECTED(var_ptr == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use assign-op operators with overloaded objects nor string offsets");
+               zend_throw_error(NULL, "Cannot use assign-op operators with overloaded objects nor string offsets");
 
                HANDLE_EXCEPTION();
        }
@@ -31069,7 +31069,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_pre_incdec_property_helper_SPE
        object = _get_zval_ptr_cv_BP_VAR_RW(execute_data, opline->op1.var);
 
        if (IS_CV == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
@@ -31077,7 +31077,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_pre_incdec_property_helper_SPE
        property = EX_CONSTANT(opline->op2);
 
        if (IS_CV == IS_VAR && UNEXPECTED(object == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot increment/decrement overloaded objects nor string offsets");
+               zend_throw_error(NULL, "Cannot increment/decrement overloaded objects nor string offsets");
 
                HANDLE_EXCEPTION();
        }
@@ -31150,7 +31150,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_post_incdec_property_helper_SP
        object = _get_zval_ptr_cv_BP_VAR_RW(execute_data, opline->op1.var);
 
        if (IS_CV == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
@@ -31158,7 +31158,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_post_incdec_property_helper_SP
        property = EX_CONSTANT(opline->op2);
 
        if (IS_CV == IS_VAR && UNEXPECTED(object == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot increment/decrement overloaded objects nor string offsets");
+               zend_throw_error(NULL, "Cannot increment/decrement overloaded objects nor string offsets");
 
                HANDLE_EXCEPTION();
        }
@@ -31250,7 +31250,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_
 
                                /* check if static properties were destoyed */
                                if (UNEXPECTED(CE_STATIC_MEMBERS(ce) == NULL)) {
-                                       zend_throw_error(zend_ce_error, "Access to undeclared static property: %s::$%s", ZSTR_VAL(ce->name), ZSTR_VAL(name));
+                                       zend_throw_error(NULL, "Access to undeclared static property: %s::$%s", ZSTR_VAL(ce->name), ZSTR_VAL(name));
 
                                        HANDLE_EXCEPTION();
                                }
@@ -31277,7 +31277,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_
 
                                /* check if static properties were destoyed */
                                if (UNEXPECTED(CE_STATIC_MEMBERS(ce) == NULL)) {
-                                       zend_throw_error(zend_ce_error, "Access to undeclared static property: %s::$%s", ZSTR_VAL(ce->name), ZSTR_VAL(name));
+                                       zend_throw_error(NULL, "Access to undeclared static property: %s::$%s", ZSTR_VAL(ce->name), ZSTR_VAL(name));
 
                                        HANDLE_EXCEPTION();
                                }
@@ -31427,7 +31427,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_W_SPEC_CV_CONST_HAND
        container = _get_zval_ptr_cv_undef_BP_VAR_W(execute_data, opline->op1.var);
 
        if (IS_CV == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an array");
+               zend_throw_error(NULL, "Cannot use string offset as an array");
                HANDLE_EXCEPTION();
        }
        zend_fetch_dimension_address_W(EX_VAR(opline->result.var), container, EX_CONSTANT(opline->op2), IS_CONST);
@@ -31450,7 +31450,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_RW_SPEC_CV_CONST_HAN
        container = _get_zval_ptr_cv_BP_VAR_RW(execute_data, opline->op1.var);
 
        if (IS_CV == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an array");
+               zend_throw_error(NULL, "Cannot use string offset as an array");
                HANDLE_EXCEPTION();
        }
        zend_fetch_dimension_address_RW(EX_VAR(opline->result.var), container, EX_CONSTANT(opline->op2), IS_CONST);
@@ -31488,14 +31488,14 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_CV_CON
 
        if (zend_is_by_ref_func_arg_fetch(opline, EX(call))) {
         if (IS_CV == IS_CONST || IS_CV == IS_TMP_VAR) {
-            zend_throw_error(zend_ce_error, "Cannot use temporary expression in write context");
+            zend_throw_error(NULL, "Cannot use temporary expression in write context");
 
 
                        HANDLE_EXCEPTION();
         }
                container = _get_zval_ptr_cv_undef_BP_VAR_W(execute_data, opline->op1.var);
                if (IS_CV == IS_VAR && UNEXPECTED(container == NULL)) {
-                       zend_throw_error(zend_ce_error, "Cannot use string offset as an array");
+                       zend_throw_error(NULL, "Cannot use string offset as an array");
 
                        HANDLE_EXCEPTION();
                }
@@ -31507,7 +31507,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_CV_CON
 
        } else {
                if (IS_CONST == IS_UNUSED) {
-                       zend_throw_error(zend_ce_error, "Cannot use [] for reading");
+                       zend_throw_error(NULL, "Cannot use [] for reading");
 
 
                        HANDLE_EXCEPTION();
@@ -31531,7 +31531,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_UNSET_SPEC_CV_CONST_
        container = _get_zval_ptr_cv_BP_VAR_UNSET(execute_data, opline->op1.var);
 
        if (IS_CV == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an array");
+               zend_throw_error(NULL, "Cannot use string offset as an array");
 
                HANDLE_EXCEPTION();
        }
@@ -31557,7 +31557,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_CV_CONST_HAND
        container = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var);
 
        if (IS_CV == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
@@ -31630,12 +31630,12 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_W_SPEC_CV_CONST_HAND
 
        container = _get_zval_ptr_cv_undef_BP_VAR_W(execute_data, opline->op1.var);
        if (IS_CV == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
        if (IS_CV == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an object");
+               zend_throw_error(NULL, "Cannot use string offset as an object");
 
                HANDLE_EXCEPTION();
        }
@@ -31662,12 +31662,12 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_RW_SPEC_CV_CONST_HAN
        container = _get_zval_ptr_cv_BP_VAR_RW(execute_data, opline->op1.var);
 
        if (IS_CV == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
        if (IS_CV == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an object");
+               zend_throw_error(NULL, "Cannot use string offset as an object");
 
                HANDLE_EXCEPTION();
        }
@@ -31693,7 +31693,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_CV_CONST_HAN
        container = _get_zval_ptr_cv_BP_VAR_IS(execute_data, opline->op1.var);
 
        if (IS_CV == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
@@ -31769,18 +31769,18 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CV_CON
                container = _get_zval_ptr_cv_undef_BP_VAR_W(execute_data, opline->op1.var);
 
                if (IS_CV == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-                       zend_throw_error(zend_ce_error, "Using $this when not in object context");
+                       zend_throw_error(NULL, "Using $this when not in object context");
 
                        HANDLE_EXCEPTION();
                }
                if (IS_CV == IS_CONST || IS_CV == IS_TMP_VAR) {
-                       zend_throw_error(zend_ce_error, "Cannot use temporary expression in write context");
+                       zend_throw_error(NULL, "Cannot use temporary expression in write context");
 
 
                        HANDLE_EXCEPTION();
                }
                if (IS_CV == IS_VAR && UNEXPECTED(container == NULL)) {
-                       zend_throw_error(zend_ce_error, "Cannot use string offset as an object");
+                       zend_throw_error(NULL, "Cannot use string offset as an object");
 
                        HANDLE_EXCEPTION();
                }
@@ -31807,7 +31807,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_UNSET_SPEC_CV_CONST_
        container = _get_zval_ptr_cv_BP_VAR_UNSET(execute_data, opline->op1.var);
 
        if (IS_CV == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
@@ -31815,7 +31815,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_UNSET_SPEC_CV_CONST_
        property = EX_CONSTANT(opline->op2);
 
        if (IS_CV == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an object");
+               zend_throw_error(NULL, "Cannot use string offset as an object");
 
                HANDLE_EXCEPTION();
        }
@@ -31885,7 +31885,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_CV_CONST_HANDL
        object = _get_zval_ptr_cv_undef_BP_VAR_W(execute_data, opline->op1.var);
 
        if (IS_CV == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
@@ -31893,7 +31893,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_CV_CONST_HANDL
        property_name = EX_CONSTANT(opline->op2);
 
        if (IS_CV == IS_VAR && UNEXPECTED(object == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an array");
+               zend_throw_error(NULL, "Cannot use string offset as an array");
 
                HANDLE_EXCEPTION();
        }
@@ -31920,7 +31920,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_CV_CONST_HANDL
        object_ptr = _get_zval_ptr_cv_undef_BP_VAR_W(execute_data, opline->op1.var);
 
        if (IS_CV == IS_VAR && UNEXPECTED(object_ptr == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an array");
+               zend_throw_error(NULL, "Cannot use string offset as an array");
                FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
 
                HANDLE_EXCEPTION();
@@ -31969,7 +31969,7 @@ try_assign_dim_array:
                } else if (EXPECTED(Z_TYPE_P(object_ptr) == IS_STRING)) {
                        if (EXPECTED(Z_STRLEN_P(object_ptr) != 0)) {
                                if (IS_CONST == IS_UNUSED) {
-                                       zend_throw_error(zend_ce_error, "[] operator not supported for strings");
+                                       zend_throw_error(NULL, "[] operator not supported for strings");
                                        FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
 
                                        HANDLE_EXCEPTION();
@@ -32142,7 +32142,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_CV_CONST
                        if (UNEXPECTED(EG(exception) != NULL)) {
                                HANDLE_EXCEPTION();
                        }
-                       zend_throw_error(zend_ce_error, "Method name must be a string");
+                       zend_throw_error(NULL, "Method name must be a string");
 
 
                        HANDLE_EXCEPTION();
@@ -32152,7 +32152,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_CV_CONST
        object = _get_zval_ptr_cv_undef(execute_data, opline->op1.var);
 
        if (IS_CV == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
@@ -32172,7 +32172,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_CV_CONST
                                if (UNEXPECTED(EG(exception) != NULL)) {
                                        HANDLE_EXCEPTION();
                                }
-                               zend_throw_error(zend_ce_error, "Call to a member function %s() on %s", Z_STRVAL_P(function_name), zend_get_type_by_const(Z_TYPE_P(object)));
+                               zend_throw_error(NULL, "Call to a member function %s() on %s", Z_STRVAL_P(function_name), zend_get_type_by_const(Z_TYPE_P(object)));
 
 
                                HANDLE_EXCEPTION();
@@ -32188,7 +32188,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_CV_CONST
            zend_object *orig_obj = obj;
 
                if (UNEXPECTED(obj->handlers->get_method == NULL)) {
-                       zend_throw_error(zend_ce_error, "Object does not support method calls");
+                       zend_throw_error(NULL, "Object does not support method calls");
 
 
                        HANDLE_EXCEPTION();
@@ -32198,7 +32198,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_CV_CONST
                fbc = obj->handlers->get_method(&obj, Z_STR_P(function_name), ((IS_CONST == IS_CONST) ? (EX_CONSTANT(opline->op2) + 1) : NULL));
                if (UNEXPECTED(fbc == NULL)) {
                        if (EXPECTED(!EG(exception))) {
-                               zend_throw_error(zend_ce_error, "Call to undefined method %s::%s()", ZSTR_VAL(obj->ce->name), Z_STRVAL_P(function_name));
+                               zend_throw_error(NULL, "Call to undefined method %s::%s()", ZSTR_VAL(obj->ce->name), Z_STRVAL_P(function_name));
                        }
 
 
@@ -32309,7 +32309,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_CV_CONS
            UNEXPECTED(opline->extended_value & ZEND_ARRAY_ELEMENT_REF)) {
                expr_ptr = _get_zval_ptr_cv_BP_VAR_W(execute_data, opline->op1.var);
                if (IS_CV == IS_VAR && UNEXPECTED(expr_ptr == NULL)) {
-                       zend_throw_error(zend_ce_error, "Cannot create references to/from string offsets");
+                       zend_throw_error(NULL, "Cannot create references to/from string offsets");
                        zend_array_destroy(Z_ARRVAL_P(EX_VAR(opline->result.var)));
                        HANDLE_EXCEPTION();
                }
@@ -32486,7 +32486,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_VAR_SPEC_CV_CONST_HANDLE
                                        HANDLE_EXCEPTION();
                                }
                                if (UNEXPECTED(ce == NULL)) {
-                                       zend_throw_error(zend_ce_error, "Class '%s' not found", Z_STRVAL_P(EX_CONSTANT(opline->op2)));
+                                       zend_throw_error(NULL, "Class '%s' not found", Z_STRVAL_P(EX_CONSTANT(opline->op2)));
                                        if (IS_CV != IS_CONST) {
                                                zend_string_release(Z_STR(tmp));
                                        }
@@ -32523,12 +32523,12 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_DIM_SPEC_CV_CONST_HANDLE
        SAVE_OPLINE();
        container = _get_zval_ptr_cv_BP_VAR_UNSET(execute_data, opline->op1.var);
        if (IS_CV == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
        if (IS_CV == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot unset string offsets");
+               zend_throw_error(NULL, "Cannot unset string offsets");
 
                HANDLE_EXCEPTION();
        }
@@ -32596,12 +32596,12 @@ num_index_dim:
                }
                if (IS_CV == IS_UNUSED || EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) {
                        if (UNEXPECTED(Z_OBJ_HT_P(container)->unset_dimension == NULL)) {
-                               zend_throw_error(zend_ce_error, "Cannot use object as array");
+                               zend_throw_error(NULL, "Cannot use object as array");
                        } else {
                                Z_OBJ_HT_P(container)->unset_dimension(container, offset);
                        }
                } else if (IS_CV != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_STRING)) {
-                       zend_throw_error(zend_ce_error, "Cannot unset string offsets");
+                       zend_throw_error(NULL, "Cannot unset string offsets");
                }
        } while (0);
 
@@ -32620,12 +32620,12 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_OBJ_SPEC_CV_CONST_HANDLE
        SAVE_OPLINE();
        container = _get_zval_ptr_cv_BP_VAR_UNSET(execute_data, opline->op1.var);
        if (IS_CV == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
        if (IS_CV == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot unset string offsets");
+               zend_throw_error(NULL, "Cannot unset string offsets");
 
                HANDLE_EXCEPTION();
        }
@@ -32772,7 +32772,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_CV_
        container = _get_zval_ptr_cv_BP_VAR_IS(execute_data, opline->op1.var);
 
        if (IS_CV == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
@@ -32909,7 +32909,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_CV
        container = _get_zval_ptr_cv_BP_VAR_IS(execute_data, opline->op1.var);
 
        if (IS_CV == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
@@ -32999,7 +32999,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_CV_CONST_HANDLER(ZE
 
        SAVE_OPLINE();
        if (UNEXPECTED(generator->flags & ZEND_GENERATOR_FORCED_CLOSE)) {
-               zend_throw_error(zend_ce_error, "Cannot yield from finally in a force-closed generator");
+               zend_throw_error(NULL, "Cannot yield from finally in a force-closed generator");
 
 
                HANDLE_EXCEPTION();
@@ -33034,7 +33034,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_CV_CONST_HANDLER(ZE
                                zval *value_ptr = _get_zval_ptr_cv_BP_VAR_W(execute_data, opline->op1.var);
 
                                if (IS_CV == IS_VAR && UNEXPECTED(value_ptr == NULL)) {
-                                       zend_throw_error(zend_ce_error, "Cannot yield string offsets by reference");
+                                       zend_throw_error(NULL, "Cannot yield string offsets by reference");
 
                                        HANDLE_EXCEPTION();
                                }
@@ -33313,7 +33313,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_CV_TMP_HANDLER(ZEND
 
        SAVE_OPLINE();
        if (UNEXPECTED(generator->flags & ZEND_GENERATOR_FORCED_CLOSE)) {
-               zend_throw_error(zend_ce_error, "Cannot yield from finally in a force-closed generator");
+               zend_throw_error(NULL, "Cannot yield from finally in a force-closed generator");
                zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
 
                HANDLE_EXCEPTION();
@@ -33348,7 +33348,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_CV_TMP_HANDLER(ZEND
                                zval *value_ptr = _get_zval_ptr_cv_BP_VAR_W(execute_data, opline->op1.var);
 
                                if (IS_CV == IS_VAR && UNEXPECTED(value_ptr == NULL)) {
-                                       zend_throw_error(zend_ce_error, "Cannot yield string offsets by reference");
+                                       zend_throw_error(NULL, "Cannot yield string offsets by reference");
                                        zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
                                        HANDLE_EXCEPTION();
                                }
@@ -33523,7 +33523,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_
 
                                /* check if static properties were destoyed */
                                if (UNEXPECTED(CE_STATIC_MEMBERS(ce) == NULL)) {
-                                       zend_throw_error(zend_ce_error, "Access to undeclared static property: %s::$%s", ZSTR_VAL(ce->name), ZSTR_VAL(name));
+                                       zend_throw_error(NULL, "Access to undeclared static property: %s::$%s", ZSTR_VAL(ce->name), ZSTR_VAL(name));
 
                                        HANDLE_EXCEPTION();
                                }
@@ -33550,7 +33550,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_
 
                                /* check if static properties were destoyed */
                                if (UNEXPECTED(CE_STATIC_MEMBERS(ce) == NULL)) {
-                                       zend_throw_error(zend_ce_error, "Access to undeclared static property: %s::$%s", ZSTR_VAL(ce->name), ZSTR_VAL(name));
+                                       zend_throw_error(NULL, "Access to undeclared static property: %s::$%s", ZSTR_VAL(ce->name), ZSTR_VAL(name));
 
                                        HANDLE_EXCEPTION();
                                }
@@ -33715,7 +33715,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_REF_SPEC_CV_VAR_HANDLER
        value_ptr = _get_zval_ptr_ptr_var(opline->op2.var, execute_data, &free_op2);
 
        if (IS_VAR == IS_VAR && UNEXPECTED(value_ptr == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot create references to/from string offsets nor overloaded objects");
+               zend_throw_error(NULL, "Cannot create references to/from string offsets nor overloaded objects");
 
                HANDLE_EXCEPTION();
        }
@@ -33736,14 +33736,14 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_REF_SPEC_CV_VAR_HANDLER
 
        variable_ptr = _get_zval_ptr_cv_undef_BP_VAR_W(execute_data, opline->op1.var);
        if (IS_CV == IS_VAR && UNEXPECTED(variable_ptr == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot create references to/from string offsets nor overloaded objects");
+               zend_throw_error(NULL, "Cannot create references to/from string offsets nor overloaded objects");
                if (free_op2) {zval_ptr_dtor_nogc(free_op2);};
                HANDLE_EXCEPTION();
        }
        if (IS_CV == IS_VAR &&
            UNEXPECTED(Z_TYPE_P(EX_VAR(opline->op1.var)) != IS_INDIRECT) &&
            UNEXPECTED(!Z_ISREF_P(variable_ptr))) {
-               zend_throw_error(zend_ce_error, "Cannot assign by reference to overloaded object");
+               zend_throw_error(NULL, "Cannot assign by reference to overloaded object");
                if (free_op2) {zval_ptr_dtor_nogc(free_op2);};
 
                HANDLE_EXCEPTION();
@@ -33822,7 +33822,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_VAR_SPEC_CV_VAR_HANDLER(
                                        HANDLE_EXCEPTION();
                                }
                                if (UNEXPECTED(ce == NULL)) {
-                                       zend_throw_error(zend_ce_error, "Class '%s' not found", Z_STRVAL_P(EX_CONSTANT(opline->op2)));
+                                       zend_throw_error(NULL, "Class '%s' not found", Z_STRVAL_P(EX_CONSTANT(opline->op2)));
                                        if (IS_CV != IS_CONST) {
                                                zend_string_release(Z_STR(tmp));
                                        }
@@ -34007,7 +34007,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_CV_VAR_HANDLER(ZEND
 
        SAVE_OPLINE();
        if (UNEXPECTED(generator->flags & ZEND_GENERATOR_FORCED_CLOSE)) {
-               zend_throw_error(zend_ce_error, "Cannot yield from finally in a force-closed generator");
+               zend_throw_error(NULL, "Cannot yield from finally in a force-closed generator");
                zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
 
                HANDLE_EXCEPTION();
@@ -34042,7 +34042,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_CV_VAR_HANDLER(ZEND
                                zval *value_ptr = _get_zval_ptr_cv_BP_VAR_W(execute_data, opline->op1.var);
 
                                if (IS_CV == IS_VAR && UNEXPECTED(value_ptr == NULL)) {
-                                       zend_throw_error(zend_ce_error, "Cannot yield string offsets by reference");
+                                       zend_throw_error(NULL, "Cannot yield string offsets by reference");
                                        zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
                                        HANDLE_EXCEPTION();
                                }
@@ -34150,13 +34150,13 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_dim_helper_SP
        SAVE_OPLINE();
        container = _get_zval_ptr_cv_BP_VAR_RW(execute_data, opline->op1.var);
        if (IS_CV == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
 
                HANDLE_EXCEPTION();
        }
        if (IS_CV == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an array");
+               zend_throw_error(NULL, "Cannot use string offset as an array");
                FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
 
                HANDLE_EXCEPTION();
@@ -34182,7 +34182,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_dim_helper_SP
                var_ptr = Z_INDIRECT(rv);
 
                if (UNEXPECTED(var_ptr == NULL)) {
-                       zend_throw_error(zend_ce_error, "Cannot use assign-op operators with overloaded objects nor string offsets");
+                       zend_throw_error(NULL, "Cannot use assign-op operators with overloaded objects nor string offsets");
 
                        FREE_OP(free_op_data1);
 
@@ -34467,7 +34467,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_
 
                                /* check if static properties were destoyed */
                                if (UNEXPECTED(CE_STATIC_MEMBERS(ce) == NULL)) {
-                                       zend_throw_error(zend_ce_error, "Access to undeclared static property: %s::$%s", ZSTR_VAL(ce->name), ZSTR_VAL(name));
+                                       zend_throw_error(NULL, "Access to undeclared static property: %s::$%s", ZSTR_VAL(ce->name), ZSTR_VAL(name));
 
                                        HANDLE_EXCEPTION();
                                }
@@ -34494,7 +34494,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_
 
                                /* check if static properties were destoyed */
                                if (UNEXPECTED(CE_STATIC_MEMBERS(ce) == NULL)) {
-                                       zend_throw_error(zend_ce_error, "Access to undeclared static property: %s::$%s", ZSTR_VAL(ce->name), ZSTR_VAL(name));
+                                       zend_throw_error(NULL, "Access to undeclared static property: %s::$%s", ZSTR_VAL(ce->name), ZSTR_VAL(name));
 
                                        HANDLE_EXCEPTION();
                                }
@@ -34629,7 +34629,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_W_SPEC_CV_UNUSED_HAN
        container = _get_zval_ptr_cv_undef_BP_VAR_W(execute_data, opline->op1.var);
 
        if (IS_CV == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an array");
+               zend_throw_error(NULL, "Cannot use string offset as an array");
                HANDLE_EXCEPTION();
        }
        zend_fetch_dimension_address_W(EX_VAR(opline->result.var), container, NULL, IS_UNUSED);
@@ -34652,7 +34652,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_RW_SPEC_CV_UNUSED_HA
        container = _get_zval_ptr_cv_BP_VAR_RW(execute_data, opline->op1.var);
 
        if (IS_CV == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an array");
+               zend_throw_error(NULL, "Cannot use string offset as an array");
                HANDLE_EXCEPTION();
        }
        zend_fetch_dimension_address_RW(EX_VAR(opline->result.var), container, NULL, IS_UNUSED);
@@ -34675,14 +34675,14 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_CV_UNU
 
        if (zend_is_by_ref_func_arg_fetch(opline, EX(call))) {
         if (IS_CV == IS_CONST || IS_CV == IS_TMP_VAR) {
-            zend_throw_error(zend_ce_error, "Cannot use temporary expression in write context");
+            zend_throw_error(NULL, "Cannot use temporary expression in write context");
 
 
                        HANDLE_EXCEPTION();
         }
                container = _get_zval_ptr_cv_undef_BP_VAR_W(execute_data, opline->op1.var);
                if (IS_CV == IS_VAR && UNEXPECTED(container == NULL)) {
-                       zend_throw_error(zend_ce_error, "Cannot use string offset as an array");
+                       zend_throw_error(NULL, "Cannot use string offset as an array");
 
                        HANDLE_EXCEPTION();
                }
@@ -34694,7 +34694,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_CV_UNU
 
        } else {
                if (IS_UNUSED == IS_UNUSED) {
-                       zend_throw_error(zend_ce_error, "Cannot use [] for reading");
+                       zend_throw_error(NULL, "Cannot use [] for reading");
 
 
                        HANDLE_EXCEPTION();
@@ -34722,7 +34722,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_CV_UNUSED_HAND
        object_ptr = _get_zval_ptr_cv_undef_BP_VAR_W(execute_data, opline->op1.var);
 
        if (IS_CV == IS_VAR && UNEXPECTED(object_ptr == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an array");
+               zend_throw_error(NULL, "Cannot use string offset as an array");
                FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
 
                HANDLE_EXCEPTION();
@@ -34771,7 +34771,7 @@ try_assign_dim_array:
                } else if (EXPECTED(Z_TYPE_P(object_ptr) == IS_STRING)) {
                        if (EXPECTED(Z_STRLEN_P(object_ptr) != 0)) {
                                if (IS_UNUSED == IS_UNUSED) {
-                                       zend_throw_error(zend_ce_error, "[] operator not supported for strings");
+                                       zend_throw_error(NULL, "[] operator not supported for strings");
                                        FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
 
                                        HANDLE_EXCEPTION();
@@ -34876,7 +34876,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_CV_UNUS
            UNEXPECTED(opline->extended_value & ZEND_ARRAY_ELEMENT_REF)) {
                expr_ptr = _get_zval_ptr_cv_BP_VAR_W(execute_data, opline->op1.var);
                if (IS_CV == IS_VAR && UNEXPECTED(expr_ptr == NULL)) {
-                       zend_throw_error(zend_ce_error, "Cannot create references to/from string offsets");
+                       zend_throw_error(NULL, "Cannot create references to/from string offsets");
                        zend_array_destroy(Z_ARRVAL_P(EX_VAR(opline->result.var)));
                        HANDLE_EXCEPTION();
                }
@@ -35053,7 +35053,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_VAR_SPEC_CV_UNUSED_HANDL
                                        HANDLE_EXCEPTION();
                                }
                                if (UNEXPECTED(ce == NULL)) {
-                                       zend_throw_error(zend_ce_error, "Class '%s' not found", Z_STRVAL_P(EX_CONSTANT(opline->op2)));
+                                       zend_throw_error(NULL, "Class '%s' not found", Z_STRVAL_P(EX_CONSTANT(opline->op2)));
                                        if (IS_CV != IS_CONST) {
                                                zend_string_release(Z_STR(tmp));
                                        }
@@ -35191,7 +35191,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_CV_UNUSED_HANDLER(Z
 
        SAVE_OPLINE();
        if (UNEXPECTED(generator->flags & ZEND_GENERATOR_FORCED_CLOSE)) {
-               zend_throw_error(zend_ce_error, "Cannot yield from finally in a force-closed generator");
+               zend_throw_error(NULL, "Cannot yield from finally in a force-closed generator");
 
 
                HANDLE_EXCEPTION();
@@ -35226,7 +35226,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_CV_UNUSED_HANDLER(Z
                                zval *value_ptr = _get_zval_ptr_cv_BP_VAR_W(execute_data, opline->op1.var);
 
                                if (IS_CV == IS_VAR && UNEXPECTED(value_ptr == NULL)) {
-                                       zend_throw_error(zend_ce_error, "Cannot yield string offsets by reference");
+                                       zend_throw_error(NULL, "Cannot yield string offsets by reference");
 
                                        HANDLE_EXCEPTION();
                                }
@@ -35982,7 +35982,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_obj_helper_SP
        object = _get_zval_ptr_cv_BP_VAR_RW(execute_data, opline->op1.var);
 
        if (IS_CV == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
 
                HANDLE_EXCEPTION();
@@ -35991,7 +35991,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_obj_helper_SP
        property = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
 
        if (IS_CV == IS_VAR && UNEXPECTED(object == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an object");
+               zend_throw_error(NULL, "Cannot use string offset as an object");
                FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
 
                HANDLE_EXCEPTION();
@@ -36046,13 +36046,13 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_dim_helper_SP
        SAVE_OPLINE();
        container = _get_zval_ptr_cv_BP_VAR_RW(execute_data, opline->op1.var);
        if (IS_CV == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
 
                HANDLE_EXCEPTION();
        }
        if (IS_CV == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an array");
+               zend_throw_error(NULL, "Cannot use string offset as an array");
                FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
 
                HANDLE_EXCEPTION();
@@ -36078,7 +36078,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_dim_helper_SP
                var_ptr = Z_INDIRECT(rv);
 
                if (UNEXPECTED(var_ptr == NULL)) {
-                       zend_throw_error(zend_ce_error, "Cannot use assign-op operators with overloaded objects nor string offsets");
+                       zend_throw_error(NULL, "Cannot use assign-op operators with overloaded objects nor string offsets");
 
                        FREE_OP(free_op_data1);
 
@@ -36120,7 +36120,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_C
        var_ptr = _get_zval_ptr_cv_BP_VAR_RW(execute_data, opline->op1.var);
 
        if (IS_CV == IS_VAR && UNEXPECTED(var_ptr == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use assign-op operators with overloaded objects nor string offsets");
+               zend_throw_error(NULL, "Cannot use assign-op operators with overloaded objects nor string offsets");
 
                HANDLE_EXCEPTION();
        }
@@ -36377,7 +36377,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_pre_incdec_property_helper_SPE
        object = _get_zval_ptr_cv_BP_VAR_RW(execute_data, opline->op1.var);
 
        if (IS_CV == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
@@ -36385,7 +36385,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_pre_incdec_property_helper_SPE
        property = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
 
        if (IS_CV == IS_VAR && UNEXPECTED(object == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot increment/decrement overloaded objects nor string offsets");
+               zend_throw_error(NULL, "Cannot increment/decrement overloaded objects nor string offsets");
 
                HANDLE_EXCEPTION();
        }
@@ -36458,7 +36458,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_post_incdec_property_helper_SP
        object = _get_zval_ptr_cv_BP_VAR_RW(execute_data, opline->op1.var);
 
        if (IS_CV == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
@@ -36466,7 +36466,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_post_incdec_property_helper_SP
        property = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
 
        if (IS_CV == IS_VAR && UNEXPECTED(object == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot increment/decrement overloaded objects nor string offsets");
+               zend_throw_error(NULL, "Cannot increment/decrement overloaded objects nor string offsets");
 
                HANDLE_EXCEPTION();
        }
@@ -36548,7 +36548,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_W_SPEC_CV_CV_HANDLER
        container = _get_zval_ptr_cv_undef_BP_VAR_W(execute_data, opline->op1.var);
 
        if (IS_CV == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an array");
+               zend_throw_error(NULL, "Cannot use string offset as an array");
                HANDLE_EXCEPTION();
        }
        zend_fetch_dimension_address_W(EX_VAR(opline->result.var), container, _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var), IS_CV);
@@ -36571,7 +36571,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_RW_SPEC_CV_CV_HANDLE
        container = _get_zval_ptr_cv_BP_VAR_RW(execute_data, opline->op1.var);
 
        if (IS_CV == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an array");
+               zend_throw_error(NULL, "Cannot use string offset as an array");
                HANDLE_EXCEPTION();
        }
        zend_fetch_dimension_address_RW(EX_VAR(opline->result.var), container, _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var), IS_CV);
@@ -36609,14 +36609,14 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_CV_CV_
 
        if (zend_is_by_ref_func_arg_fetch(opline, EX(call))) {
         if (IS_CV == IS_CONST || IS_CV == IS_TMP_VAR) {
-            zend_throw_error(zend_ce_error, "Cannot use temporary expression in write context");
+            zend_throw_error(NULL, "Cannot use temporary expression in write context");
 
 
                        HANDLE_EXCEPTION();
         }
                container = _get_zval_ptr_cv_undef_BP_VAR_W(execute_data, opline->op1.var);
                if (IS_CV == IS_VAR && UNEXPECTED(container == NULL)) {
-                       zend_throw_error(zend_ce_error, "Cannot use string offset as an array");
+                       zend_throw_error(NULL, "Cannot use string offset as an array");
 
                        HANDLE_EXCEPTION();
                }
@@ -36628,7 +36628,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_CV_CV_
 
        } else {
                if (IS_CV == IS_UNUSED) {
-                       zend_throw_error(zend_ce_error, "Cannot use [] for reading");
+                       zend_throw_error(NULL, "Cannot use [] for reading");
 
 
                        HANDLE_EXCEPTION();
@@ -36652,7 +36652,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_UNSET_SPEC_CV_CV_HAN
        container = _get_zval_ptr_cv_BP_VAR_UNSET(execute_data, opline->op1.var);
 
        if (IS_CV == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an array");
+               zend_throw_error(NULL, "Cannot use string offset as an array");
 
                HANDLE_EXCEPTION();
        }
@@ -36678,7 +36678,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_CV_CV_HANDLER
        container = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var);
 
        if (IS_CV == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
@@ -36751,12 +36751,12 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_W_SPEC_CV_CV_HANDLER
 
        container = _get_zval_ptr_cv_undef_BP_VAR_W(execute_data, opline->op1.var);
        if (IS_CV == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
        if (IS_CV == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an object");
+               zend_throw_error(NULL, "Cannot use string offset as an object");
 
                HANDLE_EXCEPTION();
        }
@@ -36783,12 +36783,12 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_RW_SPEC_CV_CV_HANDLE
        container = _get_zval_ptr_cv_BP_VAR_RW(execute_data, opline->op1.var);
 
        if (IS_CV == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
        if (IS_CV == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an object");
+               zend_throw_error(NULL, "Cannot use string offset as an object");
 
                HANDLE_EXCEPTION();
        }
@@ -36814,7 +36814,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_CV_CV_HANDLE
        container = _get_zval_ptr_cv_BP_VAR_IS(execute_data, opline->op1.var);
 
        if (IS_CV == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
@@ -36890,18 +36890,18 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CV_CV_
                container = _get_zval_ptr_cv_undef_BP_VAR_W(execute_data, opline->op1.var);
 
                if (IS_CV == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-                       zend_throw_error(zend_ce_error, "Using $this when not in object context");
+                       zend_throw_error(NULL, "Using $this when not in object context");
 
                        HANDLE_EXCEPTION();
                }
                if (IS_CV == IS_CONST || IS_CV == IS_TMP_VAR) {
-                       zend_throw_error(zend_ce_error, "Cannot use temporary expression in write context");
+                       zend_throw_error(NULL, "Cannot use temporary expression in write context");
 
 
                        HANDLE_EXCEPTION();
                }
                if (IS_CV == IS_VAR && UNEXPECTED(container == NULL)) {
-                       zend_throw_error(zend_ce_error, "Cannot use string offset as an object");
+                       zend_throw_error(NULL, "Cannot use string offset as an object");
 
                        HANDLE_EXCEPTION();
                }
@@ -36928,7 +36928,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_UNSET_SPEC_CV_CV_HAN
        container = _get_zval_ptr_cv_BP_VAR_UNSET(execute_data, opline->op1.var);
 
        if (IS_CV == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
@@ -36936,7 +36936,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_UNSET_SPEC_CV_CV_HAN
        property = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
 
        if (IS_CV == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an object");
+               zend_throw_error(NULL, "Cannot use string offset as an object");
 
                HANDLE_EXCEPTION();
        }
@@ -36961,7 +36961,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_CV_CV_HANDLER(
        object = _get_zval_ptr_cv_undef_BP_VAR_W(execute_data, opline->op1.var);
 
        if (IS_CV == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
@@ -36969,7 +36969,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_CV_CV_HANDLER(
        property_name = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var);
 
        if (IS_CV == IS_VAR && UNEXPECTED(object == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an array");
+               zend_throw_error(NULL, "Cannot use string offset as an array");
 
                HANDLE_EXCEPTION();
        }
@@ -36996,7 +36996,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_CV_CV_HANDLER(
        object_ptr = _get_zval_ptr_cv_undef_BP_VAR_W(execute_data, opline->op1.var);
 
        if (IS_CV == IS_VAR && UNEXPECTED(object_ptr == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an array");
+               zend_throw_error(NULL, "Cannot use string offset as an array");
                FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
 
                HANDLE_EXCEPTION();
@@ -37045,7 +37045,7 @@ try_assign_dim_array:
                } else if (EXPECTED(Z_TYPE_P(object_ptr) == IS_STRING)) {
                        if (EXPECTED(Z_STRLEN_P(object_ptr) != 0)) {
                                if (IS_CV == IS_UNUSED) {
-                                       zend_throw_error(zend_ce_error, "[] operator not supported for strings");
+                                       zend_throw_error(NULL, "[] operator not supported for strings");
                                        FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
 
                                        HANDLE_EXCEPTION();
@@ -37130,7 +37130,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_REF_SPEC_CV_CV_HANDLER(
        value_ptr = _get_zval_ptr_cv_BP_VAR_W(execute_data, opline->op2.var);
 
        if (IS_CV == IS_VAR && UNEXPECTED(value_ptr == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot create references to/from string offsets nor overloaded objects");
+               zend_throw_error(NULL, "Cannot create references to/from string offsets nor overloaded objects");
 
                HANDLE_EXCEPTION();
        }
@@ -37151,14 +37151,14 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_REF_SPEC_CV_CV_HANDLER(
 
        variable_ptr = _get_zval_ptr_cv_undef_BP_VAR_W(execute_data, opline->op1.var);
        if (IS_CV == IS_VAR && UNEXPECTED(variable_ptr == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot create references to/from string offsets nor overloaded objects");
+               zend_throw_error(NULL, "Cannot create references to/from string offsets nor overloaded objects");
 
                HANDLE_EXCEPTION();
        }
        if (IS_CV == IS_VAR &&
            UNEXPECTED(Z_TYPE_P(EX_VAR(opline->op1.var)) != IS_INDIRECT) &&
            UNEXPECTED(!Z_ISREF_P(variable_ptr))) {
-               zend_throw_error(zend_ce_error, "Cannot assign by reference to overloaded object");
+               zend_throw_error(NULL, "Cannot assign by reference to overloaded object");
 
 
                HANDLE_EXCEPTION();
@@ -37278,7 +37278,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_CV_CV_HA
                        if (UNEXPECTED(EG(exception) != NULL)) {
                                HANDLE_EXCEPTION();
                        }
-                       zend_throw_error(zend_ce_error, "Method name must be a string");
+                       zend_throw_error(NULL, "Method name must be a string");
 
 
                        HANDLE_EXCEPTION();
@@ -37288,7 +37288,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_CV_CV_HA
        object = _get_zval_ptr_cv_undef(execute_data, opline->op1.var);
 
        if (IS_CV == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
@@ -37308,7 +37308,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_CV_CV_HA
                                if (UNEXPECTED(EG(exception) != NULL)) {
                                        HANDLE_EXCEPTION();
                                }
-                               zend_throw_error(zend_ce_error, "Call to a member function %s() on %s", Z_STRVAL_P(function_name), zend_get_type_by_const(Z_TYPE_P(object)));
+                               zend_throw_error(NULL, "Call to a member function %s() on %s", Z_STRVAL_P(function_name), zend_get_type_by_const(Z_TYPE_P(object)));
 
 
                                HANDLE_EXCEPTION();
@@ -37324,7 +37324,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_CV_CV_HA
            zend_object *orig_obj = obj;
 
                if (UNEXPECTED(obj->handlers->get_method == NULL)) {
-                       zend_throw_error(zend_ce_error, "Object does not support method calls");
+                       zend_throw_error(NULL, "Object does not support method calls");
 
 
                        HANDLE_EXCEPTION();
@@ -37334,7 +37334,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_CV_CV_HA
                fbc = obj->handlers->get_method(&obj, Z_STR_P(function_name), ((IS_CV == IS_CONST) ? (EX_CONSTANT(opline->op2) + 1) : NULL));
                if (UNEXPECTED(fbc == NULL)) {
                        if (EXPECTED(!EG(exception))) {
-                               zend_throw_error(zend_ce_error, "Call to undefined method %s::%s()", ZSTR_VAL(obj->ce->name), Z_STRVAL_P(function_name));
+                               zend_throw_error(NULL, "Call to undefined method %s::%s()", ZSTR_VAL(obj->ce->name), Z_STRVAL_P(function_name));
                        }
 
 
@@ -37445,7 +37445,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_CV_CV_H
            UNEXPECTED(opline->extended_value & ZEND_ARRAY_ELEMENT_REF)) {
                expr_ptr = _get_zval_ptr_cv_BP_VAR_W(execute_data, opline->op1.var);
                if (IS_CV == IS_VAR && UNEXPECTED(expr_ptr == NULL)) {
-                       zend_throw_error(zend_ce_error, "Cannot create references to/from string offsets");
+                       zend_throw_error(NULL, "Cannot create references to/from string offsets");
                        zend_array_destroy(Z_ARRVAL_P(EX_VAR(opline->result.var)));
                        HANDLE_EXCEPTION();
                }
@@ -37577,12 +37577,12 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_DIM_SPEC_CV_CV_HANDLER(Z
        SAVE_OPLINE();
        container = _get_zval_ptr_cv_BP_VAR_UNSET(execute_data, opline->op1.var);
        if (IS_CV == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
        if (IS_CV == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot unset string offsets");
+               zend_throw_error(NULL, "Cannot unset string offsets");
 
                HANDLE_EXCEPTION();
        }
@@ -37650,12 +37650,12 @@ num_index_dim:
                }
                if (IS_CV == IS_UNUSED || EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) {
                        if (UNEXPECTED(Z_OBJ_HT_P(container)->unset_dimension == NULL)) {
-                               zend_throw_error(zend_ce_error, "Cannot use object as array");
+                               zend_throw_error(NULL, "Cannot use object as array");
                        } else {
                                Z_OBJ_HT_P(container)->unset_dimension(container, offset);
                        }
                } else if (IS_CV != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_STRING)) {
-                       zend_throw_error(zend_ce_error, "Cannot unset string offsets");
+                       zend_throw_error(NULL, "Cannot unset string offsets");
                }
        } while (0);
 
@@ -37674,12 +37674,12 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_OBJ_SPEC_CV_CV_HANDLER(Z
        SAVE_OPLINE();
        container = _get_zval_ptr_cv_BP_VAR_UNSET(execute_data, opline->op1.var);
        if (IS_CV == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
        if (IS_CV == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot unset string offsets");
+               zend_throw_error(NULL, "Cannot unset string offsets");
 
                HANDLE_EXCEPTION();
        }
@@ -37721,7 +37721,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_CV_
        container = _get_zval_ptr_cv_BP_VAR_IS(execute_data, opline->op1.var);
 
        if (IS_CV == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
@@ -37858,7 +37858,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_CV
        container = _get_zval_ptr_cv_BP_VAR_IS(execute_data, opline->op1.var);
 
        if (IS_CV == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
@@ -37901,7 +37901,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_CV_CV_HANDLER(ZEND_
 
        SAVE_OPLINE();
        if (UNEXPECTED(generator->flags & ZEND_GENERATOR_FORCED_CLOSE)) {
-               zend_throw_error(zend_ce_error, "Cannot yield from finally in a force-closed generator");
+               zend_throw_error(NULL, "Cannot yield from finally in a force-closed generator");
 
 
                HANDLE_EXCEPTION();
@@ -37936,7 +37936,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_CV_CV_HANDLER(ZEND_
                                zval *value_ptr = _get_zval_ptr_cv_BP_VAR_W(execute_data, opline->op1.var);
 
                                if (IS_CV == IS_VAR && UNEXPECTED(value_ptr == NULL)) {
-                                       zend_throw_error(zend_ce_error, "Cannot yield string offsets by reference");
+                                       zend_throw_error(NULL, "Cannot yield string offsets by reference");
 
                                        HANDLE_EXCEPTION();
                                }
@@ -38671,7 +38671,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_obj_helper_SP
        object = _get_zval_ptr_cv_BP_VAR_RW(execute_data, opline->op1.var);
 
        if (IS_CV == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
                zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
                HANDLE_EXCEPTION();
@@ -38680,7 +38680,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_obj_helper_SP
        property = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
 
        if (IS_CV == IS_VAR && UNEXPECTED(object == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an object");
+               zend_throw_error(NULL, "Cannot use string offset as an object");
                FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
                zval_ptr_dtor_nogc(free_op2);
                HANDLE_EXCEPTION();
@@ -38735,13 +38735,13 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_dim_helper_SP
        SAVE_OPLINE();
        container = _get_zval_ptr_cv_BP_VAR_RW(execute_data, opline->op1.var);
        if (IS_CV == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
                zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
                HANDLE_EXCEPTION();
        }
        if (IS_CV == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an array");
+               zend_throw_error(NULL, "Cannot use string offset as an array");
                FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
                zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
                HANDLE_EXCEPTION();
@@ -38767,7 +38767,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_dim_helper_SP
                var_ptr = Z_INDIRECT(rv);
 
                if (UNEXPECTED(var_ptr == NULL)) {
-                       zend_throw_error(zend_ce_error, "Cannot use assign-op operators with overloaded objects nor string offsets");
+                       zend_throw_error(NULL, "Cannot use assign-op operators with overloaded objects nor string offsets");
                        zval_ptr_dtor_nogc(free_op2);
                        FREE_OP(free_op_data1);
 
@@ -38810,7 +38810,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_C
        var_ptr = _get_zval_ptr_cv_BP_VAR_RW(execute_data, opline->op1.var);
 
        if (IS_CV == IS_VAR && UNEXPECTED(var_ptr == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use assign-op operators with overloaded objects nor string offsets");
+               zend_throw_error(NULL, "Cannot use assign-op operators with overloaded objects nor string offsets");
                zval_ptr_dtor_nogc(free_op2);
                HANDLE_EXCEPTION();
        }
@@ -39068,7 +39068,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_pre_incdec_property_helper_SPE
        object = _get_zval_ptr_cv_BP_VAR_RW(execute_data, opline->op1.var);
 
        if (IS_CV == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
                HANDLE_EXCEPTION();
        }
@@ -39076,7 +39076,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_pre_incdec_property_helper_SPE
        property = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
 
        if (IS_CV == IS_VAR && UNEXPECTED(object == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot increment/decrement overloaded objects nor string offsets");
+               zend_throw_error(NULL, "Cannot increment/decrement overloaded objects nor string offsets");
                zval_ptr_dtor_nogc(free_op2);
                HANDLE_EXCEPTION();
        }
@@ -39150,7 +39150,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_post_incdec_property_helper_SP
        object = _get_zval_ptr_cv_BP_VAR_RW(execute_data, opline->op1.var);
 
        if (IS_CV == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
                HANDLE_EXCEPTION();
        }
@@ -39158,7 +39158,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_post_incdec_property_helper_SP
        property = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
 
        if (IS_CV == IS_VAR && UNEXPECTED(object == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot increment/decrement overloaded objects nor string offsets");
+               zend_throw_error(NULL, "Cannot increment/decrement overloaded objects nor string offsets");
                zval_ptr_dtor_nogc(free_op2);
                HANDLE_EXCEPTION();
        }
@@ -39241,7 +39241,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_W_SPEC_CV_TMPVAR_HAN
        container = _get_zval_ptr_cv_undef_BP_VAR_W(execute_data, opline->op1.var);
 
        if (IS_CV == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an array");
+               zend_throw_error(NULL, "Cannot use string offset as an array");
                HANDLE_EXCEPTION();
        }
        zend_fetch_dimension_address_W(EX_VAR(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2), (IS_TMP_VAR|IS_VAR));
@@ -39264,7 +39264,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_RW_SPEC_CV_TMPVAR_HA
        container = _get_zval_ptr_cv_BP_VAR_RW(execute_data, opline->op1.var);
 
        if (IS_CV == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an array");
+               zend_throw_error(NULL, "Cannot use string offset as an array");
                HANDLE_EXCEPTION();
        }
        zend_fetch_dimension_address_RW(EX_VAR(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2), (IS_TMP_VAR|IS_VAR));
@@ -39302,14 +39302,14 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_CV_TMP
 
        if (zend_is_by_ref_func_arg_fetch(opline, EX(call))) {
         if (IS_CV == IS_CONST || IS_CV == IS_TMP_VAR) {
-            zend_throw_error(zend_ce_error, "Cannot use temporary expression in write context");
+            zend_throw_error(NULL, "Cannot use temporary expression in write context");
                        zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
 
                        HANDLE_EXCEPTION();
         }
                container = _get_zval_ptr_cv_undef_BP_VAR_W(execute_data, opline->op1.var);
                if (IS_CV == IS_VAR && UNEXPECTED(container == NULL)) {
-                       zend_throw_error(zend_ce_error, "Cannot use string offset as an array");
+                       zend_throw_error(NULL, "Cannot use string offset as an array");
                        zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
                        HANDLE_EXCEPTION();
                }
@@ -39321,7 +39321,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_CV_TMP
 
        } else {
                if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED) {
-                       zend_throw_error(zend_ce_error, "Cannot use [] for reading");
+                       zend_throw_error(NULL, "Cannot use [] for reading");
                        zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
 
                        HANDLE_EXCEPTION();
@@ -39345,7 +39345,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_UNSET_SPEC_CV_TMPVAR
        container = _get_zval_ptr_cv_BP_VAR_UNSET(execute_data, opline->op1.var);
 
        if (IS_CV == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an array");
+               zend_throw_error(NULL, "Cannot use string offset as an array");
                zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
                HANDLE_EXCEPTION();
        }
@@ -39371,7 +39371,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_CV_TMPVAR_HAN
        container = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var);
 
        if (IS_CV == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
                HANDLE_EXCEPTION();
        }
@@ -39445,12 +39445,12 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_W_SPEC_CV_TMPVAR_HAN
 
        container = _get_zval_ptr_cv_undef_BP_VAR_W(execute_data, opline->op1.var);
        if (IS_CV == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                zval_ptr_dtor_nogc(free_op2);
                HANDLE_EXCEPTION();
        }
        if (IS_CV == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an object");
+               zend_throw_error(NULL, "Cannot use string offset as an object");
                zval_ptr_dtor_nogc(free_op2);
                HANDLE_EXCEPTION();
        }
@@ -39477,12 +39477,12 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_RW_SPEC_CV_TMPVAR_HA
        container = _get_zval_ptr_cv_BP_VAR_RW(execute_data, opline->op1.var);
 
        if (IS_CV == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                zval_ptr_dtor_nogc(free_op2);
                HANDLE_EXCEPTION();
        }
        if (IS_CV == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an object");
+               zend_throw_error(NULL, "Cannot use string offset as an object");
                zval_ptr_dtor_nogc(free_op2);
                HANDLE_EXCEPTION();
        }
@@ -39508,7 +39508,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_CV_TMPVAR_HA
        container = _get_zval_ptr_cv_BP_VAR_IS(execute_data, opline->op1.var);
 
        if (IS_CV == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
                HANDLE_EXCEPTION();
        }
@@ -39585,18 +39585,18 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CV_TMP
                container = _get_zval_ptr_cv_undef_BP_VAR_W(execute_data, opline->op1.var);
 
                if (IS_CV == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-                       zend_throw_error(zend_ce_error, "Using $this when not in object context");
+                       zend_throw_error(NULL, "Using $this when not in object context");
                        zval_ptr_dtor_nogc(free_op2);
                        HANDLE_EXCEPTION();
                }
                if (IS_CV == IS_CONST || IS_CV == IS_TMP_VAR) {
-                       zend_throw_error(zend_ce_error, "Cannot use temporary expression in write context");
+                       zend_throw_error(NULL, "Cannot use temporary expression in write context");
                        zval_ptr_dtor_nogc(free_op2);
 
                        HANDLE_EXCEPTION();
                }
                if (IS_CV == IS_VAR && UNEXPECTED(container == NULL)) {
-                       zend_throw_error(zend_ce_error, "Cannot use string offset as an object");
+                       zend_throw_error(NULL, "Cannot use string offset as an object");
                        zval_ptr_dtor_nogc(free_op2);
                        HANDLE_EXCEPTION();
                }
@@ -39623,7 +39623,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_UNSET_SPEC_CV_TMPVAR
        container = _get_zval_ptr_cv_BP_VAR_UNSET(execute_data, opline->op1.var);
 
        if (IS_CV == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
                HANDLE_EXCEPTION();
        }
@@ -39631,7 +39631,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_UNSET_SPEC_CV_TMPVAR
        property = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
 
        if (IS_CV == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an object");
+               zend_throw_error(NULL, "Cannot use string offset as an object");
                zval_ptr_dtor_nogc(free_op2);
                HANDLE_EXCEPTION();
        }
@@ -39656,7 +39656,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_CV_TMPVAR_HAND
        object = _get_zval_ptr_cv_undef_BP_VAR_W(execute_data, opline->op1.var);
 
        if (IS_CV == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
                HANDLE_EXCEPTION();
        }
@@ -39664,7 +39664,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_CV_TMPVAR_HAND
        property_name = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
 
        if (IS_CV == IS_VAR && UNEXPECTED(object == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an array");
+               zend_throw_error(NULL, "Cannot use string offset as an array");
                zval_ptr_dtor_nogc(free_op2);
                HANDLE_EXCEPTION();
        }
@@ -39691,7 +39691,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_CV_TMPVAR_HAND
        object_ptr = _get_zval_ptr_cv_undef_BP_VAR_W(execute_data, opline->op1.var);
 
        if (IS_CV == IS_VAR && UNEXPECTED(object_ptr == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot use string offset as an array");
+               zend_throw_error(NULL, "Cannot use string offset as an array");
                FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
                zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
                HANDLE_EXCEPTION();
@@ -39740,7 +39740,7 @@ try_assign_dim_array:
                } else if (EXPECTED(Z_TYPE_P(object_ptr) == IS_STRING)) {
                        if (EXPECTED(Z_STRLEN_P(object_ptr) != 0)) {
                                if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED) {
-                                       zend_throw_error(zend_ce_error, "[] operator not supported for strings");
+                                       zend_throw_error(NULL, "[] operator not supported for strings");
                                        FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var);
 
                                        HANDLE_EXCEPTION();
@@ -39884,7 +39884,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_CV_TMPVA
                        if (UNEXPECTED(EG(exception) != NULL)) {
                                HANDLE_EXCEPTION();
                        }
-                       zend_throw_error(zend_ce_error, "Method name must be a string");
+                       zend_throw_error(NULL, "Method name must be a string");
                        zval_ptr_dtor_nogc(free_op2);
 
                        HANDLE_EXCEPTION();
@@ -39894,7 +39894,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_CV_TMPVA
        object = _get_zval_ptr_cv_undef(execute_data, opline->op1.var);
 
        if (IS_CV == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                zval_ptr_dtor_nogc(free_op2);
                HANDLE_EXCEPTION();
        }
@@ -39914,7 +39914,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_CV_TMPVA
                                if (UNEXPECTED(EG(exception) != NULL)) {
                                        HANDLE_EXCEPTION();
                                }
-                               zend_throw_error(zend_ce_error, "Call to a member function %s() on %s", Z_STRVAL_P(function_name), zend_get_type_by_const(Z_TYPE_P(object)));
+                               zend_throw_error(NULL, "Call to a member function %s() on %s", Z_STRVAL_P(function_name), zend_get_type_by_const(Z_TYPE_P(object)));
                                zval_ptr_dtor_nogc(free_op2);
 
                                HANDLE_EXCEPTION();
@@ -39930,7 +39930,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_CV_TMPVA
            zend_object *orig_obj = obj;
 
                if (UNEXPECTED(obj->handlers->get_method == NULL)) {
-                       zend_throw_error(zend_ce_error, "Object does not support method calls");
+                       zend_throw_error(NULL, "Object does not support method calls");
                        zval_ptr_dtor_nogc(free_op2);
 
                        HANDLE_EXCEPTION();
@@ -39940,7 +39940,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_CV_TMPVA
                fbc = obj->handlers->get_method(&obj, Z_STR_P(function_name), (((IS_TMP_VAR|IS_VAR) == IS_CONST) ? (EX_CONSTANT(opline->op2) + 1) : NULL));
                if (UNEXPECTED(fbc == NULL)) {
                        if (EXPECTED(!EG(exception))) {
-                               zend_throw_error(zend_ce_error, "Call to undefined method %s::%s()", ZSTR_VAL(obj->ce->name), Z_STRVAL_P(function_name));
+                               zend_throw_error(NULL, "Call to undefined method %s::%s()", ZSTR_VAL(obj->ce->name), Z_STRVAL_P(function_name));
                        }
                        zval_ptr_dtor_nogc(free_op2);
 
@@ -40052,7 +40052,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_CV_TMPV
            UNEXPECTED(opline->extended_value & ZEND_ARRAY_ELEMENT_REF)) {
                expr_ptr = _get_zval_ptr_cv_BP_VAR_W(execute_data, opline->op1.var);
                if (IS_CV == IS_VAR && UNEXPECTED(expr_ptr == NULL)) {
-                       zend_throw_error(zend_ce_error, "Cannot create references to/from string offsets");
+                       zend_throw_error(NULL, "Cannot create references to/from string offsets");
                        zend_array_destroy(Z_ARRVAL_P(EX_VAR(opline->result.var)));
                        HANDLE_EXCEPTION();
                }
@@ -40184,12 +40184,12 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_DIM_SPEC_CV_TMPVAR_HANDL
        SAVE_OPLINE();
        container = _get_zval_ptr_cv_BP_VAR_UNSET(execute_data, opline->op1.var);
        if (IS_CV == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
                HANDLE_EXCEPTION();
        }
        if (IS_CV == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot unset string offsets");
+               zend_throw_error(NULL, "Cannot unset string offsets");
                zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
                HANDLE_EXCEPTION();
        }
@@ -40257,12 +40257,12 @@ num_index_dim:
                }
                if (IS_CV == IS_UNUSED || EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) {
                        if (UNEXPECTED(Z_OBJ_HT_P(container)->unset_dimension == NULL)) {
-                               zend_throw_error(zend_ce_error, "Cannot use object as array");
+                               zend_throw_error(NULL, "Cannot use object as array");
                        } else {
                                Z_OBJ_HT_P(container)->unset_dimension(container, offset);
                        }
                } else if (IS_CV != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_STRING)) {
-                       zend_throw_error(zend_ce_error, "Cannot unset string offsets");
+                       zend_throw_error(NULL, "Cannot unset string offsets");
                }
        } while (0);
 
@@ -40282,12 +40282,12 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_OBJ_SPEC_CV_TMPVAR_HANDL
        SAVE_OPLINE();
        container = _get_zval_ptr_cv_BP_VAR_UNSET(execute_data, opline->op1.var);
        if (IS_CV == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
                HANDLE_EXCEPTION();
        }
        if (IS_CV == IS_VAR && UNEXPECTED(container == NULL)) {
-               zend_throw_error(zend_ce_error, "Cannot unset string offsets");
+               zend_throw_error(NULL, "Cannot unset string offsets");
                zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
                HANDLE_EXCEPTION();
        }
@@ -40330,7 +40330,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_CV_
        container = _get_zval_ptr_cv_BP_VAR_IS(execute_data, opline->op1.var);
 
        if (IS_CV == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
                HANDLE_EXCEPTION();
        }
@@ -40467,7 +40467,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_CV
        container = _get_zval_ptr_cv_BP_VAR_IS(execute_data, opline->op1.var);
 
        if (IS_CV == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
                HANDLE_EXCEPTION();
        }
@@ -40855,7 +40855,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CLONE_SPEC_TMPVAR_HANDLER(ZEND
        obj = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1);
 
        if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED && UNEXPECTED(Z_OBJ_P(obj) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                HANDLE_EXCEPTION();
        }
 
@@ -40874,7 +40874,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CLONE_SPEC_TMPVAR_HANDLER(ZEND
                        if (UNEXPECTED(EG(exception) != NULL)) {
                                HANDLE_EXCEPTION();
                        }
-                       zend_throw_error(zend_ce_error, "__clone method called on non-object");
+                       zend_throw_error(NULL, "__clone method called on non-object");
                        zval_ptr_dtor_nogc(free_op1);
                        HANDLE_EXCEPTION();
                }
@@ -40885,9 +40885,9 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CLONE_SPEC_TMPVAR_HANDLER(ZEND
        clone_call =  Z_OBJ_HT_P(obj)->clone_obj;
        if (UNEXPECTED(clone_call == NULL)) {
                if (ce) {
-                       zend_throw_error(zend_ce_error, "Trying to clone an uncloneable object of class %s", ZSTR_VAL(ce->name));
+                       zend_throw_error(NULL, "Trying to clone an uncloneable object of class %s", ZSTR_VAL(ce->name));
                } else {
-                       zend_throw_error(zend_ce_error, "Trying to clone an uncloneable object");
+                       zend_throw_error(NULL, "Trying to clone an uncloneable object");
                }
                zval_ptr_dtor_nogc(free_op1);
                HANDLE_EXCEPTION();
@@ -40898,7 +40898,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CLONE_SPEC_TMPVAR_HANDLER(ZEND
                        /* Ensure that if we're calling a private function, we're allowed to do so.
                         */
                        if (UNEXPECTED(ce != EG(scope))) {
-                               zend_throw_error(zend_ce_error, "Call to private %s::__clone() from context '%s'", ZSTR_VAL(ce->name), EG(scope) ? ZSTR_VAL(EG(scope)->name) : "");
+                               zend_throw_error(NULL, "Call to private %s::__clone() from context '%s'", ZSTR_VAL(ce->name), EG(scope) ? ZSTR_VAL(EG(scope)->name) : "");
                                zval_ptr_dtor_nogc(free_op1);
                                HANDLE_EXCEPTION();
                        }
@@ -40906,7 +40906,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CLONE_SPEC_TMPVAR_HANDLER(ZEND
                        /* Ensure that if we're calling a protected function, we're allowed to do so.
                         */
                        if (UNEXPECTED(!zend_check_protected(zend_get_function_root_class(clone), EG(scope)))) {
-                               zend_throw_error(zend_ce_error, "Call to protected %s::__clone() from context '%s'", ZSTR_VAL(ce->name), EG(scope) ? ZSTR_VAL(EG(scope)->name) : "");
+                               zend_throw_error(NULL, "Call to protected %s::__clone() from context '%s'", ZSTR_VAL(ce->name), EG(scope) ? ZSTR_VAL(EG(scope)->name) : "");
                                zval_ptr_dtor_nogc(free_op1);
                                HANDLE_EXCEPTION();
                        }
@@ -41766,7 +41766,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_
 
                                /* check if static properties were destoyed */
                                if (UNEXPECTED(CE_STATIC_MEMBERS(ce) == NULL)) {
-                                       zend_throw_error(zend_ce_error, "Access to undeclared static property: %s::$%s", ZSTR_VAL(ce->name), ZSTR_VAL(name));
+                                       zend_throw_error(NULL, "Access to undeclared static property: %s::$%s", ZSTR_VAL(ce->name), ZSTR_VAL(name));
                                        zval_ptr_dtor_nogc(free_op1);
                                        HANDLE_EXCEPTION();
                                }
@@ -41793,7 +41793,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_
 
                                /* check if static properties were destoyed */
                                if (UNEXPECTED(CE_STATIC_MEMBERS(ce) == NULL)) {
-                                       zend_throw_error(zend_ce_error, "Access to undeclared static property: %s::$%s", ZSTR_VAL(ce->name), ZSTR_VAL(name));
+                                       zend_throw_error(NULL, "Access to undeclared static property: %s::$%s", ZSTR_VAL(ce->name), ZSTR_VAL(name));
                                        zval_ptr_dtor_nogc(free_op1);
                                        HANDLE_EXCEPTION();
                                }
@@ -41961,7 +41961,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_TMPVAR_CONST
        container = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1);
 
        if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
@@ -42166,7 +42166,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_TMPVAR_C
                        if (UNEXPECTED(EG(exception) != NULL)) {
                                HANDLE_EXCEPTION();
                        }
-                       zend_throw_error(zend_ce_error, "Method name must be a string");
+                       zend_throw_error(NULL, "Method name must be a string");
 
                        zval_ptr_dtor_nogc(EX_VAR(opline->op1.var));
                        HANDLE_EXCEPTION();
@@ -42176,7 +42176,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_TMPVAR_C
        object = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1);
 
        if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
@@ -42196,7 +42196,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_TMPVAR_C
                                if (UNEXPECTED(EG(exception) != NULL)) {
                                        HANDLE_EXCEPTION();
                                }
-                               zend_throw_error(zend_ce_error, "Call to a member function %s() on %s", Z_STRVAL_P(function_name), zend_get_type_by_const(Z_TYPE_P(object)));
+                               zend_throw_error(NULL, "Call to a member function %s() on %s", Z_STRVAL_P(function_name), zend_get_type_by_const(Z_TYPE_P(object)));
 
                                zval_ptr_dtor_nogc(free_op1);
                                HANDLE_EXCEPTION();
@@ -42212,7 +42212,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_TMPVAR_C
            zend_object *orig_obj = obj;
 
                if (UNEXPECTED(obj->handlers->get_method == NULL)) {
-                       zend_throw_error(zend_ce_error, "Object does not support method calls");
+                       zend_throw_error(NULL, "Object does not support method calls");
 
                        zval_ptr_dtor_nogc(free_op1);
                        HANDLE_EXCEPTION();
@@ -42222,7 +42222,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_TMPVAR_C
                fbc = obj->handlers->get_method(&obj, Z_STR_P(function_name), ((IS_CONST == IS_CONST) ? (EX_CONSTANT(opline->op2) + 1) : NULL));
                if (UNEXPECTED(fbc == NULL)) {
                        if (EXPECTED(!EG(exception))) {
-                               zend_throw_error(zend_ce_error, "Call to undefined method %s::%s()", ZSTR_VAL(obj->ce->name), Z_STRVAL_P(function_name));
+                               zend_throw_error(NULL, "Call to undefined method %s::%s()", ZSTR_VAL(obj->ce->name), Z_STRVAL_P(function_name));
                        }
 
                        zval_ptr_dtor_nogc(free_op1);
@@ -42380,7 +42380,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_VAR_SPEC_TMPVAR_CONST_HA
                                        HANDLE_EXCEPTION();
                                }
                                if (UNEXPECTED(ce == NULL)) {
-                                       zend_throw_error(zend_ce_error, "Class '%s' not found", Z_STRVAL_P(EX_CONSTANT(opline->op2)));
+                                       zend_throw_error(NULL, "Class '%s' not found", Z_STRVAL_P(EX_CONSTANT(opline->op2)));
                                        if ((IS_TMP_VAR|IS_VAR) != IS_CONST) {
                                                zend_string_release(Z_STR(tmp));
                                        }
@@ -42524,7 +42524,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_TMP
        container = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1);
 
        if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
@@ -42661,7 +42661,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_TM
        container = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1);
 
        if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
@@ -42794,7 +42794,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_
 
                                /* check if static properties were destoyed */
                                if (UNEXPECTED(CE_STATIC_MEMBERS(ce) == NULL)) {
-                                       zend_throw_error(zend_ce_error, "Access to undeclared static property: %s::$%s", ZSTR_VAL(ce->name), ZSTR_VAL(name));
+                                       zend_throw_error(NULL, "Access to undeclared static property: %s::$%s", ZSTR_VAL(ce->name), ZSTR_VAL(name));
                                        zval_ptr_dtor_nogc(free_op1);
                                        HANDLE_EXCEPTION();
                                }
@@ -42821,7 +42821,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_
 
                                /* check if static properties were destoyed */
                                if (UNEXPECTED(CE_STATIC_MEMBERS(ce) == NULL)) {
-                                       zend_throw_error(zend_ce_error, "Access to undeclared static property: %s::$%s", ZSTR_VAL(ce->name), ZSTR_VAL(name));
+                                       zend_throw_error(NULL, "Access to undeclared static property: %s::$%s", ZSTR_VAL(ce->name), ZSTR_VAL(name));
                                        zval_ptr_dtor_nogc(free_op1);
                                        HANDLE_EXCEPTION();
                                }
@@ -43004,7 +43004,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_VAR_SPEC_TMPVAR_VAR_HAND
                                        HANDLE_EXCEPTION();
                                }
                                if (UNEXPECTED(ce == NULL)) {
-                                       zend_throw_error(zend_ce_error, "Class '%s' not found", Z_STRVAL_P(EX_CONSTANT(opline->op2)));
+                                       zend_throw_error(NULL, "Class '%s' not found", Z_STRVAL_P(EX_CONSTANT(opline->op2)));
                                        if ((IS_TMP_VAR|IS_VAR) != IS_CONST) {
                                                zend_string_release(Z_STR(tmp));
                                        }
@@ -43217,7 +43217,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_
 
                                /* check if static properties were destoyed */
                                if (UNEXPECTED(CE_STATIC_MEMBERS(ce) == NULL)) {
-                                       zend_throw_error(zend_ce_error, "Access to undeclared static property: %s::$%s", ZSTR_VAL(ce->name), ZSTR_VAL(name));
+                                       zend_throw_error(NULL, "Access to undeclared static property: %s::$%s", ZSTR_VAL(ce->name), ZSTR_VAL(name));
                                        zval_ptr_dtor_nogc(free_op1);
                                        HANDLE_EXCEPTION();
                                }
@@ -43244,7 +43244,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_
 
                                /* check if static properties were destoyed */
                                if (UNEXPECTED(CE_STATIC_MEMBERS(ce) == NULL)) {
-                                       zend_throw_error(zend_ce_error, "Access to undeclared static property: %s::$%s", ZSTR_VAL(ce->name), ZSTR_VAL(name));
+                                       zend_throw_error(NULL, "Access to undeclared static property: %s::$%s", ZSTR_VAL(ce->name), ZSTR_VAL(name));
                                        zval_ptr_dtor_nogc(free_op1);
                                        HANDLE_EXCEPTION();
                                }
@@ -43427,7 +43427,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_VAR_SPEC_TMPVAR_UNUSED_H
                                        HANDLE_EXCEPTION();
                                }
                                if (UNEXPECTED(ce == NULL)) {
-                                       zend_throw_error(zend_ce_error, "Class '%s' not found", Z_STRVAL_P(EX_CONSTANT(opline->op2)));
+                                       zend_throw_error(NULL, "Class '%s' not found", Z_STRVAL_P(EX_CONSTANT(opline->op2)));
                                        if ((IS_TMP_VAR|IS_VAR) != IS_CONST) {
                                                zend_string_release(Z_STR(tmp));
                                        }
@@ -44203,7 +44203,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_TMPVAR_CV_HA
        container = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1);
 
        if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
@@ -44363,7 +44363,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_TMPVAR_C
                        if (UNEXPECTED(EG(exception) != NULL)) {
                                HANDLE_EXCEPTION();
                        }
-                       zend_throw_error(zend_ce_error, "Method name must be a string");
+                       zend_throw_error(NULL, "Method name must be a string");
 
                        zval_ptr_dtor_nogc(EX_VAR(opline->op1.var));
                        HANDLE_EXCEPTION();
@@ -44373,7 +44373,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_TMPVAR_C
        object = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1);
 
        if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
@@ -44393,7 +44393,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_TMPVAR_C
                                if (UNEXPECTED(EG(exception) != NULL)) {
                                        HANDLE_EXCEPTION();
                                }
-                               zend_throw_error(zend_ce_error, "Call to a member function %s() on %s", Z_STRVAL_P(function_name), zend_get_type_by_const(Z_TYPE_P(object)));
+                               zend_throw_error(NULL, "Call to a member function %s() on %s", Z_STRVAL_P(function_name), zend_get_type_by_const(Z_TYPE_P(object)));
 
                                zval_ptr_dtor_nogc(free_op1);
                                HANDLE_EXCEPTION();
@@ -44409,7 +44409,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_TMPVAR_C
            zend_object *orig_obj = obj;
 
                if (UNEXPECTED(obj->handlers->get_method == NULL)) {
-                       zend_throw_error(zend_ce_error, "Object does not support method calls");
+                       zend_throw_error(NULL, "Object does not support method calls");
 
                        zval_ptr_dtor_nogc(free_op1);
                        HANDLE_EXCEPTION();
@@ -44419,7 +44419,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_TMPVAR_C
                fbc = obj->handlers->get_method(&obj, Z_STR_P(function_name), ((IS_CV == IS_CONST) ? (EX_CONSTANT(opline->op2) + 1) : NULL));
                if (UNEXPECTED(fbc == NULL)) {
                        if (EXPECTED(!EG(exception))) {
-                               zend_throw_error(zend_ce_error, "Call to undefined method %s::%s()", ZSTR_VAL(obj->ce->name), Z_STRVAL_P(function_name));
+                               zend_throw_error(NULL, "Call to undefined method %s::%s()", ZSTR_VAL(obj->ce->name), Z_STRVAL_P(function_name));
                        }
 
                        zval_ptr_dtor_nogc(free_op1);
@@ -44533,7 +44533,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_TMP
        container = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1);
 
        if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
@@ -44670,7 +44670,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_TM
        container = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1);
 
        if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
 
                HANDLE_EXCEPTION();
        }
@@ -45366,7 +45366,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_TMPVAR_TMPVA
        container = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1);
 
        if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
                HANDLE_EXCEPTION();
        }
@@ -45527,7 +45527,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_TMPVAR_T
                        if (UNEXPECTED(EG(exception) != NULL)) {
                                HANDLE_EXCEPTION();
                        }
-                       zend_throw_error(zend_ce_error, "Method name must be a string");
+                       zend_throw_error(NULL, "Method name must be a string");
                        zval_ptr_dtor_nogc(free_op2);
                        zval_ptr_dtor_nogc(EX_VAR(opline->op1.var));
                        HANDLE_EXCEPTION();
@@ -45537,7 +45537,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_TMPVAR_T
        object = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1);
 
        if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED && UNEXPECTED(Z_OBJ_P(object) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                zval_ptr_dtor_nogc(free_op2);
                HANDLE_EXCEPTION();
        }
@@ -45557,7 +45557,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_TMPVAR_T
                                if (UNEXPECTED(EG(exception) != NULL)) {
                                        HANDLE_EXCEPTION();
                                }
-                               zend_throw_error(zend_ce_error, "Call to a member function %s() on %s", Z_STRVAL_P(function_name), zend_get_type_by_const(Z_TYPE_P(object)));
+                               zend_throw_error(NULL, "Call to a member function %s() on %s", Z_STRVAL_P(function_name), zend_get_type_by_const(Z_TYPE_P(object)));
                                zval_ptr_dtor_nogc(free_op2);
                                zval_ptr_dtor_nogc(free_op1);
                                HANDLE_EXCEPTION();
@@ -45573,7 +45573,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_TMPVAR_T
            zend_object *orig_obj = obj;
 
                if (UNEXPECTED(obj->handlers->get_method == NULL)) {
-                       zend_throw_error(zend_ce_error, "Object does not support method calls");
+                       zend_throw_error(NULL, "Object does not support method calls");
                        zval_ptr_dtor_nogc(free_op2);
                        zval_ptr_dtor_nogc(free_op1);
                        HANDLE_EXCEPTION();
@@ -45583,7 +45583,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_TMPVAR_T
                fbc = obj->handlers->get_method(&obj, Z_STR_P(function_name), (((IS_TMP_VAR|IS_VAR) == IS_CONST) ? (EX_CONSTANT(opline->op2) + 1) : NULL));
                if (UNEXPECTED(fbc == NULL)) {
                        if (EXPECTED(!EG(exception))) {
-                               zend_throw_error(zend_ce_error, "Call to undefined method %s::%s()", ZSTR_VAL(obj->ce->name), Z_STRVAL_P(function_name));
+                               zend_throw_error(NULL, "Call to undefined method %s::%s()", ZSTR_VAL(obj->ce->name), Z_STRVAL_P(function_name));
                        }
                        zval_ptr_dtor_nogc(free_op2);
                        zval_ptr_dtor_nogc(free_op1);
@@ -45698,7 +45698,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_TMP
        container = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1);
 
        if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
                HANDLE_EXCEPTION();
        }
@@ -45835,7 +45835,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_TM
        container = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1);
 
        if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED && UNEXPECTED(Z_OBJ_P(container) == NULL)) {
-               zend_throw_error(zend_ce_error, "Using $this when not in object context");
+               zend_throw_error(NULL, "Using $this when not in object context");
                zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));
                HANDLE_EXCEPTION();
        }