50 lines
1.2 KiB
JavaScript
50 lines
1.2 KiB
JavaScript
description(
|
|
"This tests Strict Equality Comparison results with Symbols."
|
|
);
|
|
|
|
var symbol = Symbol("Cocoa");
|
|
var symbolObject = Object(symbol);
|
|
// Test Abstract Relational Comparison.
|
|
var relationalOperators = [
|
|
"===", "!=="
|
|
];
|
|
var object = {};
|
|
var array = [];
|
|
var date = new Date();
|
|
|
|
function Pair(key, result) {
|
|
return [ key, result ];
|
|
}
|
|
|
|
relationalOperators.forEach(function (op) {
|
|
var targets = [
|
|
Pair("42", false),
|
|
Pair("NaN", false),
|
|
Pair("Infinity", false),
|
|
Pair("true", false),
|
|
Pair("false", false),
|
|
Pair("null", false),
|
|
Pair("undefined", false),
|
|
Pair("'Cappuccino'", false),
|
|
Pair("symbol", true),
|
|
Pair("Symbol.iterator", false),
|
|
Pair("object", false),
|
|
Pair("array", false),
|
|
Pair("date", false),
|
|
Pair("symbolObject", false),
|
|
Pair("Symbol('Cocoa')", false),
|
|
];
|
|
|
|
targets.forEach(function (pair) {
|
|
var target = pair[0];
|
|
var result = pair[1];
|
|
if (op === "!==") {
|
|
result = !result;
|
|
}
|
|
shouldBe(target + " " + op + " symbol", String(result));
|
|
shouldBe("symbol " + op + " " + target, String(result));
|
|
});
|
|
});
|
|
|
|
successfullyParsed = true;
|