Revert bug 1025183 (revs 69373df15281, dd6d84edf08e, 728a5d18bcd9, 71babe0bc84b, c60f9054acf6) for bustage. r=me

This commit is contained in:
Ben Kelly 2014-08-01 14:10:40 -04:00
Родитель 0b3d03bddb
Коммит 93f746a2f6
18 изменённых файлов: 19 добавлений и 250 удалений

Просмотреть файл

@ -29,10 +29,6 @@ DEFINES += -DMSVC_CXX_RUNTIME_DLL=$(MSVC_CXX_RUNTIME_DLL)
endif
endif
ifdef MOZ_DEBUG
DEFINES += -DMOZ_DEBUG=1
endif
ifdef ENABLE_MARIONETTE
DEFINES += -DENABLE_MARIONETTE=1
endif

Просмотреть файл

@ -25,7 +25,6 @@
#include "nsIPermissionManager.h"
#include "nsIPrincipal.h"
#include "nsIXPConnect.h"
#include "nsUTF8Utils.h"
#include "WrapperFactory.h"
#include "xpcprivate.h"
#include "XPCQuickStubs.h"
@ -2162,36 +2161,6 @@ NonVoidByteStringToJsval(JSContext *cx, const nsACString &str,
return true;
}
template<typename T> static void
NormalizeScalarValueStringInternal(JSContext* aCx, T& aString)
{
char16_t* start = aString.BeginWriting();
// Must use const here because we can't pass char** to UTF16CharEnumerator as
// it expects const char**. Unclear why this is illegal...
const char16_t* nextChar = start;
const char16_t* end = aString.Data() + aString.Length();
while (nextChar < end) {
uint32_t enumerated = UTF16CharEnumerator::NextChar(&nextChar, end);
if (enumerated == UCS2_REPLACEMENT_CHAR) {
int32_t lastCharIndex = (nextChar - start) - 1;
start[lastCharIndex] = static_cast<char16_t>(enumerated);
}
}
}
void
NormalizeScalarValueString(JSContext* aCx, nsAString& aString)
{
NormalizeScalarValueStringInternal(aCx, aString);
}
void
NormalizeScalarValueString(JSContext* aCx, binding_detail::FakeString& aString)
{
NormalizeScalarValueStringInternal(aCx, aString);
}
bool
ConvertJSValueToByteString(JSContext* cx, JS::Handle<JS::Value> v,
bool nullable, nsACString& result)

Просмотреть файл

@ -1900,12 +1900,6 @@ ConvertJSValueToString(JSContext* cx, JS::Handle<JS::Value> v,
return AssignJSString(cx, result, s);
}
void
NormalizeScalarValueString(JSContext* aCx, nsAString& aString);
void
NormalizeScalarValueString(JSContext* aCx, binding_detail::FakeString& aString);
bool
ConvertJSValueToByteString(JSContext* cx, JS::Handle<JS::Value> v,
bool nullable, nsACString& result);

Просмотреть файл

