summaryrefslogtreecommitdiff
path: root/js
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2017-07-06 00:18:03 +0200
committerBenoit Foucher <benoit@zeroc.com>2017-07-06 00:18:03 +0200
commit54d8f3fb0d3d53f851051980f1bc941c4e39a60f (patch)
tree0d8259f0cd48b3ba0a3792556821aa41d6f718a7 /js
parentFixed ICE-8223 - renamed cloneImpl to _iceCloneImpl (diff)
downloadice-54d8f3fb0d3d53f851051980f1bc941c4e39a60f.tar.bz2
ice-54d8f3fb0d3d53f851051980f1bc941c4e39a60f.tar.xz
ice-54d8f3fb0d3d53f851051980f1bc941c4e39a60f.zip
Added Ice::UserException::ice_getSlicedData and Ice::UnkownSlicedValue::ice_id methods
Diffstat (limited to 'js')
-rw-r--r--js/src/Ice/Exception.js11
-rw-r--r--js/src/Ice/UnknownSlicedValue.js8
-rw-r--r--js/test/Ice/slicing/exceptions/Client.js41
-rw-r--r--js/test/Ice/slicing/objects/Client.js4
4 files changed, 58 insertions, 6 deletions
diff --git a/js/src/Ice/Exception.js b/js/src/Ice/Exception.js
index 5e3bb55b7fd..6020e644862 100644
--- a/js/src/Ice/Exception.js
+++ b/js/src/Ice/Exception.js
@@ -177,6 +177,11 @@ class UserException extends Exception
return "::Ice::UserException";
}
+ ice_getSlicedData()
+ {
+ return null;
+ }
+
_write(os)
{
os.startException(null);
@@ -273,8 +278,14 @@ const readPreserved = function(is)
this._slicedData = is.endException(true);
};
+const ice_getSlicedData = function()
+{
+ return this._slicedData;
+}
+
Ice.Slice.PreservedUserException = function(ex)
{
+ ex.prototype.ice_getSlicedData = ice_getSlicedData;
ex.prototype._write = writePreserved;
ex.prototype._read = readPreserved;
};
diff --git a/js/src/Ice/UnknownSlicedValue.js b/js/src/Ice/UnknownSlicedValue.js
index ae059194f7e..8449934bf45 100644
--- a/js/src/Ice/UnknownSlicedValue.js
+++ b/js/src/Ice/UnknownSlicedValue.js
@@ -63,14 +63,14 @@ class UnknownSlicedValue extends Ice.Value
this._unknownTypeId = unknownTypeId;
}
- getUnknownTypeId()
+ ice_getSlicedData()
{
- return this._unknownTypeId;
+ return this._slicedData;
}
- ice_getSlicedData()
+ ice_id()
{
- return this._slicedData;
+ return this._unknownTypeId;
}
_iceWrite(os)
diff --git a/js/test/Ice/slicing/exceptions/Client.js b/js/test/Ice/slicing/exceptions/Client.js
index 0646d1d2299..4d04b0960ad 100644
--- a/js/test/Ice/slicing/exceptions/Client.js
+++ b/js/test/Ice/slicing/exceptions/Client.js
@@ -247,6 +247,47 @@
{
test(false);
}
+
+ out.write("preserved exceptions...")
+ return prx.unknownPreservedAsBase();
+ }
+ ).then(
+ failCB,
+ ex =>
+ {
+ if(prx.ice_getEncodingVersion().equals(Ice.Encoding_1_0))
+ {
+ test(ex.ice_getSlicedData() === null);
+ }
+ else
+ {
+ let slicedData = ex.ice_getSlicedData();
+ test(slicedData !== null);
+ test(slicedData.slices.length == 2);
+ test(slicedData.slices[1].typeId == "::Test::SPreserved1");
+ test(slicedData.slices[0].typeId == "::Test::SPreserved2");
+ }
+
+ return prx.unknownPreservedAsKnownPreserved();
+ }
+ ).then(
+ failCB,
+ ex =>
+ {
+ test(ex.kp == "preserved");
+ if(prx.ice_getEncodingVersion().equals(Ice.Encoding_1_0))
+ {
+ test(ex.ice_getSlicedData() === null);
+ }
+ else
+ {
+ let slicedData = ex.ice_getSlicedData();
+ test(slicedData !== null);
+ test(slicedData.slices.length == 2);
+ test(slicedData.slices[1].typeId == "::Test::SPreserved1");
+ test(slicedData.slices[0].typeId == "::Test::SPreserved2");
+ }
+
out.writeLine("ok");
return prx.shutdown();
}
diff --git a/js/test/Ice/slicing/objects/Client.js b/js/test/Ice/slicing/objects/Client.js
index c17c79613c8..fdf0ff002d9 100644
--- a/js/test/Ice/slicing/objects/Client.js
+++ b/js/test/Ice/slicing/objects/Client.js
@@ -136,8 +136,8 @@
{
test(!prx.ice_getEncodingVersion().equals(Ice.Encoding_1_0));
test(obj instanceof Ice.UnknownSlicedValue);
- test(obj.getUnknownTypeId() == "::Test::SUnknown");
- test(obj.ice_getSlicedData() != null);
+ test(obj.ice_id() == "::Test::SUnknown");
+ test(obj.ice_getSlicedData() !== null);
return prx.checkSUnknown(obj);
},
ex =>