diff --git a/build/dummy/dummy.msbuildproj b/build/dummy/dummy.msbuildproj
index a0a5277f52..3ada67aece 100644
--- a/build/dummy/dummy.msbuildproj
+++ b/build/dummy/dummy.msbuildproj
@@ -9,6 +9,7 @@
+
diff --git a/build/update-cache.ps1 b/build/update-cache.ps1
index a323198be5..f91f988c61 100644
--- a/build/update-cache.ps1
+++ b/build/update-cache.ps1
@@ -13,7 +13,7 @@ $defaultArgs = "/p:VersionPrefix=$version,VersionSuffix=$suffix"
## Delete old nuget packages
Write-Host -f green "Deleting '$version-$suffix' packages from '$packagesSource' ..."
-@("Peachpie.Runtime", "Peachpie.Library", "Peachpie.Library.Scripting", "Peachpie.Library.MySql", "Peachpie.Library.MsSql", "Peachpie.Library.Graphics", "Peachpie.Library.Network", "Peachpie.Library.PDO", "Peachpie.Library.XmlDom", "Peachpie.App", "Peachpie.CodeAnalysis", "Peachpie.AspNetCore.Web", "Peachpie.RequestHandler", "Peachpie.AspNetCore.Mvc", "Peachpie.NET.Sdk", "Peachpie.Library.PDO.MySql", "Peachpie.Library.PDO.Sqlite", "Peachpie.Library.SqlSrv") | % {
+@("Peachpie.Runtime", "Peachpie.Library", "Peachpie.Library.Scripting", "Peachpie.Library.MySql", "Peachpie.Library.MsSql", "Peachpie.Library.Graphics", "Peachpie.Library.Network", "Peachpie.Library.PDO", "Peachpie.Library.XmlDom", "Peachpie.App", "Peachpie.CodeAnalysis", "Peachpie.AspNetCore.Web", "Peachpie.RequestHandler", "Peachpie.AspNetCore.Mvc", "Peachpie.NET.Sdk", "Peachpie.Library.PDO.PgSQL", "Peachpie.Library.PDO.MySql", "Peachpie.Library.PDO.Sqlite", "Peachpie.Library.SqlSrv") | % {
$installedFolder = "$packagesSource/$_/$version-$suffix"
if (Test-Path $installedFolder) {
Remove-Item -Recurse -Force $installedFolder
diff --git a/src/Peachpie.Library.XmlDom/DOMNode.cs b/src/Peachpie.Library.XmlDom/DOMNode.cs
index e3cb2bdb35..fc1b7e5bca 100644
--- a/src/Peachpie.Library.XmlDom/DOMNode.cs
+++ b/src/Peachpie.Library.XmlDom/DOMNode.cs
@@ -1,6 +1,8 @@
using System;
using System.Collections.Generic;
+using System.IO;
using System.Linq;
+using System.Security.Cryptography.Xml;
using System.Text;
using System.Xml;
using Pchp.Core;
@@ -631,11 +633,19 @@ public PhpString C14N(
PhpArray xpath = null,
PhpArray ns_prefixes = null)
{
- var transform = new System.Security.Cryptography.Xml.XmlDsigC14NTransform();
- transform.LoadInput(XmlNode.GetXmlDocument());
- var stream = (System.IO.MemoryStream)transform.GetOutput(typeof(System.IO.Stream));
+ XmlNodeReader reader = new XmlNodeReader(XmlNode);
+ Stream inputStream = new MemoryStream();
+ XmlWriter writer = new XmlTextWriter(inputStream, Encoding.UTF8);
- return new PhpString(stream.ToArray());
+ writer.WriteNode(reader, false);
+ writer.Flush();
+
+ inputStream.Position = 0;
+ XmlDsigC14NTransform transform = new XmlDsigC14NTransform();
+ transform.LoadInput(inputStream);
+
+ System.IO.MemoryStream outputStream = (System.IO.MemoryStream)transform.GetOutput(typeof(System.IO.Stream));
+ return new PhpString(outputStream.ToArray());
}
///
diff --git a/src/Peachpie.Runtime/Operators.cs b/src/Peachpie.Runtime/Operators.cs
index 33c4504d11..da0bd0c815 100644
--- a/src/Peachpie.Runtime/Operators.cs
+++ b/src/Peachpie.Runtime/Operators.cs
@@ -2411,8 +2411,13 @@ public static PhpValue Eval(Context ctx, PhpArray locals, object @this, RuntimeT
},
code);
- //
- return script.Evaluate(ctx, locals, @this, self);
+ try {
+ return script.Evaluate(ctx, locals, @this, self);
+
+ } catch (Pchp.Core.PhpFatalErrorException e) {
+ PhpException.Throw(PhpError.Warning, e.Message);
+ return false;
+ }
}
#endregion