mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-11 12:25:53 +00:00
Bug 1283522 - Reps: support -0 grip in number rep. r=linclark
MozReview-Commit-ID: BWvMlbNdckG --HG-- extra : rebase_source : fe9efa84f88e82cb5c0383ef87f071cf34abd85b
This commit is contained in:
parent
ddbe07d2c6
commit
451e3bbbcb
@ -20,11 +20,15 @@ define(function (require, exports, module) {
|
||||
displayName: "Number",
|
||||
|
||||
stringify: function (object) {
|
||||
return (Object.is(object, -0) ? "-0" : String(object));
|
||||
let isNegativeZero = Object.is(object, -0) ||
|
||||
(object.type && object.type == "-0");
|
||||
|
||||
return (isNegativeZero ? "-0" : String(object));
|
||||
},
|
||||
|
||||
render: function () {
|
||||
let value = this.props.object;
|
||||
|
||||
return (
|
||||
ObjectBox({className: "number"},
|
||||
this.stringify(value)
|
||||
@ -34,7 +38,8 @@ define(function (require, exports, module) {
|
||||
});
|
||||
|
||||
function supportsObject(object, type) {
|
||||
return type == "boolean" || type == "number";
|
||||
return type == "boolean" || type == "number" ||
|
||||
(type == "object" && object.type == "-0");
|
||||
}
|
||||
|
||||
// Exports from this module
|
||||
|
@ -21,6 +21,7 @@ window.onload = Task.async(function* () {
|
||||
try {
|
||||
yield testInt();
|
||||
yield testBoolean();
|
||||
yield testNegativeZero();
|
||||
yield testUnsafeInt();
|
||||
} catch(e) {
|
||||
ok(false, "Got an error: " + DevToolsUtils.safeErrorString(e));
|
||||
@ -48,6 +49,17 @@ window.onload = Task.async(function* () {
|
||||
is(renderedComponent.textContent, "false", "Number rep has expected text content for boolean false");
|
||||
}
|
||||
|
||||
function testNegativeZero() {
|
||||
const renderedRep = shallowRenderComponent(Rep, { object: getGripStub("testNegZeroGrip") });
|
||||
is(renderedRep.type, Number.rep, `Rep correctly selects ${Number.rep.displayName} for negative zero value`);
|
||||
|
||||
let renderedComponent = renderComponent(Number.rep, { object: getGripStub("testNegZeroGrip") });
|
||||
is(renderedComponent.textContent, "-0", "Number rep has expected text content for negative zero grip");
|
||||
|
||||
renderedComponent = renderComponent(Number.rep, { object: getGripStub("testNegZeroValue") });
|
||||
is(renderedComponent.textContent, "-0", "Number rep has expected text content for negative zero value");
|
||||
}
|
||||
|
||||
function testUnsafeInt() {
|
||||
const renderedComponent = renderComponent(Number.rep, { object: getGripStub("testUnsafeInt") });
|
||||
is(renderedComponent.textContent, "900719925474099100", "Number rep has expected text content for a long number");
|
||||
@ -64,6 +76,14 @@ window.onload = Task.async(function* () {
|
||||
case "testFalse":
|
||||
return false;
|
||||
|
||||
case "testNegZeroValue":
|
||||
return -0;
|
||||
|
||||
case "testNegZeroGrip":
|
||||
return {
|
||||
"type": "-0"
|
||||
};
|
||||
|
||||
case "testUnsafeInt":
|
||||
return 900719925474099122;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user