diff options
author | Benoit Foucher <benoit@zeroc.com> | 2017-07-06 00:18:03 +0200 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2017-07-06 00:18:03 +0200 |
commit | 54d8f3fb0d3d53f851051980f1bc941c4e39a60f (patch) | |
tree | 0d8259f0cd48b3ba0a3792556821aa41d6f718a7 /js | |
parent | Fixed ICE-8223 - renamed cloneImpl to _iceCloneImpl (diff) | |
download | ice-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.js | 11 | ||||
-rw-r--r-- | js/src/Ice/UnknownSlicedValue.js | 8 | ||||
-rw-r--r-- | js/test/Ice/slicing/exceptions/Client.js | 41 | ||||
-rw-r--r-- | js/test/Ice/slicing/objects/Client.js | 4 |
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 => |