return_value = getThis();
if (datefmt_ctor(INTERNAL_FUNCTION_PARAM_PASSTHRU, 1) == FAILURE) {
if (!EG(exception)) {
- zend_throw_exception(IntlException_ce_ptr, "Constructor failed", 0);
+ zend_throw_exception(IntlException_ce_ptr, ZSTR_VAL(intl_error_get_message(NULL)), intl_error_get_code(NULL));
}
}
zend_restore_error_handling(&error_handling);
--- /dev/null
+--TEST--
+IntlDateFormat constructor failure
+--INI--
+date.timezone=Mars/Utopia_Planitia
+--SKIPIF--
+<?php
+extension_loaded('intl') || print 'skip';
+--FILE--
+<?php
+
+try {
+ new \IntlDateFormatter('en_US', \IntlDateFormatter::FULL, \IntlDateFormatter::FULL);
+ echo "Wat?";
+} catch (\IntlException $e) {
+ echo $e->getMessage();
+}
+--EXPECT--
+IntlDateFormatter::__construct(): Invalid date.timezone value 'Mars/Utopia_Planitia', we selected the timezone 'UTC' for now.