Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(115)

Side by Side Diff: chrome/browser/resources/chromeos/chromevox/speech_rules/mathml_store_util.js

Issue 924083004: Shorten Closure template notation from Array.<*> to Array<*> in cvox. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 /** 5 /**
6 * @fileoverview Utility functions for mathml and mathjax rule store. 6 * @fileoverview Utility functions for mathml and mathjax rule store.
7 */ 7 */
8 8
9 goog.provide('cvox.MathmlStoreUtil'); 9 goog.provide('cvox.MathmlStoreUtil');
10 10
11 goog.require('cvox.MathUtil'); 11 goog.require('cvox.MathUtil');
12 goog.require('cvox.TraverseMath'); 12 goog.require('cvox.TraverseMath');
13 13
14 14
15 /** 15 /**
16 * Retrieves MathML sub element with same id as MathJax node. 16 * Retrieves MathML sub element with same id as MathJax node.
17 * @param {!Node} inner A node internal to a MathJax node. 17 * @param {!Node} inner A node internal to a MathJax node.
18 * @return {Node} The internal MathML node corresponding to the MathJax node. 18 * @return {Node} The internal MathML node corresponding to the MathJax node.
19 */ 19 */
20 cvox.MathmlStoreUtil.matchMathjaxToMathml = function(inner) { 20 cvox.MathmlStoreUtil.matchMathjaxToMathml = function(inner) {
21 var mml = cvox.TraverseMath.getInstance().activeMathmlHost; 21 var mml = cvox.TraverseMath.getInstance().activeMathmlHost;
22 return mml.querySelector('#' + inner.id); 22 return mml.querySelector('#' + inner.id);
23 }; 23 };
24 24
25 25
26 /** 26 /**
27 * Retrieve an extender symbol for a given node. 27 * Retrieve an extender symbol for a given node.
28 * @param {!Node} jax The MathJax node. 28 * @param {!Node} jax The MathJax node.
29 * @return {Array.<Node>} The resulting node list. 29 * @return {Array<Node>} The resulting node list.
30 */ 30 */
31 cvox.MathmlStoreUtil.retrieveMathjaxExtender = function(jax) { 31 cvox.MathmlStoreUtil.retrieveMathjaxExtender = function(jax) {
32 var ext = cvox.MathmlStoreUtil.matchMathjaxToMathml(jax); 32 var ext = cvox.MathmlStoreUtil.matchMathjaxToMathml(jax);
33 if (ext) { 33 if (ext) {
34 return [ext]; 34 return [ext];
35 } 35 }
36 return []; 36 return [];
37 }; 37 };
38 38
39 39
40 /** 40 /**
41 * Retrieve an extender symbol for a given node. 41 * Retrieve an extender symbol for a given node.
42 * @param {!Node} jax The MathJax node. 42 * @param {!Node} jax The MathJax node.
43 * @return {Array.<Node>} The resulting node list. 43 * @return {Array<Node>} The resulting node list.
44 */ 44 */
45 cvox.MathmlStoreUtil.retrieveMathjaxLeaf = function(jax) { 45 cvox.MathmlStoreUtil.retrieveMathjaxLeaf = function(jax) {
46 var leaf = cvox.MathmlStoreUtil.matchMathjaxToMathml(jax); 46 var leaf = cvox.MathmlStoreUtil.matchMathjaxToMathml(jax);
47 if (leaf) { 47 if (leaf) {
48 return [leaf]; 48 return [leaf];
49 } 49 }
50 return []; 50 return [];
51 }; 51 };
52 52
53 53
54 /** 54 /**
55 * For a given MathJax node it returns the equivalent MathML node, 55 * For a given MathJax node it returns the equivalent MathML node,
56 * if it is of the right tag. 56 * if it is of the right tag.
57 * @param {!Node} jax The Mathjax node. 57 * @param {!Node} jax The Mathjax node.
58 * @param {!string} tag The required tag. 58 * @param {!string} tag The required tag.
59 * @return {Array.<Node>} The resulting node list. 59 * @return {Array<Node>} The resulting node list.
60 */ 60 */
61 cvox.MathmlStoreUtil.checkMathjaxTag = function(jax, tag) { 61 cvox.MathmlStoreUtil.checkMathjaxTag = function(jax, tag) {
62 var node = cvox.MathmlStoreUtil.matchMathjaxToMathml(jax); 62 var node = cvox.MathmlStoreUtil.matchMathjaxToMathml(jax);
63 if (node && node.tagName.toUpperCase() == tag) { 63 if (node && node.tagName.toUpperCase() == tag) {
64 return [node]; 64 return [node];
65 } 65 }
66 return []; 66 return [];
67 }; 67 };
68 68
69 69
70 /** 70 /**
71 * Returns MathML node if MathJax is munder. 71 * Returns MathML node if MathJax is munder.
72 * @param {!Node} jax The Mathjax node. 72 * @param {!Node} jax The Mathjax node.
73 * @return {Array.<Node>} The resulting node list. 73 * @return {Array<Node>} The resulting node list.
74 */ 74 */
75 cvox.MathmlStoreUtil.checkMathjaxMunder = function(jax) { 75 cvox.MathmlStoreUtil.checkMathjaxMunder = function(jax) {
76 return cvox.MathmlStoreUtil.checkMathjaxTag(jax, 'MUNDER'); 76 return cvox.MathmlStoreUtil.checkMathjaxTag(jax, 'MUNDER');
77 }; 77 };
78 78
79 79
80 /** 80 /**
81 * Returns MathML node if MathJax is mover. 81 * Returns MathML node if MathJax is mover.
82 * @param {!Node} jax The Mathjax node. 82 * @param {!Node} jax The Mathjax node.
83 * @return {Array.<Node>} The resulting node list. 83 * @return {Array<Node>} The resulting node list.
84 */ 84 */
85 cvox.MathmlStoreUtil.checkMathjaxMover = function(jax) { 85 cvox.MathmlStoreUtil.checkMathjaxMover = function(jax) {
86 return cvox.MathmlStoreUtil.checkMathjaxTag(jax, 'MOVER'); 86 return cvox.MathmlStoreUtil.checkMathjaxTag(jax, 'MOVER');
87 }; 87 };
88 88
89 89
90 /** 90 /**
91 * Returns MathML node if MathJax is msub. 91 * Returns MathML node if MathJax is msub.
92 * @param {!Node} jax The Mathjax node. 92 * @param {!Node} jax The Mathjax node.
93 * @return {Array.<Node>} The resulting node list. 93 * @return {Array<Node>} The resulting node list.
94 */ 94 */
95 cvox.MathmlStoreUtil.checkMathjaxMsub = function(jax) { 95 cvox.MathmlStoreUtil.checkMathjaxMsub = function(jax) {
96 return cvox.MathmlStoreUtil.checkMathjaxTag(jax, 'MSUB'); 96 return cvox.MathmlStoreUtil.checkMathjaxTag(jax, 'MSUB');
97 }; 97 };
98 98
99 99
100 /** 100 /**
101 * Returns MathML node if MathJax is msup. 101 * Returns MathML node if MathJax is msup.
102 * @param {!Node} jax The Mathjax node. 102 * @param {!Node} jax The Mathjax node.
103 * @return {Array.<Node>} The resulting node list. 103 * @return {Array<Node>} The resulting node list.
104 */ 104 */
105 cvox.MathmlStoreUtil.checkMathjaxMsup = function(jax) { 105 cvox.MathmlStoreUtil.checkMathjaxMsup = function(jax) {
106 return cvox.MathmlStoreUtil.checkMathjaxTag(jax, 'MSUP'); 106 return cvox.MathmlStoreUtil.checkMathjaxTag(jax, 'MSUP');
107 }; 107 };
108 108
109 109
110 /** 110 /**
111 * Constructs a closure that returns separators for an MathML mfenced 111 * Constructs a closure that returns separators for an MathML mfenced
112 * expression. 112 * expression.
113 * Separators in MathML are represented by a list and used up one by one 113 * Separators in MathML are represented by a list and used up one by one
(...skipping 23 matching lines...) Expand all
137 if (sepList.length > 1) { 137 if (sepList.length > 1) {
138 return sepList.shift(); 138 return sepList.shift();
139 } 139 }
140 return sepList[0]; 140 return sepList[0];
141 }; 141 };
142 }; 142 };
143 143
144 144
145 /** 145 /**
146 * Computes the correct separators for each node. 146 * Computes the correct separators for each node.
147 * @param {Array.<Node>} nodes A node array. 147 * @param {Array<Node>} nodes A node array.
148 * @param {string} context A context string. 148 * @param {string} context A context string.
149 * @return {function(): string} A closure that returns the next separator for an 149 * @return {function(): string} A closure that returns the next separator for an
150 * mfenced expression starting with the first node in nodes. 150 * mfenced expression starting with the first node in nodes.
151 */ 151 */
152 cvox.MathmlStoreUtil.mfencedSeparators = function(nodes, context) { 152 cvox.MathmlStoreUtil.mfencedSeparators = function(nodes, context) {
153 var nextSeparator = cvox.MathmlStoreUtil.nextSeparatorFunction(context); 153 var nextSeparator = cvox.MathmlStoreUtil.nextSeparatorFunction(context);
154 return function() { 154 return function() {
155 return nextSeparator ? nextSeparator() : ''; 155 return nextSeparator ? nextSeparator() : '';
156 }; 156 };
157 }; 157 };
158 158
159 159
160 /** 160 /**
161 * Iterates over the list of content nodes of the parent of the given nodes. 161 * Iterates over the list of content nodes of the parent of the given nodes.
162 * @param {Array.<Node>} nodes A node array. 162 * @param {Array<Node>} nodes A node array.
163 * @param {string} context A context string. 163 * @param {string} context A context string.
164 * @return {function(): string} A closure that returns the content of the next 164 * @return {function(): string} A closure that returns the content of the next
165 * content node. Returns only context string if list is exhausted. 165 * content node. Returns only context string if list is exhausted.
166 */ 166 */
167 cvox.MathmlStoreUtil.contentIterator = function(nodes, context) { 167 cvox.MathmlStoreUtil.contentIterator = function(nodes, context) {
168 if (nodes.length > 0) { 168 if (nodes.length > 0) {
169 var contentNodes = cvox.XpathUtil.evalXPath('../../content/*', nodes[0]); 169 var contentNodes = cvox.XpathUtil.evalXPath('../../content/*', nodes[0]);
170 } else { 170 } else {
171 var contentNodes = []; 171 var contentNodes = [];
172 } 172 }
173 return function() { 173 return function() {
174 var content = contentNodes.shift(); 174 var content = contentNodes.shift();
175 return context + (content ? content.textContent : ''); 175 return context + (content ? content.textContent : '');
176 }; 176 };
177 }; 177 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698