@ -4567,7 +4567,7 @@ def getJSToNativeConversionInfo(type, descriptorProvider, failureCode=None,
declArgs=declArgs,
holderArgs=holderArgs)
if type.isDOMString() or type.isScalarValueString():
if type.isDOMString():
assert not isEnforceRange and not isClamp
treatAs = {
@ -4585,17 +4585,11 @@ def getJSToNativeConversionInfo(type, descriptorProvider, failureCode=None,
nullBehavior = treatAs[treatNullAs]
def getConversionCode(varName):
normalizeCode = ""
if type.isScalarValueString():
normalizeCode = "NormalizeScalarValueString(cx, %s);\n" % varName
conversionCode = (
"if (!ConvertJSValueToString(cx, ${val}, %s, %s, %s)) {\n"
"%s"
"}\n"
"%s" % (nullBehavior, undefinedBehavior, varName,
exceptionCodeIndented.define(), normalizeCode))
"}\n" % (nullBehavior, undefinedBehavior, varName,
exceptionCodeIndented.define()))
if defaultValue is None:
return conversionCode
@ -5510,7 +5504,7 @@ def getWrapTemplateForType(type, descriptorProvider, result, successCode,
wrappingCode += wrapAndSetPtr(wrap, failed)
return (wrappingCode, False)
if type.isDOMString() or type.isScalarValueString():
if type.isDOMString():
if type.nullable():
return (wrapAndSetPtr("xpc::StringToJsval(cx, %s, ${jsvalHandle})" % result), False)
else:
@ -5788,7 +5782,7 @@ def getRetvalDeclarationForType(returnType, descriptorProvider,
if returnType.nullable():
result = CGTemplatedType("Nullable", result)
return result, None, None, None
if returnType.isDOMString() or returnType.isScalarValueString():
if returnType.isDOMString():
if isMember:
return CGGeneric("nsString"), "ref", None, None
return CGGeneric("DOMString"), "ref", None, None
@ -8178,7 +8172,7 @@ def getUnionAccessorSignatureType(type, descriptorProvider):
typeName = CGGeneric(type.name)
return CGWrapper(typeName, post=" const &")
if type.isDOMString() or type.isScalarValueString():
if type.isDOMString():
return CGGeneric("const nsAString&")
if type.isByteString():
@ -11804,7 +11798,7 @@ class CGNativeMember(ClassMethod):
return (result.define(),
"%s(%s)" % (result.define(), defaultReturnArg),
"return ${declName};\n")
if type.isDOMString() or type.isScalarValueString():
if type.isDOMString():
if isMember:
# No need for a third element in the isMember case
return "nsString", None, None
@ -11924,7 +11918,7 @@ class CGNativeMember(ClassMethod):
def getArgs(self, returnType, argList):
args = [self.getArg(arg) for arg in argList]
# Now the outparams
if returnType.isDOMString() or returnType.isScalarValueString():
if returnType.isDOMString():
args.append(Argument("nsString&", "aRetVal"))
elif returnType.isByteString():
args.append(Argument("nsCString&", "aRetVal"))
@ -12050,7 +12044,7 @@ class CGNativeMember(ClassMethod):
return type.name, True, True
if type.isDOMString() or type.isScalarValueString():
if type.isDOMString():
if isMember:
declType = "nsString"
else:
@ -13853,7 +13847,7 @@ class CGEventGetter(CGNativeMember):
memberName = CGDictionary.makeMemberName(self.member.identifier.name)
if (type.isPrimitive() and type.tag() in builtinNames) or type.isEnum() or type.isGeckoInterface():
return "return " + memberName + ";\n"
if type.isDOMString() or type.isByteString() or type.isScalarValueString():
if type.isDOMString() or type.isByteString():
return "aRetVal = " + memberName + ";\n"
if type.isSpiderMonkeyInterface() or type.isObject():
return fill(
@ -14227,7 +14221,7 @@ class CGEventClass(CGBindingImplClass):
nativeType = CGGeneric(type.unroll().inner.identifier.name)
if type.nullable():
nativeType = CGTemplatedType("Nullable", nativeType)
elif type.isDOMString() or type.isScalarValueString():
elif type.isDOMString():
nativeType = CGGeneric("nsString")
elif type.isByteString():
nativeType = CGGeneric("nsCString")

Просмотреть файл

@ -1379,7 +1379,6 @@ class IDLType(IDLObject):
'any',
'domstring',
'bytestring',
'scalarvaluestring',
'object',
'date',
'void',
@ -1432,9 +1431,6 @@ class IDLType(IDLObject):
def isDOMString(self):
return False
def isScalarValueString(self):
return False
def isVoid(self):
return self.name == "Void"
@ -1612,9 +1608,6 @@ class IDLNullableType(IDLType):
def isDOMString(self):
return self.inner.isDOMString()
def isScalarValueString(self):
return self.inner.isScalarValueString()
def isFloat(self):
return self.inner.isFloat()
@ -1736,9 +1729,6 @@ class IDLSequenceType(IDLType):
def isDOMString(self):
return False
def isScalarValueString(self):
return False
def isVoid(self):
return False
@ -1993,9 +1983,6 @@ class IDLArrayType(IDLType):
def isDOMString(self):
return False
def isScalarValueString(self):
return False
def isVoid(self):
return False
@ -2091,9 +2078,6 @@ class IDLTypedefType(IDLType, IDLObjectWithIdentifier):
def isDOMString(self):
return self.inner.isDOMString()
def isScalarValueString(self):
return self.inner.isScalarValueString()
def isVoid(self):
return self.inner.isVoid()
@ -2192,9 +2176,6 @@ class IDLWrapperType(IDLType):
def isDOMString(self):
return False
def isScalarValueString(self):
return False
def isVoid(self):
return False
@ -2331,7 +2312,6 @@ class IDLBuiltinType(IDLType):
'any',
'domstring',
'bytestring',
'scalarvaluestring',
'object',
'date',
'void',
@ -2366,7 +2346,6 @@ class IDLBuiltinType(IDLType):
Types.any: IDLType.Tags.any,
Types.domstring: IDLType.Tags.domstring,
Types.bytestring: IDLType.Tags.bytestring,
Types.scalarvaluestring: IDLType.Tags.scalarvaluestring,
Types.object: IDLType.Tags.object,
Types.date: IDLType.Tags.date,
Types.void: IDLType.Tags.void,
@ -2399,8 +2378,7 @@ class IDLBuiltinType(IDLType):
def isString(self):
return self._typeTag == IDLBuiltinType.Types.domstring or \
self._typeTag == IDLBuiltinType.Types.bytestring or \
self._typeTag == IDLBuiltinType.Types.scalarvaluestring
self._typeTag == IDLBuiltinType.Types.bytestring
def isByteString(self):
return self._typeTag == IDLBuiltinType.Types.bytestring
@ -2408,9 +2386,6 @@ class IDLBuiltinType(IDLType):
def isDOMString(self):
return self._typeTag == IDLBuiltinType.Types.domstring
def isScalarValueString(self):
return self._typeTag == IDLBuiltinType.Types.scalarvaluestring
def isInteger(self):
return self._typeTag <= IDLBuiltinType.Types.unsigned_long_long
@ -2563,9 +2538,6 @@ BuiltinTypes = {
IDLBuiltinType.Types.bytestring:
IDLBuiltinType(BuiltinLocation("<builtin type>"), "ByteString",
IDLBuiltinType.Types.bytestring),
IDLBuiltinType.Types.scalarvaluestring:
IDLBuiltinType(BuiltinLocation("<builtin type>"), "ScalarValueString",
IDLBuiltinType.Types.scalarvaluestring),
IDLBuiltinType.Types.object:
IDLBuiltinType(BuiltinLocation("<builtin type>"), "Object",
IDLBuiltinType.Types.object),
@ -2700,13 +2672,6 @@ class IDLValue(IDLObject):
raise WebIDLError("Trying to convert unrestricted value %s to non-unrestricted"
% self.value, [location]);
return self
elif self.type.isString() and type.isScalarValueString():
# Allow ScalarValueStrings to use default value just like
# DOMString. No coercion is required in this case as Codegen.py
# treats ScalarValueString just like DOMString, but with an
# extra normalization step.
assert self.type.isDOMString()
return self
raise WebIDLError("Cannot coerce type %s to type %s." %
(self.type, type), [location])
@ -3869,7 +3834,6 @@ class Tokenizer(object):
"Date": "DATE",
"DOMString": "DOMSTRING",
"ByteString": "BYTESTRING",
"ScalarValueString": "SCALARVALUESTRING",
"any": "ANY",
"boolean": "BOOLEAN",
"byte": "BYTE",
@ -4766,7 +4730,6 @@ class Parser(Tokenizer):
| DATE
| DOMSTRING
| BYTESTRING
| SCALARVALUESTRING
| ANY
| ATTRIBUTE
| BOOLEAN
@ -5039,12 +5002,6 @@ class Parser(Tokenizer):
"""
p[0] = IDLBuiltinType.Types.bytestring
def p_PrimitiveOrStringTypeScalarValueString(self, p):
"""
PrimitiveOrStringType : SCALARVALUESTRING
"""
p[0] = IDLBuiltinType.Types.scalarvaluestring
def p_UnsignedIntegerTypeUnsigned(self, p):
"""
UnsignedIntegerType : UNSIGNED IntegerType

Просмотреть файл

@ -159,8 +159,7 @@ def WebIDLTest(parser, harness):
"object", "Callback", "Callback2", "optional Dict",
"optional Dict2", "sequence<long>", "sequence<short>",
"MozMap<object>", "MozMap<Dict>", "MozMap<long>",
"long[]", "short[]", "Date", "Date?", "any",
"ScalarValueString" ]
"long[]", "short[]", "Date", "Date?", "any" ]
# When we can parse Date and RegExp, we need to add them here.
# Try to categorize things a bit to keep list lengths down
@ -171,7 +170,7 @@ def WebIDLTest(parser, harness):
primitives = numerics + booleans
nonNumerics = allBut(argTypes, numerics)
nonBooleans = allBut(argTypes, booleans)
strings = [ "DOMString", "ByteString", "Enum", "Enum2", "ScalarValueString" ]
strings = [ "DOMString", "ByteString", "Enum", "Enum2" ]
nonStrings = allBut(argTypes, strings)
nonObjects = primitives + strings
objects = allBut(argTypes, nonObjects )
@ -205,7 +204,6 @@ def WebIDLTest(parser, harness):
setDistinguishable("boolean?", allBut(nonBooleans, nullables))
setDistinguishable("DOMString", nonStrings)
setDistinguishable("ByteString", nonStrings)
setDistinguishable("ScalarValueString", nonStrings)
setDistinguishable("Enum", nonStrings)
setDistinguishable("Enum2", nonStrings)
setDistinguishable("Interface", notRelatedInterfaces)

Просмотреть файл

@ -1,36 +0,0 @@
# -*- coding: UTF-8 -*-
import WebIDL
def WebIDLTest(parser, harness):
parser.parse("""
interface TestScalarValueString {
attribute ScalarValueString svs;
};
""")
results = parser.finish();
harness.check(len(results), 1, "Should be one production")
harness.ok(isinstance(results[0], WebIDL.IDLInterface),
"Should be an IDLInterface")
iface = results[0]
harness.check(iface.identifier.QName(), "::TestScalarValueString",
"Interface has the right QName")
harness.check(iface.identifier.name, "TestScalarValueString",
"Interface has the right name")
harness.check(iface.parent, None, "Interface has no parent")
members = iface.members
harness.check(len(members), 1, "Should be one member")
attr = members[0]
harness.ok(isinstance(attr, WebIDL.IDLAttribute), "Should be an IDLAttribute")
harness.check(attr.identifier.QName(), "::TestScalarValueString::svs",
"Attr has correct QName")
harness.check(attr.identifier.name, "svs", "Attr has correct name")
harness.check(str(attr.type), "ScalarValueString",
"Attr type is the correct name")
harness.ok(attr.type.isScalarValueString(), "Should be ScalarValueString type")
harness.ok(attr.type.isString(), "Should be String collective type")
harness.ok(not attr.type.isDOMString(), "Should be not be DOMString type")

Просмотреть файл

@ -63,7 +63,6 @@ def WebIDLTest(parser, harness):
"octet",
"DOMString",
"ByteString",
"ScalarValueString",
#"sequence<float>",
"object",
"ArrayBuffer",

Просмотреть файл

@ -466,7 +466,6 @@ public:
void PassOptionalNullableString(const Optional<nsAString>&);
void PassOptionalNullableStringWithDefaultValue(const nsAString&);
void PassVariadicString(const Sequence<nsString>&);
void ReceiveString(DOMString&);
// ByteString types
void PassByteString(const nsCString&);
@ -475,16 +474,6 @@ public:
void PassOptionalNullableByteString(const Optional<nsCString>&);
void PassVariadicByteString(const Sequence<nsCString>&);
// ScalarValueString types
void PassSVS(const nsAString&);
void PassNullableSVS(const nsAString&);
void PassOptionalSVS(const Optional<nsAString>&);
void PassOptionalSVSWithDefaultValue(const nsAString&);
void PassOptionalNullableSVS(const Optional<nsAString>&);
void PassOptionalNullableSVSWithDefaultValue(const nsAString&);
void PassVariadicSVS(const Sequence<nsString>&);
void ReceiveSVS(DOMString&);
// Enumerated types
void PassEnum(TestEnum);
void PassNullableEnum(const Nullable<TestEnum>&);
@ -602,7 +591,6 @@ public:
void PassUnionWithMozMap(const StringMozMapOrString&);
void PassUnionWithMozMapAndSequence(const StringMozMapOrStringSequence&);
void PassUnionWithSequenceAndMozMap(const StringSequenceOrStringMozMap&);
void PassUnionWithSVS(const ScalarValueStringOrLong&);
#endif
void PassNullableUnion(JSContext*, const Nullable<ObjectOrLong>&);
void PassOptionalUnion(JSContext*, const Optional<ObjectOrLong>&);

Просмотреть файл

@ -423,7 +423,6 @@ interface TestInterface {
void passOptionalNullableString(optional DOMString? arg);
void passOptionalNullableStringWithDefaultValue(optional DOMString? arg = null);
void passVariadicString(DOMString... arg);
DOMString receiveString();
// ByteString types
void passByteString(ByteString arg);
@ -432,16 +431,6 @@ interface TestInterface {
void passOptionalNullableByteString(optional ByteString? arg);
void passVariadicByteString(ByteString... arg);
// ScalarValueString types
void passSVS(ScalarValueString arg);
void passNullableSVS(ScalarValueString? arg);
void passOptionalSVS(optional ScalarValueString arg);
void passOptionalSVSWithDefaultValue(optional ScalarValueString arg = "abc");
void passOptionalNullableSVS(optional ScalarValueString? arg);
void passOptionalNullableSVSWithDefaultValue(optional ScalarValueString? arg = null);
void passVariadicSVS(ScalarValueString... arg);
ScalarValueString receiveSVS();
// Enumerated types
void passEnum(TestEnum arg);
void passNullableEnum(TestEnum? arg);
@ -544,7 +533,6 @@ interface TestInterface {
void passUnionWithMozMap((MozMap<DOMString> or DOMString) arg);
void passUnionWithMozMapAndSequence((MozMap<DOMString> or sequence<DOMString>) arg);
void passUnionWithSequenceAndMozMap((sequence<DOMString> or MozMap<DOMString>) arg);
void passUnionWithSVS((ScalarValueString or long) arg);
#endif
void passUnionWithNullable((object? or long) arg);
void passNullableUnion((object or long)? arg);

Просмотреть файл

@ -325,16 +325,6 @@ interface TestExampleInterface {
void passVariadicByteString(ByteString... arg);
void passUnionByteString((ByteString or long) arg);
// ScalarValueString types
void passSVS(ScalarValueString arg);
void passNullableSVS(ScalarValueString? arg);
void passOptionalSVS(optional ScalarValueString arg);
void passOptionalSVSWithDefaultValue(optional ScalarValueString arg = "abc");
void passOptionalNullableSVS(optional ScalarValueString? arg);
void passOptionalNullableSVSWithDefaultValue(optional ScalarValueString? arg = null);
void passVariadicSVS(ScalarValueString... arg);
ScalarValueString receiveSVS();
// Enumerated types
void passEnum(TestEnum arg);
void passNullableEnum(TestEnum? arg);
@ -431,11 +421,9 @@ interface TestExampleInterface {
void passUnion21((MozMap<long> or long) arg);
void passUnion22((MozMap<object> or long) arg);
void passUnionWithCallback((EventHandler or long) arg);
void passUnionWithByteString((ByteString or long) arg);
void passUnionWithMozMap((MozMap<DOMString> or DOMString) arg);
void passUnionWithMozMapAndSequence((MozMap<DOMString> or sequence<DOMString>) arg);
void passUnionWithSequenceAndMozMap((sequence<DOMString> or MozMap<DOMString>) arg);
void passUnionWithSVS((ScalarValueString or long) arg);
#endif
void passUnionWithNullable((object? or long) arg);
void passNullableUnion((object or long)? arg);

Просмотреть файл

@ -45,9 +45,7 @@ TestInterfaceJS.prototype = {
pingPongAny: function(any) { checkGlobal(any); return any; },
pingPongObject: function(obj) { checkGlobal(obj); return obj; },
getCallerPrincipal: function() { return Cu.getWebIDLCallerPrincipal().origin; },
convertSVS: function(svs) { return svs; }
getCallerPrincipal: function() { return Cu.getWebIDLCallerPrincipal().origin; }
};
this.NSGetFactory = XPCOMUtils.generateNSGetFactory([TestInterfaceJS])

Просмотреть файл

@ -348,16 +348,6 @@ interface TestJSImplInterface {
void passVariadicByteString(ByteString... arg);
void PassUnionByteString((ByteString or long) arg);
// ScalarValueString types
void passSVS(ScalarValueString arg);
void passNullableSVS(ScalarValueString? arg);
void passOptionalSVS(optional ScalarValueString arg);
void passOptionalSVSWithDefaultValue(optional ScalarValueString arg = "abc");
void passOptionalNullableSVS(optional ScalarValueString? arg);
void passOptionalNullableSVSWithDefaultValue(optional ScalarValueString? arg = null);
void passVariadicSVS(ScalarValueString... arg);
ScalarValueString receiveSVS();
// Enumerated types
void passEnum(MyTestEnum arg);
void passNullableEnum(MyTestEnum? arg);
@ -455,11 +445,9 @@ interface TestJSImplInterface {
void passUnion21((MozMap<long> or long) arg);
void passUnion22((MozMap<object> or long) arg);
void passUnionWithCallback((EventHandler or long) arg);
void passUnionWithByteString((ByteString or long) arg);
void passUnionWithMozMap((MozMap<DOMString> or DOMString) arg);
void passUnionWithMozMapAndSequence((MozMap<DOMString> or sequence<DOMString>) arg);
void passUnionWithSequenceAndMozMap((sequence<DOMString> or MozMap<DOMString>) arg);
void passUnionWithSVS((ScalarValueString or long) arg);
#endif
void passUnionWithNullable((object? or long) arg);
void passNullableUnion((object or long)? arg);

Просмотреть файл

@ -40,8 +40,6 @@ skip-if = (toolkit == 'gonk' && debug) #debug-only failure; bug 926547
[test_named_getter_enumerability.html]
[test_Object.prototype_props.html]
[test_queryInterface.html]
[test_scalarvaluestring.html]
skip-if = debug == false
[test_sequence_wrapping.html]
[test_throwing_method_noDCE.html]
[test_treat_non_object_as_null.html]

Просмотреть файл

@ -1,41 +0,0 @@
<!-- Any copyright is dedicated to the Public Domain.
- http://creativecommons.org/publicdomain/zero/1.0/ -->
<!DOCTYPE HTML>
<html>
<head>
<title>Test ScalarValueString</title>
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
</head>
<body>
<script class="testbody" type="application/javascript">
SimpleTest.waitForExplicitFinish();
SpecialPowers.pushPrefEnv({set: [['dom.expose_test_interfaces', true]]}, function() {
var testInterfaceJS = new TestInterfaceJS();
ok(testInterfaceJS, "got a TestInterfaceJS object");
// For expected values, see algorithm definition here:
// http://heycam.github.io/webidl/#dfn-obtain-unicode
var testList = [
{ string: "foo",
expected: "foo" },
{ string: "This is U+2070E: \ud841\udf0e",
expected: "This is U+2070E: \ud841\udf0e" },
{ string: "Missing low surrogate: \ud841",
expected: "Missing low surrogate: \ufffd" },
{ string: "Missing low surrogate with trailer: \ud841!!",
expected: "Missing low surrogate with trailer: \ufffd!!" },
{ string: "Missing high surrogate: \udf0e",
expected: "Missing high surrogate: \ufffd" },
{ string: "Missing high surrogate with trailer: \udf0e!!",
expected: "Missing high surrogate with trailer: \ufffd!!" },
{ string: "U+2070E after malformed: \udf0e\ud841\udf0e",
expected: "U+2070E after malformed: \ufffd\ud841\udf0e" }
];
testList.forEach(function(test) {
is(testInterfaceJS.convertSVS(test.string), test.expected, "Convert '" + test.string + "'");
});
SimpleTest.finish();
});
</script>
</body>
</html>

Просмотреть файл

@ -17,6 +17,4 @@ interface TestInterfaceJS {
// For testing bug 968335.
DOMString getCallerPrincipal();
DOMString convertSVS(ScalarValueString svs);
};

Просмотреть файл

@ -24,10 +24,6 @@ DEFINES += \
DEFINES += -DJAREXT=
DEFINES += -DMOZ_CHILD_PROCESS_NAME=$(MOZ_CHILD_PROCESS_NAME)
ifdef MOZ_DEBUG
DEFINES += -DMOZ_DEBUG=1
endif
ifdef MOZ_PKG_MANIFEST_P
MOZ_PKG_MANIFEST = package-manifest
endif

Просмотреть файл

@ -11,7 +11,6 @@
// use XPCOM assertion/debugging macros, etc.
#include "nscore.h"
#include "mozilla/Assertions.h"
#include "mozilla/SSE.h"
#include "nsCharTraits.h"
@ -168,11 +167,6 @@ private:
* Extract the next UCS-4 character from the buffer and return it. The
* pointer passed in is advanced to the start of the next character in the
* buffer. If non-null, the err parameter is filled in if an error occurs.
*
* If an error occurs that causes UCS2_REPLACEMENT_CHAR to be returned, then
* the buffer will be updated to move only a single UCS-2 character.
*
* Any other error returns 0 and does not move the buffer position.
*/
@ -265,7 +259,10 @@ public:
return 0xFFFD;
}
MOZ_ASSERT_UNREACHABLE("Impossible UCS-2 character value.");
if (aErr) {
*aErr = true;
}
return 0;
}
};