You can "get rid of this warning" by encoding your strings:
ExternalInterface.call("test", encodeURIComponent("\\"));
JS:
function test(encoded) {
var decoded = decodeURIComponent(encoded);
}
EDIT: To be clear, the warning only shows up for strings that contain certain escaped characters, like slashes. You do not need to encode other data types, like boolean, number, integer, etc.
This warning isn't really a problem, though, it's just telling you that certain characters you are using are escaped differently than they used to be.
Reply to your Update
This code works correct, but why I'm still receiving this warning?
Yes, like I said, it's expected to work without extra encoding. The warning is not telling you there's a problem, it's simply warning you that certain characters are escaped in a way that older player targets escape differently (or not at all). If that doesn't mean anything to you, then the warning doesn't mean anything to you either.
Your object example can be encoded this way:
var a:Object = {test:"\\"};
ExternalInterface.call("logFromFlash", encodeURIComponent(JSON.stringify(a)));
JS:
function logFromFlash(encoded) {
var object = JSON.parse(decodeURIComponent(encoded));
console.log(object); // Object {test: "\"}
}
Or you could encode just the specific string properties that might contain slashes, if you have that foreknowledge.
Again, is all this encoding and decoding worth doing just to hide a harmless warning? Not in my opinion, but it's up to you.