mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 977500: Add NodeList to the list of classes whose keys should not be sorted in VariablesView. r=past
--HG-- extra : rebase_source : 4801e884d8b5fb8b4aecd1733439c2d63ccdf456
This commit is contained in:
parent
cf437cee16
commit
7a8b5ac404
@ -1039,7 +1039,8 @@ VariablesView.NON_SORTABLE_CLASSES = [
|
||||
"Int32Array",
|
||||
"Uint32Array",
|
||||
"Float32Array",
|
||||
"Float64Array"
|
||||
"Float64Array",
|
||||
"NodeList"
|
||||
];
|
||||
|
||||
/**
|
||||
|
@ -143,6 +143,7 @@ support-files =
|
||||
[browser_console_optimized_out_vars.js]
|
||||
[browser_console_private_browsing.js]
|
||||
[browser_console_variables_view.js]
|
||||
[browser_console_variables_view_dont_sort_non_sortable_classes_properties.js]
|
||||
[browser_console_variables_view_while_debugging.js]
|
||||
[browser_console_variables_view_while_debugging_and_inspecting.js]
|
||||
[browser_eval_in_debugger_stackframe.js]
|
||||
|
@ -0,0 +1,101 @@
|
||||
/* -*- js2-basic-offset: 2; indent-tabs-mode: nil; -*- */
|
||||
/* vim: set ts=2 et sw=2 tw=80: */
|
||||
/* Any copyright is dedicated to the Public Domain.
|
||||
http://creativecommons.org/publicdomain/zero/1.0/ */
|
||||
"use strict";
|
||||
|
||||
/* Test case that ensures Array and other list types are not sorted in variables
|
||||
* view.
|
||||
*
|
||||
* The tested types are:
|
||||
* - Array
|
||||
* - Int8Array
|
||||
* - Int16Array
|
||||
* - Int32Array
|
||||
* - Uint8Array
|
||||
* - Uint16Array
|
||||
* - Uint32Array
|
||||
* - Uint8ClampedArray
|
||||
* - Float32Array
|
||||
* - Float64Array
|
||||
* - NodeList
|
||||
*/
|
||||
|
||||
function test() {
|
||||
const TEST_URI = "data:text/html;charset=utf-8, \
|
||||
<html> \
|
||||
<head> \
|
||||
<title>Test document for bug 977500</title> \
|
||||
</head> \
|
||||
<body> \
|
||||
<div></div> \
|
||||
<div></div> \
|
||||
<div></div> \
|
||||
<div></div> \
|
||||
<div></div> \
|
||||
<div></div> \
|
||||
<div></div> \
|
||||
<div></div> \
|
||||
<div></div> \
|
||||
<div></div> \
|
||||
<div></div> \
|
||||
<div></div> \
|
||||
</body> \
|
||||
</html>";
|
||||
|
||||
let jsterm;
|
||||
|
||||
function* runner() {
|
||||
const typedArrayTypes = ["Int8Array", "Int16Array", "Int32Array",
|
||||
"Uint8Array", "Uint16Array", "Uint32Array",
|
||||
"Uint8ClampedArray", "Float32Array",
|
||||
"Float64Array"];
|
||||
|
||||
const {tab} = yield loadTab(TEST_URI);
|
||||
const hud = yield openConsole(tab);
|
||||
jsterm = hud.jsterm;
|
||||
|
||||
// Create an ArrayBuffer of 80 bytes to test TypedArrays. 80 bytes is
|
||||
// enough to get 10 items in all different TypedArrays.
|
||||
jsterm.execute("let buf = ArrayBuffer(80);");
|
||||
|
||||
// Array
|
||||
yield testNotSorted("Array(0,1,2,3,4,5,6,7,8,9,10)");
|
||||
// NodeList
|
||||
yield testNotSorted("document.querySelectorAll('div')");
|
||||
|
||||
// Typed arrays.
|
||||
for (let type of typedArrayTypes) {
|
||||
yield testNotSorted(type + "(buf)");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* A helper that ensures the properties are not sorted when an object
|
||||
* specified by aObject is inspected.
|
||||
*
|
||||
* @param string aObject
|
||||
* A string that, once executed, creates and returns the object to
|
||||
* inspect.
|
||||
*/
|
||||
function testNotSorted(aObject) {
|
||||
info("Testing " + aObject);
|
||||
let deferred = promise.defer();
|
||||
jsterm.once("variablesview-fetched", (_, aVar) => deferred.resolve(aVar));
|
||||
jsterm.execute("inspect(" + aObject + ")");
|
||||
|
||||
let variableScope = yield deferred.promise;
|
||||
ok(variableScope, "Variables view opened");
|
||||
|
||||
// If the properties are sorted: keys = ["0", "1", "10",...] <- incorrect
|
||||
// If the properties are not sorted: keys = ["0", "1", "2",...] <- correct
|
||||
let keyIterator = variableScope._store.keys();
|
||||
is(keyIterator.next().value, "0", "First key is 0");
|
||||
is(keyIterator.next().value, "1", "Second key is 1");
|
||||
|
||||
// If the properties are sorted, the next one will be 10.
|
||||
is(keyIterator.next().value, "2", "Third key is 2, not 10");
|
||||
}
|
||||
|
||||
Task.spawn(runner).then(finishTest);
|
||||
}
|
Loading…
Reference in New Issue
Block a user