Best JavaScript code snippet using playwright-internal
attributes.js
Source:attributes.js  
1function getProperty(propertyName) {2  return el => el[propertyName];3}4function getAttribute(attributeName) {5  return el => {6    if (el.namespaceURI === '') {7      throw new Error('Not an HTML element.');8    }9    return el.getAttribute(attributeName);10  };11}12function getSVGProperty(propertyName) {13  return el => el[propertyName];14}15function getSVGAttribute(attributeName) {16  return el => {17    if (el.namespaceURI !== 'http://www.w3.org/2000/svg') {18      throw new Error('Not an SVG element.');19    }20    return el.getAttribute(attributeName);21  };22}23const attributes = [24  {name: 'about', read: getAttribute('about')},25  {name: 'aBoUt', read: getAttribute('about')},26  {27    name: 'accent-Height',28    containerTagName: 'svg',29    tagName: 'font-face',30    read: getSVGAttribute('accent-height'),31  },32  {33    name: 'accent-height',34    containerTagName: 'svg',35    tagName: 'font-face',36    read: getSVGAttribute('accent-height'),37  },38  {39    name: 'accentHeight',40    containerTagName: 'svg',41    tagName: 'font-face',42    read: getSVGAttribute('accent-height'),43  },44  {name: 'accept', tagName: 'input'},45  {name: 'accept-charset', tagName: 'form', read: getProperty('acceptCharset')},46  {name: 'accept-Charset', tagName: 'form', read: getProperty('acceptCharset')},47  {name: 'acceptCharset', tagName: 'form'},48  {name: 'accessKey'},49  {50    name: 'accumulate',51    containerTagName: 'svg',52    tagName: 'animate',53    read: getSVGAttribute('accumulate'),54  },55  {name: 'action', tagName: 'form', overrideStringValue: 'https://reactjs.com'},56  {57    name: 'additive',58    containerTagName: 'svg',59    tagName: 'animate',60    read: getSVGAttribute('additive'),61  },62  {63    name: 'alignment-baseline',64    containerTagName: 'svg',65    tagName: 'textPath',66    read: getSVGAttribute('alignment-baseline'),67  },68  {69    name: 'alignmentBaseline',70    containerTagName: 'svg',71    tagName: 'textPath',72    read: getSVGAttribute('alignment-baseline'),73  },74  {75    name: 'allowFullScreen',76    tagName: 'iframe',77    read: getProperty('allowFullscreen'),78  },79  {80    name: 'allowfullscreen',81    tagName: 'iframe',82    read: getProperty('allowFullscreen'),83  },84  {name: 'allowFullscreen', tagName: 'iframe'},85  {86    name: 'allowReorder',87    containerTagName: 'svg',88    tagName: 'switch',89    read: getSVGAttribute('allowReorder'),90  },91  {92    name: 'alphabetic',93    containerTagName: 'svg',94    tagName: 'font-face',95    read: getSVGAttribute('alphabetic'),96  },97  {name: 'alt', tagName: 'img'},98  {99    name: 'amplitude',100    containerTagName: 'svg',101    tagName: 'feFuncA',102    read: getSVGProperty('amplitude'),103  },104  {105    name: 'arabic-form',106    containerTagName: 'svg',107    tagName: 'glyph',108    read: getSVGAttribute('arabic-form'),109  },110  {111    name: 'arabicForm',112    containerTagName: 'svg',113    tagName: 'glyph',114    read: getSVGAttribute('arabic-form'),115  },116  {name: 'aria', read: getAttribute('aria')},117  {name: 'aria-', read: getAttribute('aria-')},118  {name: 'aria-invalidattribute', read: getAttribute('aria-invalidattribute')},119  {name: 'as', tagName: 'link'},120  {121    name: 'ascent',122    containerTagName: 'svg',123    tagName: 'font-face',124    read: getSVGAttribute('ascent'),125  },126  {name: 'async', tagName: 'script'},127  {128    name: 'attributeName',129    containerTagName: 'svg',130    tagName: 'animate',131    read: getSVGAttribute('attributeName'),132  },133  {134    name: 'attributeType',135    containerTagName: 'svg',136    tagName: 'animate',137    read: getSVGAttribute('attributeType'),138  },139  {140    name: 'autoCapitalize',141    tagName: 'input',142    read: getProperty('autocapitalize'),143    overrideStringValue: 'words',144  },145  {146    name: 'autoComplete',147    tagName: 'input',148    overrideStringValue: 'email',149    read: getProperty('autocomplete'),150  },151  {152    name: 'autoCorrect',153    tagName: 'input',154    overrideStringValue: 'off',155    read: getAttribute('autocorrect'),156  },157  {name: 'autoPlay', tagName: 'video', read: getProperty('autoplay')},158  {159    name: 'autoReverse',160    containerTagName: 'svg',161    tagName: 'animate',162    read: getSVGAttribute('autoreverse'),163  },164  {name: 'autoSave', tagName: 'input', read: getAttribute('autosave')},165  {166    name: 'azimuth',167    containerTagName: 'svg',168    tagName: 'feDistantLight',169    read: getSVGProperty('azimuth'),170  },171  {172    name: 'baseFrequency',173    containerTagName: 'svg',174    tagName: 'feTurbulence',175    read: getSVGAttribute('baseFrequency'),176  },177  {178    name: 'baseline-shift',179    containerTagName: 'svg',180    tagName: 'textPath',181    read: getSVGAttribute('baseline-shift'),182  },183  {184    name: 'baselineShift',185    containerTagName: 'svg',186    tagName: 'textPath',187    read: getSVGAttribute('baseline-shift'),188  },189  {name: 'baseProfile', tagName: 'svg', read: getSVGAttribute('baseProfile')},190  {191    name: 'bbox',192    containerTagName: 'svg',193    tagName: 'font-face',194    read: getSVGAttribute('bbox'),195  },196  {197    name: 'begin',198    containerTagName: 'svg',199    tagName: 'animate',200    read: getSVGAttribute('begin'),201  },202  {203    name: 'bias',204    containerTagName: 'svg',205    tagName: 'feConvolveMatrix',206    read: getSVGProperty('bias'),207  },208  {209    name: 'by',210    containerTagName: 'svg',211    tagName: 'animate',212    read: getSVGAttribute('by'),213  },214  {215    name: 'calcMode',216    containerTagName: 'svg',217    tagName: 'animate',218    overrideStringValue: 'discrete',219    read: getSVGAttribute('calcMode'),220  },221  {222    name: 'cap-height',223    containerTagName: 'svg',224    tagName: 'font-face',225    read: getSVGAttribute('cap-height'),226  },227  {228    name: 'capHeight',229    containerTagName: 'svg',230    tagName: 'font-face',231    read: getSVGAttribute('cap-height'),232  },233  {234    name: 'capture',235    tagName: 'input',236    overrideStringValue: 'environment',237    read: getAttribute('capture'),238  },239  {name: 'cellPadding', tagName: 'table'},240  {name: 'cellSpacing', tagName: 'table'},241  {242    name: 'challenge',243    tagName: 'keygen',244    read: getAttribute('challenge'), // The property is not supported in Chrome.245  },246  {name: 'charSet', tagName: 'script', read: getProperty('charset')},247  {name: 'checked', tagName: 'input', extraProps: {onChange() {}}},248  {name: 'Checked', tagName: 'input', read: getAttribute('Checked')},249  {name: 'Children', read: getAttribute('children')},250  {name: 'children'},251  {252    name: 'cite',253    tagName: 'blockquote',254    overrideStringValue: 'http://reactjs.com/',255  },256  {name: 'class', read: getAttribute('class')},257  {name: 'classID', tagName: 'object', read: getAttribute('classid')},258  {name: 'className'},259  {name: 'clip', tagName: 'svg', read: getAttribute('clip')},260  {261    name: 'clip-path',262    containerTagName: 'svg',263    tagName: 'path',264    read: getSVGAttribute('clip-path'),265  },266  {267    name: 'clipPath',268    containerTagName: 'svg',269    tagName: 'path',270    read: getSVGAttribute('clip-path'),271  },272  {273    name: 'clipPathUnits',274    containerTagName: 'svg',275    tagName: 'clipPath',276    overrideStringValue: 'objectBoundingBox',277    read: getSVGProperty('clipPathUnits'),278  },279  {280    name: 'clip-rule',281    containerTagName: 'svg',282    tagName: 'path',283    read: getSVGAttribute('clip-rule'),284  },285  {286    name: 'clipRule',287    containerTagName: 'svg',288    tagName: 'path',289    read: getSVGAttribute('clip-rule'),290  },291  {292    name: 'color',293    containerTagName: 'svg',294    tagName: 'text',295    read: getSVGAttribute('color'),296  },297  {298    name: 'color-interpolation',299    containerTagName: 'svg',300    tagName: 'animate',301    overrideStringValue: 'sRGB',302    read: getSVGAttribute('color-interpolation'),303  },304  {305    name: 'colorInterpolation',306    containerTagName: 'svg',307    tagName: 'animate',308    overrideStringValue: 'sRGB',309    read: getSVGAttribute('color-interpolation'),310  },311  {312    name: 'color-interpolation-filters',313    containerTagName: 'svg',314    tagName: 'feComposite',315    overrideStringValue: 'sRGB',316    read: getSVGAttribute('color-interpolation-filters'),317  },318  {319    name: 'colorInterpolationFilters',320    containerTagName: 'svg',321    tagName: 'feComposite',322    overrideStringValue: 'sRGB',323    read: getSVGAttribute('color-interpolation-filters'),324  },325  {326    name: 'color-profile',327    containerTagName: 'svg',328    tagName: 'image',329    overrideStringValue: 'sRGB',330    read: getSVGAttribute('color-profile'),331  },332  {333    name: 'colorProfile',334    containerTagName: 'svg',335    tagName: 'image',336    overrideStringValue: 'sRGB',337    read: getSVGAttribute('color-profile'),338  },339  {340    name: 'color-rendering',341    containerTagName: 'svg',342    tagName: 'animate',343    overrideStringValue: 'optimizeSpeed',344    read: getSVGAttribute('color-rendering'),345  },346  {347    name: 'colorRendering',348    containerTagName: 'svg',349    tagName: 'animate',350    overrideStringValue: 'optimizeSpeed',351    read: getSVGAttribute('color-rendering'),352  },353  {name: 'cols', tagName: 'textarea'},354  {name: 'colSpan', containerTagName: 'tr', tagName: 'td'},355  {name: 'content', tagName: 'meta'},356  {name: 'contentEditable'},357  {358    name: 'contentScriptType',359    tagName: 'svg',360    read: getSVGAttribute('contentScriptType'),361  },362  {363    name: 'contentStyleType',364    tagName: 'svg',365    read: getSVGAttribute('contentStyleType'),366  },367  {name: 'contextMenu', read: getAttribute('contextmenu')}, // TODO: Read the property by rendering a menu with the ID.368  {name: 'controls', tagName: 'video'},369  {name: 'coords', tagName: 'a'},370  {name: 'crossOrigin', tagName: 'script'},371  {name: 'cursor', tag: 'svg', read: getAttribute('cursor')},372  {373    name: 'cx',374    containerTagName: 'svg',375    tagName: 'circle',376    overrideStringValue: '10px',377    read: getSVGProperty('cx'),378  },379  {380    name: 'cy',381    containerTagName: 'svg',382    tagName: 'circle',383    overrideStringValue: '10%',384    read: getSVGProperty('cy'),385  },386  {387    name: 'd',388    containerTagName: 'svg',389    tagName: 'path',390    read: getSVGAttribute('d'),391  },392  {393    name: 'dangerouslySetInnerHTML',394    read: getAttribute('dangerouslySetInnerHTML'),395  },396  {397    name: 'DangerouslySetInnerHTML',398    read: getAttribute('DangerouslySetInnerHTML'),399  },400  {name: 'data', read: getAttribute('data')},401  {name: 'data-', read: getAttribute('data-')},402  {name: 'data-unknownattribute', read: getAttribute('data-unknownattribute')},403  {name: 'datatype', read: getAttribute('datatype')},404  {405    name: 'dateTime',406    tagName: 'time',407    overrideStringValue: '2001-05-15T19:00',408    read: getAttribute('datetime'),409  },410  {411    name: 'decelerate',412    containerTagName: 'svg',413    tagName: 'animate',414    read: getSVGAttribute('decelerate'),415  },416  {name: 'default', tagName: 'track'},417  {418    name: 'defaultchecked',419    tagName: 'input',420    read: getAttribute('defaultchecked'),421  },422  {name: 'defaultChecked', tagName: 'input'},423  {name: 'defaultValue', tagName: 'input'},424  {name: 'defaultValuE', tagName: 'input', read: getAttribute('defaultValuE')},425  {name: 'defer', tagName: 'script'},426  {427    name: 'descent',428    containerTagName: 'svg',429    tagName: 'font-face',430    read: getSVGAttribute('descent'),431  },432  {433    name: 'diffuseConstant',434    containerTagName: 'svg',435    tagName: 'feDiffuseLighting',436    read: getSVGProperty('diffuseConstant'),437  },438  {name: 'dir', overrideStringValue: 'rtl'},439  {440    name: 'direction',441    containerTagName: 'svg',442    tagName: 'text',443    overrideStringValue: 'rtl',444    read: getSVGAttribute('direction'),445  },446  {name: 'disabled', tagName: 'input'},447  {448    name: 'disablePictureInPicture',449    tagName: 'video',450    read: getProperty('disablepictureinpicture'),451  },452  {453    name: 'display',454    tagName: 'svg',455    overrideStringValue: 'list-item',456    read: getAttribute('display'),457  },458  {459    name: 'divisor',460    containerTagName: 'svg',461    tagName: 'feConvolveMatrix',462    read: getSVGProperty('divisor'),463  },464  {465    name: 'dominant-baseline',466    containerTagName: 'svg',467    tagName: 'text',468    read: getSVGAttribute('dominant-baseline'),469  },470  {471    name: 'dominantBaseline',472    containerTagName: 'svg',473    tagName: 'text',474    read: getSVGAttribute('dominant-baseline'),475  },476  {name: 'download', tagName: 'a'},477  {name: 'dOwNlOaD', tagName: 'a', read: getAttribute('dOwNlOaD')},478  {name: 'draggable'},479  {480    name: 'dur',481    containerTagName: 'svg',482    tagName: 'animate',483    read: getSVGAttribute('dur'),484  },485  {486    name: 'dx',487    containerTagName: 'svg',488    tagName: 'text',489    overrideStringValue: '1pt 2px 3em',490    read: getSVGProperty('dx'),491  },492  {493    name: 'dX',494    containerTagName: 'svg',495    tagName: 'text',496    overrideStringValue: '1pt 2px 3em',497    read: getSVGProperty('dx'),498  },499  {500    name: 'dy',501    containerTagName: 'svg',502    tagName: 'text',503    overrideStringValue: '1 2 3',504    read: getSVGProperty('dy'),505  },506  {507    name: 'dY',508    containerTagName: 'svg',509    tagName: 'text',510    overrideStringValue: '1 2 3',511    read: getSVGProperty('dy'),512  },513  {514    name: 'edgeMode',515    containerTagName: 'svg',516    tagName: 'feConvolveMatrix',517    overrideStringValue: 'wrap',518    read: getSVGProperty('edgeMode'),519  },520  {521    name: 'elevation',522    containerTagName: 'svg',523    tagName: 'feDistantLight',524    read: getSVGProperty('elevation'),525  },526  {527    name: 'enable-background',528    containerTagName: 'svg',529    tagName: 'path',530    read: getSVGAttribute('enable-background'),531  },532  {533    name: 'enableBackground',534    containerTagName: 'svg',535    tagName: 'path',536    read: getSVGAttribute('enable-background'),537  },538  {539    name: 'encType',540    tagName: 'form',541    overrideStringValue: 'text/plain',542    read: getProperty('enctype'),543  },544  {545    name: 'end',546    containerTagName: 'svg',547    tagName: 'animate',548    read: getSVGAttribute('end'),549  },550  {551    name: 'exponent',552    read: getSVGProperty('exponent'),553    containerTagName: 'svg',554    tagName: 'feFuncA',555  },556  {557    name: 'externalResourcesRequired',558    containerTagName: 'svg',559    tagName: 'path',560    read: getSVGAttribute('externalResourcesRequired'),561  },562  {563    name: 'fill',564    containerTagName: 'svg',565    tagName: 'path',566    read: getSVGAttribute('fill'),567  },568  {569    name: 'fillOpacity',570    containerTagName: 'svg',571    tagName: 'circle',572    read: getSVGAttribute('fill-opacity'),573  },574  {575    name: 'fill-opacity',576    containerTagName: 'svg',577    tagName: 'circle',578    read: getSVGAttribute('fill-opacity'),579  },580  {581    name: 'fillRule',582    containerTagName: 'svg',583    tagName: 'circle',584    read: getSVGAttribute('fill-rule'),585  },586  {587    name: 'fill-rule',588    containerTagName: 'svg',589    tagName: 'circle',590    read: getSVGAttribute('fill-rule'),591  },592  {593    name: 'filter',594    containerTagName: 'svg',595    tagName: 'g',596    read: getSVGAttribute('filter'),597  },598  {599    name: 'filterRes',600    containerTagName: 'svg',601    tagName: 'filter',602    read: getSVGAttribute('filterRes'),603  },604  {605    name: 'filterUnits',606    containerTagName: 'svg',607    tagName: 'filter',608    overrideStringValue: 'userSpaceOnUse',609    read: getSVGProperty('filterUnits'),610  },611  {612    name: 'flood-color',613    containerTagName: 'svg',614    tagName: 'feflood',615    overrideStringValue: 'currentColor',616    read: getSVGAttribute('flood-color'),617  },618  {619    name: 'floodColor',620    containerTagName: 'svg',621    tagName: 'feflood',622    overrideStringValue: 'currentColor',623    read: getSVGAttribute('flood-color'),624  },625  {626    name: 'flood-opacity',627    containerTagName: 'svg',628    tagName: 'feflood',629    overrideStringValue: 'inherit',630    read: getSVGAttribute('flood-opacity'),631  },632  {633    name: 'floodOpacity',634    containerTagName: 'svg',635    tagName: 'feflood',636    overrideStringValue: 'inherit',637    read: getSVGAttribute('flood-opacity'),638  },639  {name: 'focusable', tagName: 'p', read: getAttribute('focusable')},640  {641    name: 'font-family',642    read: getSVGAttribute('font-family'),643    containerTagName: 'svg',644    tagName: 'font-face',645  },646  {647    name: 'font-size',648    read: getSVGAttribute('font-size'),649    containerTagName: 'svg',650    tagName: 'font-face',651  },652  {653    name: 'font-size-adjust',654    containerTagName: 'svg',655    tagName: 'text',656    read: getSVGAttribute('font-size-adjust'),657  },658  {659    name: 'font-stretch',660    read: getSVGAttribute('font-stretch'),661    containerTagName: 'svg',662    tagName: 'font-face',663  },664  {665    name: 'font-style',666    read: getSVGAttribute('font-style'),667    containerTagName: 'svg',668    tagName: 'font-face',669  },670  {671    name: 'font-variant',672    read: getSVGAttribute('font-variant'),673    containerTagName: 'svg',674    tagName: 'font-face',675  },676  {677    name: 'font-weight',678    read: getSVGAttribute('font-weight'),679    containerTagName: 'svg',680    tagName: 'font-face',681  },682  {683    name: 'fontFamily',684    read: getSVGAttribute('font-family'),685    containerTagName: 'svg',686    tagName: 'font-face',687  },688  {689    name: 'fontSize',690    read: getSVGAttribute('font-size'),691    containerTagName: 'svg',692    tagName: 'font-face',693  },694  {695    name: 'fontSizeAdjust',696    containerTagName: 'svg',697    tagName: 'text',698    read: getSVGAttribute('font-size-adjust'),699  },700  {701    name: 'fontStretch',702    read: getSVGAttribute('font-stretch'),703    containerTagName: 'svg',704    tagName: 'font-face',705  },706  {707    name: 'fontStyle',708    read: getSVGAttribute('font-style'),709    containerTagName: 'svg',710    tagName: 'font-face',711  },712  {713    name: 'fontVariant',714    read: getSVGAttribute('font-variant'),715    containerTagName: 'svg',716    tagName: 'font-face',717  },718  {719    name: 'fontWeight',720    read: getSVGAttribute('font-weight'),721    containerTagName: 'svg',722    tagName: 'font-face',723  },724  {name: 'for', tagName: 'label', read: getProperty('htmlFor')},725  {name: 'fOr', tagName: 'label', read: getProperty('htmlFor')},726  {name: 'form', read: getAttribute('form')}, // TODO: Read the property by rendering into a form with i727  {728    name: 'formAction',729    tagName: 'input',730    overrideStringValue: 'https://reactjs.com',731  },732  {733    name: 'format',734    read: getSVGAttribute('format'),735    containerTagName: 'svg',736    tagName: 'altGlyph',737  },738  {name: 'formEncType', tagName: 'input', read: getProperty('formEnctype')},739  {name: 'formMethod', tagName: 'input', overrideStringValue: 'POST'},740  {name: 'formNoValidate', tagName: 'input'},741  {name: 'formTarget', tagName: 'input'},742  {name: 'frameBorder', tagName: 'iframe'},743  {744    name: 'from',745    read: getSVGAttribute('from'),746    containerTagName: 'svg',747    tagName: 'animate',748  },749  {750    name: 'fx',751    read: getSVGProperty('fx'),752    containerTagName: 'svg',753    overrideStringValue: '10px',754    tagName: 'radialGradient',755  },756  {757    name: 'fX',758    containerTagName: 'svg',759    tagName: 'radialGradient',760    overrideStringValue: '10px',761    read: getSVGProperty('fx'),762  },763  {764    name: 'fY',765    containerTagName: 'svg',766    tagName: 'radialGradient',767    overrideStringValue: '20em',768    read: getSVGProperty('fy'),769  },770  {771    name: 'fy',772    read: getSVGProperty('fy'),773    containerTagName: 'svg',774    overrideStringValue: '20em',775    tagName: 'radialGradient',776  },777  {778    name: 'G1',779    containerTagName: 'svg',780    tagName: 'hkern',781    read: getSVGAttribute('g1'),782  },783  {784    name: 'g1',785    read: getSVGAttribute('g1'),786    containerTagName: 'svg',787    tagName: 'hkern',788  },789  {790    name: 'G2',791    containerTagName: 'svg',792    tagName: 'hkern',793    read: getSVGAttribute('g2'),794  },795  {796    name: 'g2',797    read: getSVGAttribute('g2'),798    containerTagName: 'svg',799    tagName: 'hkern',800  },801  {802    name: 'glyph-name',803    read: getSVGAttribute('glyph-name'),804    containerTagName: 'svg',805    tagName: 'glyph',806  },807  {808    name: 'glyph-orientation-horizontal',809    containerTagName: 'svg',810    tagName: 'text',811    read: getSVGAttribute('glyph-orientation-horizontal'),812  },813  {814    name: 'glyph-orientation-vertical',815    containerTagName: 'svg',816    tagName: 'text',817    read: getSVGAttribute('glyph-orientation-vertical'),818  },819  {820    name: 'glyphName',821    read: getSVGAttribute('glyph-name'),822    containerTagName: 'svg',823    tagName: 'glyph',824  },825  {826    name: 'glyphOrientationHorizontal',827    containerTagName: 'svg',828    tagName: 'text',829    read: getSVGAttribute('glyph-orientation-horizontal'),830  },831  {832    name: 'glyphOrientationVertical',833    containerTagName: 'svg',834    tagName: 'text',835    read: getSVGAttribute('glyph-orientation-vertical'),836  },837  {838    name: 'glyphRef',839    read: getSVGAttribute('glyph-ref'),840    containerTagName: 'svg',841    tagName: 'altGlyph',842  },843  {844    name: 'gradientTransform',845    read: getSVGProperty('gradientTransform'),846    containerTagName: 'svg',847    overrideStringValue:848      'translate(-10,-20) scale(2) rotate(45) translate(5,10)',849    tagName: 'linearGradient',850  },851  {852    name: 'gradientUnits',853    read: getSVGProperty('gradientUnits'),854    containerTagName: 'svg',855    overrideStringValue: 'userSpaceOnUse',856    tagName: 'linearGradient',857  },858  {859    name: 'hanging',860    read: getSVGAttribute('hanging'),861    containerTagName: 'svg',862    tagName: 'font-face',863  },864  // Disabled because it crashes other tests with React 15.865  // TODO: re-enable when we no longer compare to 15.866  // {name: 'hasOwnProperty', read: getAttribute('hasOwnProperty')},867  {name: 'headers', containerTagName: 'tr', tagName: 'td'},868  {name: 'height', tagName: 'img'},869  {870    name: 'height',871    containerTagName: 'svg',872    tagName: 'rect',873    read: getSVGProperty('height'),874    overrideStringValue: '100%',875  },876  {name: 'hidden'},877  {name: 'high', tagName: 'meter'},878  {879    name: 'horiz-adv-x',880    read: getSVGAttribute('horiz-adv-x'),881    containerTagName: 'svg',882    tagName: 'font',883  },884  {885    name: 'horiz-origin-x',886    read: getSVGAttribute('horiz-origin-x'),887    containerTagName: 'svg',888    tagName: 'font',889  },890  {891    name: 'horizAdvX',892    read: getSVGAttribute('horiz-adv-x'),893    containerTagName: 'svg',894    tagName: 'font',895  },896  {897    name: 'horizOriginX',898    read: getSVGAttribute('horiz-origin-x'),899    containerTagName: 'svg',900    tagName: 'font',901  },902  {name: 'href', tagName: 'a', overrideStringValue: 'https://reactjs.com'},903  {name: 'hrefLang', read: getAttribute('hreflang')},904  {name: 'htmlFor', tagName: 'label'},905  {name: 'http-equiv', tagName: 'meta', read: getProperty('httpEquiv')},906  {name: 'httpEquiv', tagName: 'meta'},907  {name: 'icon', tagName: 'command', read: getAttribute('icon')},908  {name: 'id'},909  {name: 'ID', read: getProperty('id')},910  {911    name: 'ideographic',912    read: getSVGAttribute('ideographic'),913    containerTagName: 'svg',914    tagName: 'font-face',915  },916  {917    name: 'image-rendering',918    tagName: 'svg',919    read: getSVGAttribute('image-rendering'),920  },921  {922    name: 'imageRendering',923    tagName: 'svg',924    read: getSVGAttribute('image-rendering'),925  },926  {927    name: 'in',928    read: getSVGAttribute('in'),929    containerTagName: 'svg',930    tagName: 'feBlend',931  },932  {933    name: 'in2',934    read: getSVGProperty('in2'),935    containerTagName: 'svg',936    tagName: 'feBlend',937  },938  {name: 'initialChecked', read: getAttribute('initialchecked')},939  {name: 'initialValue', read: getAttribute('initialvalue')},940  {name: 'inlist', read: getAttribute('inlist')},941  {name: 'inputMode', tagName: 'input', read: getAttribute('inputmode')}, // TODO: Should use property but it's not implemented in Chrome942  {name: 'integrity', tagName: 'script'},943  {944    name: 'intercept',945    read: getSVGProperty('intercept'),946    containerTagName: 'svg',947    tagName: 'feFuncA',948  },949  {950    name: 'is',951    tagName: 'button',952    overrideStringValue: 'x-test-element',953    read: getAttribute('is'), // TODO: This could check if this is an extended custom element but this is a controversial spec.954  },955  {name: 'itemID', read: getAttribute('itemid')},956  {name: 'itemProp', read: getAttribute('itemprop')},957  {name: 'itemRef', read: getAttribute('itemref')},958  {name: 'itemScope', read: getAttribute('itemscope')},959  {name: 'itemType', read: getAttribute('itemtype')},960  {961    name: 'k',962    read: getSVGAttribute('k'),963    containerTagName: 'svg',964    tagName: 'hkern',965  },966  {967    name: 'K',968    containerTagName: 'svg',969    tagName: 'hkern',970    read: getSVGAttribute('k'),971  },972  {973    name: 'K1',974    containerTagName: 'svg',975    tagName: 'feComposite',976    read: getSVGProperty('k1'),977  },978  {979    name: 'k1',980    read: getSVGProperty('k1'),981    containerTagName: 'svg',982    tagName: 'feComposite',983  },984  {985    name: 'k2',986    read: getSVGProperty('k2'),987    containerTagName: 'svg',988    tagName: 'feComposite',989  },990  {991    name: 'k3',992    read: getSVGProperty('k3'),993    containerTagName: 'svg',994    tagName: 'feComposite',995  },996  {997    name: 'k4',998    read: getSVGProperty('k4'),999    containerTagName: 'svg',1000    tagName: 'feComposite',1001  },1002  {1003    name: 'kernelMatrix',1004    read: getSVGProperty('kernelMatrix'),1005    containerTagName: 'svg',1006    tagName: 'feConvolveMatrix',1007    overrideStringValue: '1 2 3,4',1008  },1009  {1010    name: 'kernelUnitLength',1011    read: getSVGAttribute('kernelUnitLength'),1012    containerTagName: 'svg',1013    tagName: 'feConvolveMatrix',1014  },1015  {1016    name: 'kerning',1017    containerTagName: 'svg',1018    tagName: 'text',1019    read: getSVGAttribute('kerning'),1020  },1021  {name: 'keyParams', read: getAttribute('keyParams')},1022  {1023    name: 'keyPoints',1024    read: getSVGAttribute('keyPoints'),1025    containerTagName: 'svg',1026    tagName: 'animateMotion',1027  },1028  {1029    name: 'keySplines',1030    read: getSVGAttribute('keySplines'),1031    containerTagName: 'svg',1032    tagName: 'animate',1033  },1034  {1035    name: 'keyTimes',1036    read: getSVGAttribute('keyTimes'),1037    containerTagName: 'svg',1038    tagName: 'animate',1039  },1040  {name: 'keyType', read: getAttribute('keyType')},1041  {name: 'kind', tagName: 'track', overrideStringValue: 'captions'},1042  {name: 'label', tagName: 'track'},1043  {name: 'LANG', read: getProperty('lang')},1044  {name: 'lang'},1045  {name: 'length', read: getAttribute('length')},1046  {1047    name: 'lengthAdjust',1048    read: getSVGProperty('lengthAdjust'),1049    containerTagName: 'svg',1050    tagName: 'text',1051    overrideStringValue: 'spacingAndGlyphs',1052  },1053  {1054    name: 'letter-spacing',1055    containerTagName: 'svg',1056    tagName: 'text',1057    read: getSVGAttribute('letter-spacing'),1058  },1059  {1060    name: 'letterSpacing',1061    containerTagName: 'svg',1062    tagName: 'text',1063    read: getSVGAttribute('letter-spacing'),1064  },1065  {1066    name: 'lighting-color',1067    containerTagName: 'svg',1068    tagName: 'feDiffuseLighting',1069    read: getSVGAttribute('lighting-color'),1070  },1071  {1072    name: 'lightingColor',1073    containerTagName: 'svg',1074    tagName: 'feDiffuseLighting',1075    read: getSVGAttribute('lighting-color'),1076  },1077  {1078    name: 'limitingConeAngle',1079    read: getSVGProperty('limitingConeAngle'),1080    containerTagName: 'svg',1081    tagName: 'feSpotLight',1082  },1083  {name: 'list', read: getAttribute('list')}, // TODO: This should match the ID of a datalist element and then read property.1084  {1085    name: 'local',1086    read: getSVGAttribute('local'),1087    containerTagName: 'svg',1088    tagName: 'color-profile',1089  },1090  {name: 'loop', tagName: 'audio'},1091  {name: 'low', tagName: 'meter'},1092  {name: 'manifest', read: getAttribute('manifest')},1093  {name: 'marginHeight', containerTagName: 'frameset', tagName: 'frame'},1094  {name: 'marginWidth', containerTagName: 'frameset', tagName: 'frame'},1095  {1096    name: 'marker-end',1097    containerTagName: 'svg',1098    tagName: 'line',1099    read: getSVGAttribute('marker-end'),1100  },1101  {1102    name: 'marker-mid',1103    containerTagName: 'svg',1104    tagName: 'line',1105    read: getSVGAttribute('marker-mid'),1106  },1107  {1108    name: 'marker-start',1109    containerTagName: 'svg',1110    tagName: 'line',1111    read: getSVGAttribute('marker-start'),1112  },1113  {1114    name: 'markerEnd',1115    containerTagName: 'svg',1116    tagName: 'line',1117    read: getSVGAttribute('marker-end'),1118  },1119  {1120    name: 'markerHeight',1121    read: getSVGProperty('markerHeight'),1122    containerTagName: 'svg',1123    tagName: 'marker',1124  },1125  {1126    name: 'markerMid',1127    containerTagName: 'svg',1128    tagName: 'line',1129    read: getSVGAttribute('marker-mid'),1130  },1131  {1132    name: 'markerStart',1133    containerTagName: 'svg',1134    tagName: 'line',1135    read: getSVGAttribute('marker-start'),1136  },1137  {1138    name: 'markerUnits',1139    read: getSVGProperty('markerUnits'),1140    containerTagName: 'svg',1141    tagName: 'marker',1142  },1143  {1144    name: 'markerWidth',1145    read: getSVGProperty('markerWidth'),1146    containerTagName: 'svg',1147    tagName: 'marker',1148  },1149  {1150    name: 'mask',1151    containerTagName: 'svg',1152    tagName: 'path',1153    read: getSVGAttribute('mask'),1154  },1155  {1156    name: 'maskContentUnits',1157    read: getSVGProperty('maskContentUnits'),1158    containerTagName: 'svg',1159    tagName: 'mask',1160    overrideStringValue: 'objectBoundingBox',1161  },1162  {1163    name: 'maskUnits',1164    read: getSVGProperty('maskUnits'),1165    containerTagName: 'svg',1166    tagName: 'mask',1167    overrideStringValue: 'userSpaceOnUse',1168  },1169  {1170    name: 'mathematical',1171    read: getSVGAttribute('mathematical'),1172    containerTagName: 'svg',1173    tagName: 'font-face',1174  },1175  {name: 'max', tagName: 'input'},1176  {name: 'max', tagName: 'meter'},1177  {name: 'max', tagName: 'progress'},1178  {1179    name: 'max',1180    containerTagName: 'svg',1181    tagName: 'animate',1182    read: getSVGAttribute('max'),1183  },1184  {name: 'maxLength', tagName: 'textarea'},1185  {name: 'media', tagName: 'link'},1186  {1187    name: 'media',1188    containerTagName: 'svg',1189    tagName: 'style',1190    read: getSVGProperty('media'),1191  },1192  {name: 'mediaGroup', tagName: 'video', read: getAttribute('mediagroup')}, // TODO: Not yet implemented in Chrome.1193  {name: 'method', tagName: 'form', overrideStringValue: 'POST'},1194  {1195    name: 'method',1196    containerTagName: 'svg',1197    tagName: 'textPath',1198    read: getSVGProperty('method'),1199    overrideStringValue: 'stretch',1200  },1201  {name: 'min', tagName: 'input'},1202  {name: 'min', tagName: 'meter'},1203  {1204    name: 'min',1205    containerTagName: 'svg',1206    tagName: 'animate',1207    read: getSVGAttribute('min'),1208  },1209  {name: 'minLength', tagName: 'input'},1210  {1211    name: 'mode',1212    read: getSVGProperty('mode'),1213    containerTagName: 'svg',1214    tagName: 'feBlend',1215    overrideStringValue: 'multiply',1216  },1217  {name: 'multiple', tagName: 'select'},1218  {name: 'muted', tagName: 'video'},1219  {name: 'name', tagName: 'input'},1220  {1221    name: 'name',1222    containerTagName: 'svg',1223    tagName: 'color-profile',1224    read: getSVGAttribute('color-profile'),1225  },1226  {name: 'noModule', tagName: 'script'},1227  {name: 'nonce', read: getAttribute('nonce')},1228  {name: 'noValidate', tagName: 'form'},1229  {1230    name: 'numOctaves',1231    read: getSVGProperty('numOctaves'),1232    containerTagName: 'svg',1233    tagName: 'feTurbulence',1234  },1235  {1236    name: 'offset',1237    read: getSVGProperty('offset'),1238    containerTagName: 'svg',1239    tagName: 'stop',1240  },1241  {name: 'on-click'}, // TODO: Check for event subscriptions1242  {name: 'on-unknownevent'}, // TODO: Check for event subscriptions1243  {name: 'onclick'}, // TODO: Check for event subscriptions1244  {name: 'onClick'}, // TODO: Check for event subscriptions1245  {name: 'onunknownevent'}, // TODO: Check for event subscriptions1246  {name: 'onUnknownEvent'}, // TODO: Check for event subscriptions1247  {1248    name: 'opacity',1249    containerTagName: 'svg',1250    tagName: 'path',1251    read: getSVGAttribute('opacity'),1252  },1253  {name: 'open', tagName: 'details'},1254  {1255    name: 'operator',1256    read: getSVGProperty('operator'),1257    containerTagName: 'svg',1258    tagName: 'feComposite',1259    overrideStringValue: 'xor',1260  },1261  {name: 'optimum', tagName: 'meter'},1262  {1263    name: 'order',1264    read: getSVGAttribute('order'),1265    containerTagName: 'svg',1266    tagName: 'feConvolveMatrix',1267  },1268  {1269    name: 'orient',1270    read: getSVGAttribute('orient'),1271    containerTagName: 'svg',1272    tagName: 'marker',1273  },1274  {1275    name: 'orientation',1276    read: getSVGAttribute('orientation'),1277    containerTagName: 'svg',1278    tagName: 'glyph',1279  },1280  {1281    name: 'origin',1282    read: getSVGAttribute('origin'),1283    containerTagName: 'svg',1284    tagName: 'animateMotion',1285  },1286  {1287    name: 'overflow',1288    containerTagName: 'svg',1289    tagName: 'path',1290    read: getSVGAttribute('overflow'),1291  },1292  {1293    name: 'overline-position',1294    read: getSVGAttribute('overline-position'),1295    containerTagName: 'svg',1296    tagName: 'font-face',1297  },1298  {1299    name: 'overline-thickness',1300    read: getSVGAttribute('overline-thickness'),1301    containerTagName: 'svg',1302    tagName: 'font-face',1303  },1304  {1305    name: 'overlinePosition',1306    read: getSVGAttribute('overline-position'),1307    containerTagName: 'svg',1308    tagName: 'font-face',1309  },1310  {1311    name: 'overlineThickness',1312    read: getSVGAttribute('overline-thickness'),1313    containerTagName: 'svg',1314    tagName: 'font-face',1315  },1316  {1317    name: 'paint-order',1318    containerTagName: 'svg',1319    tagName: 'path',1320    read: getSVGAttribute('paint-order'),1321  },1322  {1323    name: 'paintOrder',1324    containerTagName: 'svg',1325    tagName: 'path',1326    read: getSVGAttribute('paint-order'),1327  },1328  {1329    name: 'panose-1',1330    read: getSVGAttribute('panose-1'),1331    containerTagName: 'svg',1332    tagName: 'font-face',1333  },1334  {1335    name: 'panose1',1336    containerTagName: 'svg',1337    tagName: 'font-face',1338    read: getSVGAttribute('panose-1'),1339  },1340  {1341    name: 'pathLength',1342    read: getSVGProperty('pathLength'),1343    containerTagName: 'svg',1344    tagName: 'path',1345  },1346  {name: 'pattern', tagName: 'input'},1347  {1348    name: 'patternContentUnits',1349    read: getSVGProperty('patternContentUnits'),1350    containerTagName: 'svg',1351    tagName: 'pattern',1352    overrideStringValue: 'objectBoundingBox',1353  },1354  {1355    name: 'patternTransform',1356    read: getSVGProperty('patternTransform'),1357    containerTagName: 'svg',1358    tagName: 'pattern',1359    overrideStringValue:1360      'translate(-10,-20) scale(2) rotate(45) translate(5,10)',1361  },1362  {1363    name: 'patternUnits',1364    read: getSVGProperty('patternUnits'),1365    containerTagName: 'svg',1366    tagName: 'pattern',1367    overrideStringValue: 'userSpaceOnUse',1368  },1369  {name: 'placeholder', tagName: 'input'},1370  {name: 'playsInline', read: getAttribute('playsinline')},1371  {1372    name: 'pointer-events',1373    containerTagName: 'svg',1374    tagName: 'path',1375    read: getSVGAttribute('pointer-events'),1376  },1377  {1378    name: 'pointerEvents',1379    containerTagName: 'svg',1380    tagName: 'path',1381    read: getSVGAttribute('pointer-events'),1382  },1383  {1384    name: 'points',1385    read: getSVGProperty('points'),1386    containerTagName: 'svg',1387    tagName: 'polygon',1388    overrideStringValue: '350,75  379,161 469,161',1389  },1390  {1391    name: 'pointsAtX',1392    read: getSVGProperty('pointsAtX'),1393    containerTagName: 'svg',1394    tagName: 'feSpotLight',1395  },1396  {1397    name: 'pointsAtY',1398    read: getSVGProperty('pointsAtY'),1399    containerTagName: 'svg',1400    tagName: 'feSpotLight',1401  },1402  {1403    name: 'pointsAtZ',1404    read: getSVGProperty('pointsAtZ'),1405    containerTagName: 'svg',1406    tagName: 'feSpotLight',1407  },1408  {1409    name: 'poster',1410    tagName: 'video',1411    overrideStringValue: 'https://reactjs.com',1412  },1413  {name: 'prefix', read: getAttribute('prefix')},1414  {name: 'preload', tagName: 'video', overrideStringValue: 'none'},1415  {1416    name: 'preserveAlpha',1417    read: getSVGProperty('preserveAlpha'),1418    containerTagName: 'svg',1419    tagName: 'feConvolveMatrix',1420  },1421  {1422    name: 'preserveAspectRatio',1423    read: getSVGProperty('preserveAspectRatio'),1424    containerTagName: 'svg',1425    tagName: 'feImage',1426    overrideStringValue: 'xMinYMin slice',1427  },1428  {1429    name: 'primitiveUnits',1430    read: getSVGProperty('primitiveUnits'),1431    containerTagName: 'svg',1432    tagName: 'filter',1433    overrideStringValue: 'objectBoundingBox',1434  },1435  {name: 'profile', read: getAttribute('profile')},1436  {name: 'property', read: getAttribute('property')},1437  {name: 'props', read: getAttribute('props')},1438  {1439    name: 'r',1440    read: getSVGProperty('r'),1441    containerTagName: 'svg',1442    tagName: 'circle',1443    overrideStringValue: '10pt',1444  },1445  {name: 'radioGroup', tagName: 'command', read: getAttribute('radiogroup')},1446  {1447    name: 'radius',1448    read: getSVGAttribute('radius'),1449    containerTagName: 'svg',1450    tagName: 'feMorphology',1451  },1452  {name: 'readOnly', tagName: 'input'},1453  {name: 'referrerPolicy', tagName: 'iframe'},1454  {1455    name: 'refX',1456    read: getSVGProperty('refX'),1457    containerTagName: 'svg',1458    tagName: 'marker',1459    overrideStringValue: '5em',1460  },1461  {1462    name: 'refY',1463    read: getSVGProperty('refY'),1464    containerTagName: 'svg',1465    tagName: 'marker',1466    overrideStringValue: '6em',1467  },1468  {name: 'rel', tagName: 'a'},1469  {1470    name: 'rendering-intent',1471    read: getSVGAttribute('rendering-intent'),1472    containerTagName: 'svg',1473    tagName: 'color-profile',1474  },1475  {1476    name: 'renderingIntent',1477    read: getSVGAttribute('rendering-intent'),1478    containerTagName: 'svg',1479    tagName: 'color-profile',1480  },1481  {1482    name: 'repeatCount',1483    read: getSVGAttribute('repeatcount'),1484    containerTagName: 'svg',1485    tagName: 'animate',1486  },1487  {1488    name: 'repeatDur',1489    read: getSVGAttribute('repeatdur'),1490    containerTagName: 'svg',1491    tagName: 'animate',1492  },1493  {name: 'required', tagName: 'input'},1494  {1495    name: 'requiredExtensions',1496    read: getSVGProperty('requiredExtensions'),1497    containerTagName: 'svg',1498    tagName: 'a',1499  },1500  {1501    name: 'requiredFeatures',1502    read: getSVGAttribute('requiredFeatures'),1503    containerTagName: 'svg',1504    tagName: 'a',1505  },1506  {name: 'resource', read: getAttribute('resource')},1507  {1508    name: 'restart',1509    read: getSVGAttribute('resource'),1510    containerTagName: 'svg',1511    tagName: 'animate',1512  },1513  {1514    name: 'result',1515    read: getSVGProperty('result'),1516    containerTagName: 'svg',1517    tagName: 'feBlend',1518  },1519  {name: 'results', tagName: 'input', read: getAttribute('results')}, // TODO: Should use property but it's not supported in Chrome.1520  {name: 'reversed', tagName: 'ol'},1521  {name: 'role', read: getAttribute('role')},1522  {1523    name: 'rotate',1524    read: getSVGAttribute('role'),1525    containerTagName: 'svg',1526    tagName: 'altGlyph',1527  },1528  {name: 'rows', tagName: 'textarea'},1529  {name: 'rowSpan', containerTagName: 'tr', tagName: 'td'},1530  {1531    name: 'rx',1532    read: getSVGProperty('rx'),1533    containerTagName: 'svg',1534    tagName: 'ellipse',1535    overrideStringValue: '1px',1536  },1537  {1538    name: 'ry',1539    read: getSVGProperty('ry'),1540    containerTagName: 'svg',1541    tagName: 'ellipse',1542    overrideStringValue: '2px',1543  },1544  {1545    name: 'sandbox',1546    tagName: 'iframe',1547    overrideStringValue: 'allow-forms  allow-scripts',1548  },1549  {1550    name: 'scale',1551    read: getSVGProperty('scale'),1552    containerTagName: 'svg',1553    tagName: 'feDisplacementMap',1554  },1555  {1556    name: 'scope',1557    containerTagName: 'tr',1558    tagName: 'th',1559    overrideStringValue: 'row',1560  },1561  {name: 'scoped', tagName: 'style', read: getAttribute('scoped')},1562  {name: 'scrolling', tagName: 'iframe', overrideStringValue: 'no'},1563  {name: 'seamless', tagName: 'iframe', read: getAttribute('seamless')},1564  {name: 'security', tagName: 'iframe', read: getAttribute('security')},1565  {1566    name: 'seed',1567    read: getSVGProperty('seed'),1568    containerTagName: 'svg',1569    tagName: 'feTurbulence',1570  },1571  {name: 'selected', tagName: 'option', containerTagName: 'select'},1572  {name: 'selectedIndex', tagName: 'select'},1573  {name: 'shape', tagName: 'a'},1574  {1575    name: 'shape-rendering',1576    tagName: 'svg',1577    read: getSVGAttribute('shape-rendering'),1578  },1579  {1580    name: 'shapeRendering',1581    tagName: 'svg',1582    read: getSVGAttribute('shape-rendering'),1583  },1584  {name: 'size', tagName: 'input'},1585  {name: 'sizes', tagName: 'link'},1586  {1587    name: 'slope',1588    read: getSVGAttribute('slope'),1589    containerTagName: 'svg',1590    tagName: 'font-face',1591  },1592  {1593    name: 'spacing',1594    read: getSVGProperty('spacing'),1595    containerTagName: 'svg',1596    tagName: 'textPath',1597    overrideStringValue: 'auto',1598  },1599  {name: 'span', containerTagName: 'colgroup', tagName: 'col'},1600  {1601    name: 'specularConstant',1602    read: getSVGProperty('specularConstant'),1603    containerTagName: 'svg',1604    tagName: 'feSpecularLighting',1605  },1606  {1607    name: 'specularExponent',1608    read: getSVGProperty('specularConstant'),1609    containerTagName: 'svg',1610    tagName: 'feSpecularLighting',1611  },1612  {name: 'speed', read: getAttribute('speed')},1613  {1614    name: 'spellCheck',1615    overrideStringValue: 'false',1616    tagName: 'input',1617    read: getProperty('spellcheck'),1618  },1619  {1620    name: 'spellcheck',1621    overrideStringValue: 'false',1622    tagName: 'input',1623    read: getProperty('spellcheck'),1624  },1625  {1626    name: 'spreadMethod',1627    read: getSVGProperty('spreadMethod'),1628    containerTagName: 'svg',1629    tagName: 'linearGradient',1630    overrideStringValue: 'reflect',1631  },1632  {name: 'src', tagName: 'img', overrideStringValue: 'https://reactjs.com'},1633  {1634    name: 'srcDoc',1635    tagName: 'iframe',1636    overrideStringValue: '<p>Hi</p>',1637    read: getProperty('srcdoc'),1638  },1639  {1640    name: 'srcdoc',1641    tagName: 'iframe',1642    overrideStringValue: '<p>Hi</p>',1643    read: getProperty('srcdoc'),1644  },1645  {1646    name: 'srcLang',1647    containerTagName: 'audio',1648    tagName: 'track',1649    overrideStringValue: 'en',1650    read: getProperty('srclang'),1651  },1652  {1653    name: 'srclang',1654    containerTagName: 'audio',1655    tagName: 'track',1656    overrideStringValue: 'en',1657    read: getProperty('srclang'),1658  },1659  {name: 'srcSet', tagName: 'img'},1660  {name: 'srcset', tagName: 'img'},1661  {name: 'start', tagName: 'ol'},1662  {1663    name: 'startOffset',1664    read: getSVGProperty('startOffset'),1665    containerTagName: 'svg',1666    tagName: 'textPath',1667  },1668  {name: 'state', read: getAttribute('state')},1669  {1670    name: 'stdDeviation',1671    read: getSVGAttribute('stdDeviation'),1672    containerTagName: 'svg',1673    tagName: 'feGaussianBlur',1674  },1675  {1676    name: 'stemh',1677    read: getSVGAttribute('stemh'),1678    containerTagName: 'svg',1679    tagName: 'font-face',1680  },1681  {1682    name: 'stemv',1683    read: getSVGAttribute('stemv'),1684    containerTagName: 'svg',1685    tagName: 'font-face',1686  },1687  {name: 'step', read: getAttribute('step')},1688  {1689    name: 'stitchTiles',1690    read: getSVGProperty('stitchTiles'),1691    containerTagName: 'svg',1692    tagName: 'feTurbulence',1693    overrideStringValue: 'stitch',1694  },1695  {1696    name: 'stop-color',1697    containerTagName: 'svg',1698    tagName: 'stop',1699    read: getSVGAttribute('stop-color'),1700  },1701  {1702    name: 'stop-opacity',1703    containerTagName: 'svg',1704    tagName: 'stop',1705    read: getSVGAttribute('stop-opacity'),1706  },1707  {1708    name: 'stopColor',1709    containerTagName: 'svg',1710    tagName: 'stop',1711    read: getSVGAttribute('stop-color'),1712  },1713  {1714    name: 'stopOpacity',1715    containerTagName: 'svg',1716    tagName: 'stop',1717    read: getSVGAttribute('stop-opacity'),1718  },1719  {1720    name: 'strikethrough-position',1721    read: getSVGAttribute('strikethrough-position'),1722    containerTagName: 'svg',1723    tagName: 'font-face',1724  },1725  {1726    name: 'strikethrough-thickness',1727    read: getSVGAttribute('strikethrough-thickness'),1728    containerTagName: 'svg',1729    tagName: 'font-face',1730  },1731  {1732    name: 'strikethroughPosition',1733    read: getSVGAttribute('strikethrough-position'),1734    containerTagName: 'svg',1735    tagName: 'font-face',1736  },1737  {1738    name: 'strikethroughThickness',1739    read: getSVGAttribute('strikethrough-thickness'),1740    containerTagName: 'svg',1741    tagName: 'font-face',1742  },1743  {1744    name: 'string',1745    read: getSVGAttribute('string'),1746    containerTagName: 'svg',1747    tagName: 'font-face-format',1748  },1749  {1750    name: 'stroke',1751    containerTagName: 'svg',1752    tagName: 'path',1753    read: getSVGAttribute('stroke'),1754  },1755  {1756    name: 'stroke-dasharray',1757    containerTagName: 'svg',1758    tagName: 'path',1759    read: getSVGAttribute('stroke-dasharray'),1760  },1761  {1762    name: 'stroke-Dasharray',1763    containerTagName: 'svg',1764    tagName: 'path',1765    read: getSVGAttribute('stroke-dasharray'),1766  },1767  {1768    name: 'stroke-dashoffset',1769    containerTagName: 'svg',1770    tagName: 'path',1771    read: getSVGAttribute('stroke-dashoffset'),1772  },1773  {1774    name: 'stroke-linecap',1775    containerTagName: 'svg',1776    tagName: 'path',1777    read: getSVGAttribute('stroke-linecap'),1778  },1779  {1780    name: 'stroke-linejoin',1781    containerTagName: 'svg',1782    tagName: 'path',1783    read: getSVGAttribute('stroke-linejoin'),1784  },1785  {1786    name: 'stroke-miterlimit',1787    containerTagName: 'svg',1788    tagName: 'path',1789    read: getSVGAttribute('stroke-miterlimit'),1790  },1791  {1792    name: 'stroke-opacity',1793    containerTagName: 'svg',1794    tagName: 'path',1795    read: getSVGAttribute('stroke-opacity'),1796  },1797  {1798    name: 'stroke-width',1799    containerTagName: 'svg',1800    tagName: 'path',1801    read: getSVGAttribute('stroke-width'),1802  },1803  {1804    name: 'strokeDasharray',1805    containerTagName: 'svg',1806    tagName: 'path',1807    read: getSVGAttribute('stroke-dasharray'),1808  },1809  {1810    name: 'strokeDashoffset',1811    containerTagName: 'svg',1812    tagName: 'path',1813    read: getSVGAttribute('stroke-dashoffset'),1814  },1815  {1816    name: 'strokeLinecap',1817    containerTagName: 'svg',1818    tagName: 'path',1819    read: getSVGAttribute('stroke-linecap'),1820  },1821  {1822    name: 'strokeLinejoin',1823    containerTagName: 'svg',1824    tagName: 'path',1825    read: getSVGAttribute('stroke-linejoin'),1826  },1827  {1828    name: 'strokeMiterlimit',1829    containerTagName: 'svg',1830    tagName: 'path',1831    read: getSVGAttribute('stroke-miterlimit'),1832  },1833  {1834    name: 'strokeOpacity',1835    containerTagName: 'svg',1836    tagName: 'path',1837    read: getSVGAttribute('stroke-opacity'),1838  },1839  {1840    name: 'strokeWidth',1841    containerTagName: 'svg',1842    tagName: 'path',1843    read: getSVGAttribute('stroke-width'),1844  },1845  {name: 'style'},1846  {name: 'summary', tagName: 'table'},1847  {1848    name: 'suppressContentEditableWarning',1849    read: getAttribute('suppresscontenteditablewarning'),1850  },1851  {1852    name: 'surfaceScale',1853    read: getSVGProperty('surfaceScale'),1854    containerTagName: 'svg',1855    tagName: 'feDiffuseLighting',1856  },1857  {1858    name: 'systemLanguage',1859    overrideStringValue: 'en',1860    read: getSVGProperty('systemLanguage'),1861    containerTagName: 'svg',1862    tagName: 'a',1863  },1864  {name: 'tabIndex'},1865  {1866    name: 'tabIndex',1867    read: getSVGProperty('tabIndex'),1868    tagName: 'svg',1869  },1870  {1871    name: 'tableValues',1872    read: getSVGProperty('tableValues'),1873    containerTagName: 'svg',1874    tagName: 'feFuncA',1875    overrideStringValue: '0 1 2 3',1876  },1877  {1878    name: 'target',1879    read: getSVGProperty('target'),1880    containerTagName: 'svg',1881    tagName: 'a',1882  },1883  {1884    name: 'targetX',1885    read: getSVGProperty('targetX'),1886    containerTagName: 'svg',1887    tagName: 'feConvolveMatrix',1888  },1889  {1890    name: 'targetY',1891    read: getSVGProperty('targetY'),1892    containerTagName: 'svg',1893    tagName: 'feConvolveMatrix',1894  },1895  {1896    name: 'text-anchor',1897    containerTagName: 'svg',1898    tagName: 'text',1899    read: getSVGAttribute('text-anchor'),1900  },1901  {1902    name: 'text-decoration',1903    containerTagName: 'svg',1904    tagName: 'text',1905    read: getSVGAttribute('text-decoration'),1906  },1907  {1908    name: 'text-rendering',1909    tagName: 'svg',1910    read: getSVGAttribute('text-rendering'),1911  },1912  {1913    name: 'textAnchor',1914    containerTagName: 'svg',1915    tagName: 'text',1916    read: getSVGAttribute('text-anchor'),1917  },1918  {1919    name: 'textDecoration',1920    containerTagName: 'svg',1921    tagName: 'text',1922    read: getSVGAttribute('text-decoration'),1923  },1924  {1925    name: 'textLength',1926    read: getSVGProperty('textLength'),1927    containerTagName: 'svg',1928    tagName: 'text',1929  },1930  {1931    name: 'textRendering',1932    tagName: 'svg',1933    read: getSVGAttribute('text-rendering'),1934  },1935  {name: 'title'},1936  {1937    name: 'to',1938    read: getSVGAttribute('to'),1939    containerTagName: 'svg',1940    tagName: 'set',1941  },1942  {1943    name: 'transform',1944    read: getSVGProperty('transform'),1945    containerTagName: 'svg',1946    tagName: 'a',1947    overrideStringValue:1948      'translate(-10,-20) scale(2) rotate(45) translate(5,10)',1949  },1950  {name: 'type', tagName: 'button', overrideStringValue: 'reset'},1951  {1952    name: 'type',1953    containerTagName: 'svg',1954    tagName: 'feFuncA',1955    read: getSVGProperty('type'),1956    overrideStringValue: 'discrete',1957  },1958  {name: 'typeof', read: getAttribute('typeof')},1959  {1960    name: 'u1',1961    read: getSVGAttribute('u1'),1962    containerTagName: 'svg',1963    tagName: 'hkern',1964  },1965  {1966    name: 'u2',1967    read: getSVGAttribute('u2'),1968    containerTagName: 'svg',1969    tagName: 'hkern',1970  },1971  {1972    name: 'underline-position',1973    read: getSVGAttribute('underline-position'),1974    containerTagName: 'svg',1975    tagName: 'font-face',1976  },1977  {1978    name: 'underline-thickness',1979    read: getSVGAttribute('underline-thickness'),1980    containerTagName: 'svg',1981    tagName: 'font-face',1982  },1983  {1984    name: 'underlinePosition',1985    read: getSVGAttribute('underline-position'),1986    containerTagName: 'svg',1987    tagName: 'font-face',1988  },1989  {1990    name: 'underlineThickness',1991    read: getSVGAttribute('underline-thickness'),1992    containerTagName: 'svg',1993    tagName: 'font-face',1994  },1995  {1996    name: 'unicode',1997    read: getSVGAttribute('unicode'),1998    containerTagName: 'svg',1999    tagName: 'glyph',2000  },2001  {2002    name: 'unicode-bidi',2003    containerTagName: 'svg',2004    tagName: 'text',2005    read: getSVGAttribute('unicode-bidi'),2006  },2007  {2008    name: 'unicode-range',2009    read: getSVGAttribute('unicode-range'),2010    containerTagName: 'svg',2011    tagName: 'font-face',2012  },2013  {2014    name: 'unicodeBidi',2015    containerTagName: 'svg',2016    tagName: 'text',2017    read: getSVGAttribute('unicode-bidi'),2018  },2019  {2020    name: 'unicodeRange',2021    read: getSVGAttribute('unicode-range'),2022    containerTagName: 'svg',2023    tagName: 'font-face',2024  },2025  {2026    name: 'units-per-em',2027    read: getSVGAttribute('units-per-em'),2028    containerTagName: 'svg',2029    tagName: 'font-face',2030  },2031  {2032    name: 'unitsPerEm',2033    read: getSVGAttribute('unites-per-em'),2034    containerTagName: 'svg',2035    tagName: 'font-face',2036  },2037  {name: 'unknown', read: getAttribute('unknown')},2038  {2039    name: 'unselectable',2040    read: getAttribute('unselectable'),2041    tagName: 'span',2042    overrideStringValue: 'on',2043  },2044  {name: 'useMap', tagName: 'img'},2045  {2046    name: 'v-alphabetic',2047    read: getSVGAttribute('v-alphabetic'),2048    containerTagName: 'svg',2049    tagName: 'font-face',2050  },2051  {2052    name: 'v-hanging',2053    read: getSVGAttribute('v-hanging'),2054    containerTagName: 'svg',2055    tagName: 'font-face',2056  },2057  {2058    name: 'v-ideographic',2059    read: getSVGAttribute('v-ideographic'),2060    containerTagName: 'svg',2061    tagName: 'font-face',2062  },2063  {2064    name: 'v-mathematical',2065    read: getSVGAttribute('v-mathematical'),2066    containerTagName: 'svg',2067    tagName: 'font-face',2068  },2069  {2070    name: 'vAlphabetic',2071    read: getSVGAttribute('v-alphabetic'),2072    containerTagName: 'svg',2073    tagName: 'font-face',2074  },2075  {name: 'value', tagName: 'input', extraProps: {onChange() {}}},2076  {name: 'value', tagName: 'input', type: 'email', extraProps: {onChange() {}}},2077  {2078    name: 'value',2079    tagName: 'input',2080    type: 'number',2081    extraProps: {onChange() {}},2082  },2083  {name: 'value', tagName: 'textarea', extraProps: {onChange() {}}},2084  {2085    name: 'value',2086    containerTagName: 'select',2087    tagName: 'option',2088    extraProps: {onChange() {}},2089  },2090  {2091    name: 'Value',2092    containerTagName: 'select',2093    tagName: 'option',2094    read: getProperty('value'),2095  },2096  {2097    name: 'values',2098    read: getSVGProperty('values'),2099    containerTagName: 'svg',2100    tagName: 'feColorMatrix',2101    overrideStringValue: '1 0 0 0 0  0 1 0 0 0  0 0 1 0 0  0 0 0 1 0',2102  },2103  {2104    name: 'vector-effect',2105    containerTagName: 'svg',2106    tagName: 'line',2107    read: getSVGAttribute('vector-effect'),2108  },2109  {2110    name: 'vectorEffect',2111    containerTagName: 'svg',2112    tagName: 'line',2113    read: getSVGAttribute('vector-effect'),2114  },2115  {name: 'version', containerTagName: 'document', tagName: 'html'},2116  {name: 'version', tagName: 'svg', read: getSVGAttribute('version')},2117  {2118    name: 'vert-adv-y',2119    read: getSVGAttribute('vert-origin-y'),2120    containerTagName: 'svg',2121    tagName: 'font',2122  },2123  {2124    name: 'vert-origin-x',2125    read: getSVGAttribute('vert-origin-y'),2126    containerTagName: 'svg',2127    tagName: 'font',2128  },2129  {2130    name: 'vert-origin-y',2131    read: getSVGAttribute('vert-origin-y'),2132    containerTagName: 'svg',2133    tagName: 'font',2134  },2135  {2136    name: 'vertAdvY',2137    read: getSVGAttribute('vert-adv-y'),2138    containerTagName: 'svg',2139    tagName: 'font',2140  },2141  {2142    name: 'vertOriginX',2143    read: getSVGAttribute('vert-origin-x'),2144    containerTagName: 'svg',2145    tagName: 'font',2146  },2147  {2148    name: 'vertOriginY',2149    read: getSVGAttribute('vert-origin-y'),2150    containerTagName: 'svg',2151    tagName: 'font',2152  },2153  {2154    name: 'vHanging',2155    read: getSVGAttribute('v-hanging'),2156    containerTagName: 'svg',2157    tagName: 'font-face',2158  },2159  {2160    name: 'vIdeographic',2161    read: getSVGAttribute('v-ideographic'),2162    containerTagName: 'svg',2163    tagName: 'font-face',2164  },2165  {2166    name: 'viewBox',2167    read: getSVGProperty('viewBox'),2168    containerTagName: 'svg',2169    tagName: 'marker',2170    overrideStringValue: '0 0 1500 1000',2171  },2172  {2173    name: 'viewTarget',2174    read: getSVGAttribute('viewTarget'),2175    containerTagName: 'svg',2176    tagName: 'view',2177  },2178  {name: 'visibility', read: getAttribute('visibility')},2179  {2180    name: 'visibility',2181    containerTagName: 'svg',2182    tagName: 'path',2183    read: getSVGAttribute('visibility'),2184  },2185  {2186    name: 'vMathematical',2187    read: getSVGAttribute('v-mathematical'),2188    containerTagName: 'svg',2189    tagName: 'font-face',2190  },2191  {name: 'vocab', read: getAttribute('vocab')},2192  {name: 'width', tagName: 'img'},2193  {2194    name: 'width',2195    containerTagName: 'svg',2196    tagName: 'rect',2197    read: getSVGProperty('width'),2198  },2199  {2200    name: 'widths',2201    read: getSVGAttribute('widths'),2202    containerTagName: 'svg',2203    tagName: 'font-face',2204  },2205  {name: 'wmode', read: getAttribute('wmode'), tagName: 'embed'},2206  {2207    name: 'word-spacing',2208    containerTagName: 'svg',2209    tagName: 'text',2210    read: getSVGAttribute('word-spacing'),2211  },2212  {2213    name: 'wordSpacing',2214    containerTagName: 'svg',2215    tagName: 'text',2216    read: getSVGAttribute('word-spacing'),2217  },2218  {name: 'wrap', tagName: 'textarea'},2219  {2220    name: 'writing-mode',2221    containerTagName: 'svg',2222    tagName: 'text',2223    read: getSVGAttribute('writing-mode'),2224  },2225  {2226    name: 'writingMode',2227    containerTagName: 'svg',2228    tagName: 'text',2229    read: getSVGAttribute('writing-mode'),2230  },2231  {2232    name: 'x',2233    read: getSVGAttribute('x'),2234    containerTagName: 'svg',2235    tagName: 'altGlyph',2236  },2237  {2238    name: 'x-height',2239    read: getSVGAttribute('x-height'),2240    containerTagName: 'svg',2241    tagName: 'font-face',2242  },2243  {2244    name: 'x1',2245    read: getSVGProperty('x1'),2246    containerTagName: 'svg',2247    tagName: 'line',2248  },2249  {2250    name: 'x2',2251    read: getSVGProperty('x2'),2252    containerTagName: 'svg',2253    tagName: 'line',2254  },2255  {2256    name: 'xChannelSelector',2257    read: getSVGProperty('xChannelSelector'),2258    containerTagName: 'svg',2259    tagName: 'feDisplacementMap',2260    overrideStringValue: 'R',2261  },2262  {2263    name: 'xHeight',2264    read: getSVGAttribute('x-height'),2265    containerTagName: 'svg',2266    tagName: 'font-face',2267  },2268  {name: 'XLink:Actuate', read: getAttribute('XLink:Actuate')},2269  {name: 'xlink:actuate', read: getAttribute('xlink:actuate')},2270  {name: 'xlink:arcrole', read: getAttribute('xlink:arcrole')},2271  {name: 'xlink:href', read: getAttribute('xlink:href')},2272  {name: 'xlink:role', read: getAttribute('xlink:role')},2273  {name: 'xlink:show', read: getAttribute('xlink:show')},2274  {name: 'xlink:title', read: getAttribute('xlink:title')},2275  {name: 'xlink:type', read: getAttribute('xlink:type')},2276  {name: 'xlinkActuate', read: getAttribute('xlink:actuate')},2277  {name: 'XlinkActuate', read: getAttribute('Xlink:actuate')},2278  {name: 'xlinkArcrole', read: getAttribute('xlink:arcrole')},2279  {name: 'xlinkHref', read: getAttribute('xlink:href')},2280  {name: 'xlinkRole', read: getAttribute('xlink:role')},2281  {name: 'xlinkShow', read: getAttribute('xlink:show')},2282  {name: 'xlinkTitle', read: getAttribute('xlink:title')},2283  {name: 'xlinkType', read: getAttribute('xlink:type')},2284  {name: 'xml:base', read: getAttribute('xml:base')},2285  {name: 'xml:lang', read: getAttribute('xml:lang')},2286  {name: 'xml:space', read: getAttribute('xml:space')},2287  {name: 'xmlBase', read: getAttribute('xml:base')},2288  {name: 'xmlLang', read: getAttribute('xml:lang')},2289  {name: 'xmlns', read: getProperty('namespaceURI'), tagName: 'svg'},2290  {name: 'xmlns:xlink', read: getAttribute('xmlns:xlink')},2291  {name: 'xmlnsXlink', read: getAttribute('xmlns:xlink')},2292  {name: 'xmlSpace', read: getAttribute('xml:space')},2293  {2294    name: 'y',2295    read: getSVGAttribute('y'),2296    containerTagName: 'svg',2297    tagName: 'altGlyph',2298  },2299  {2300    name: 'y1',2301    read: getSVGProperty('y1'),2302    containerTagName: 'svg',2303    tagName: 'line',2304  },2305  {2306    name: 'y2',2307    read: getSVGProperty('y2'),2308    containerTagName: 'svg',2309    tagName: 'line',2310  },2311  {2312    name: 'yChannelSelector',2313    read: getSVGProperty('yChannelSelector'),2314    containerTagName: 'svg',2315    tagName: 'feDisplacementMap',2316    overrideStringValue: 'B',2317  },2318  {2319    name: 'z',2320    read: getSVGProperty('z'),2321    containerTagName: 'svg',2322    tagName: 'fePointLight',2323  },2324  {name: 'zoomAndPan', read: getSVGProperty('zoomAndPan'), tagName: 'svg'},2325];2326attributes.forEach(attr => {2327  attr.read = attr.read || getProperty(attr.name);2328});...b3793702.goog.dom.tagname.js
Source:b3793702.goog.dom.tagname.js  
1// Copyright 2007 The Closure Library Authors. All Rights Reserved.2//3// Licensed under the Apache License, Version 2.0 (the "License");4// you may not use this file except in compliance with the License.5// You may obtain a copy of the License at6//7//      http://www.apache.org/licenses/LICENSE-2.08//9// Unless required by applicable law or agreed to in writing, software10// distributed under the License is distributed on an "AS-IS" BASIS,11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.12// See the License for the specific language governing permissions and13// limitations under the License.14/**15 * @fileoverview Defines the goog.dom.TagName class. Its constants enumerate16 * all HTML tag names specified in either the W3C HTML 4.01 index of elements17 * or the HTML5.1 specification.18 *19 * References:20 * https://www.w3.org/TR/html401/index/elements.html21 * https://www.w3.org/TR/html51/dom.html#elements22 */23goog.provide('goog.dom.TagName');24goog.require('goog.dom.HtmlElement');25/**26 * A tag name with the type of the element stored in the generic.27 * @param {string} tagName28 * @constructor29 * @template T30 */31goog.dom.TagName = function(tagName) {32  /** @private {string} */33  this.tagName_ = tagName;34};35/**36 * Returns the tag name.37 * @return {string}38 * @override39 */40goog.dom.TagName.prototype.toString = function() {41  return this.tagName_;42};43// Closure Compiler unconditionally converts the following constants to their44// string value (goog.dom.TagName.A -> 'A'). These are the consequences:45// 1. Don't add any members or static members to goog.dom.TagName as they46//    couldn't be accessed after this optimization.47// 2. Keep the constant name and its string value the same:48//    goog.dom.TagName.X = new goog.dom.TagName('Y');49//    is converted to 'X', not 'Y'.50/** @type {!goog.dom.TagName<!HTMLAnchorElement>} */51goog.dom.TagName.A = new goog.dom.TagName('A');52/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */53goog.dom.TagName.ABBR = new goog.dom.TagName('ABBR');54/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */55goog.dom.TagName.ACRONYM = new goog.dom.TagName('ACRONYM');56/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */57goog.dom.TagName.ADDRESS = new goog.dom.TagName('ADDRESS');58/** @type {!goog.dom.TagName<!HTMLAppletElement>} */59goog.dom.TagName.APPLET = new goog.dom.TagName('APPLET');60/** @type {!goog.dom.TagName<!HTMLAreaElement>} */61goog.dom.TagName.AREA = new goog.dom.TagName('AREA');62/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */63goog.dom.TagName.ARTICLE = new goog.dom.TagName('ARTICLE');64/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */65goog.dom.TagName.ASIDE = new goog.dom.TagName('ASIDE');66/** @type {!goog.dom.TagName<!HTMLAudioElement>} */67goog.dom.TagName.AUDIO = new goog.dom.TagName('AUDIO');68/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */69goog.dom.TagName.B = new goog.dom.TagName('B');70/** @type {!goog.dom.TagName<!HTMLBaseElement>} */71goog.dom.TagName.BASE = new goog.dom.TagName('BASE');72/** @type {!goog.dom.TagName<!HTMLBaseFontElement>} */73goog.dom.TagName.BASEFONT = new goog.dom.TagName('BASEFONT');74/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */75goog.dom.TagName.BDI = new goog.dom.TagName('BDI');76/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */77goog.dom.TagName.BDO = new goog.dom.TagName('BDO');78/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */79goog.dom.TagName.BIG = new goog.dom.TagName('BIG');80/** @type {!goog.dom.TagName<!HTMLQuoteElement>} */81goog.dom.TagName.BLOCKQUOTE = new goog.dom.TagName('BLOCKQUOTE');82/** @type {!goog.dom.TagName<!HTMLBodyElement>} */83goog.dom.TagName.BODY = new goog.dom.TagName('BODY');84/** @type {!goog.dom.TagName<!HTMLBRElement>} */85goog.dom.TagName.BR = new goog.dom.TagName('BR');86/** @type {!goog.dom.TagName<!HTMLButtonElement>} */87goog.dom.TagName.BUTTON = new goog.dom.TagName('BUTTON');88/** @type {!goog.dom.TagName<!HTMLCanvasElement>} */89goog.dom.TagName.CANVAS = new goog.dom.TagName('CANVAS');90/** @type {!goog.dom.TagName<!HTMLTableCaptionElement>} */91goog.dom.TagName.CAPTION = new goog.dom.TagName('CAPTION');92/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */93goog.dom.TagName.CENTER = new goog.dom.TagName('CENTER');94/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */95goog.dom.TagName.CITE = new goog.dom.TagName('CITE');96/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */97goog.dom.TagName.CODE = new goog.dom.TagName('CODE');98/** @type {!goog.dom.TagName<!HTMLTableColElement>} */99goog.dom.TagName.COL = new goog.dom.TagName('COL');100/** @type {!goog.dom.TagName<!HTMLTableColElement>} */101goog.dom.TagName.COLGROUP = new goog.dom.TagName('COLGROUP');102/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */103goog.dom.TagName.COMMAND = new goog.dom.TagName('COMMAND');104/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */105goog.dom.TagName.DATA = new goog.dom.TagName('DATA');106/** @type {!goog.dom.TagName<!HTMLDataListElement>} */107goog.dom.TagName.DATALIST = new goog.dom.TagName('DATALIST');108/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */109goog.dom.TagName.DD = new goog.dom.TagName('DD');110/** @type {!goog.dom.TagName<!HTMLModElement>} */111goog.dom.TagName.DEL = new goog.dom.TagName('DEL');112/** @type {!goog.dom.TagName<!HTMLDetailsElement>} */113goog.dom.TagName.DETAILS = new goog.dom.TagName('DETAILS');114/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */115goog.dom.TagName.DFN = new goog.dom.TagName('DFN');116/** @type {!goog.dom.TagName<!HTMLDialogElement>} */117goog.dom.TagName.DIALOG = new goog.dom.TagName('DIALOG');118/** @type {!goog.dom.TagName<!HTMLDirectoryElement>} */119goog.dom.TagName.DIR = new goog.dom.TagName('DIR');120/** @type {!goog.dom.TagName<!HTMLDivElement>} */121goog.dom.TagName.DIV = new goog.dom.TagName('DIV');122/** @type {!goog.dom.TagName<!HTMLDListElement>} */123goog.dom.TagName.DL = new goog.dom.TagName('DL');124/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */125goog.dom.TagName.DT = new goog.dom.TagName('DT');126/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */127goog.dom.TagName.EM = new goog.dom.TagName('EM');128/** @type {!goog.dom.TagName<!HTMLEmbedElement>} */129goog.dom.TagName.EMBED = new goog.dom.TagName('EMBED');130/** @type {!goog.dom.TagName<!HTMLFieldSetElement>} */131goog.dom.TagName.FIELDSET = new goog.dom.TagName('FIELDSET');132/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */133goog.dom.TagName.FIGCAPTION = new goog.dom.TagName('FIGCAPTION');134/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */135goog.dom.TagName.FIGURE = new goog.dom.TagName('FIGURE');136/** @type {!goog.dom.TagName<!HTMLFontElement>} */137goog.dom.TagName.FONT = new goog.dom.TagName('FONT');138/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */139goog.dom.TagName.FOOTER = new goog.dom.TagName('FOOTER');140/** @type {!goog.dom.TagName<!HTMLFormElement>} */141goog.dom.TagName.FORM = new goog.dom.TagName('FORM');142/** @type {!goog.dom.TagName<!HTMLFrameElement>} */143goog.dom.TagName.FRAME = new goog.dom.TagName('FRAME');144/** @type {!goog.dom.TagName<!HTMLFrameSetElement>} */145goog.dom.TagName.FRAMESET = new goog.dom.TagName('FRAMESET');146/** @type {!goog.dom.TagName<!HTMLHeadingElement>} */147goog.dom.TagName.H1 = new goog.dom.TagName('H1');148/** @type {!goog.dom.TagName<!HTMLHeadingElement>} */149goog.dom.TagName.H2 = new goog.dom.TagName('H2');150/** @type {!goog.dom.TagName<!HTMLHeadingElement>} */151goog.dom.TagName.H3 = new goog.dom.TagName('H3');152/** @type {!goog.dom.TagName<!HTMLHeadingElement>} */153goog.dom.TagName.H4 = new goog.dom.TagName('H4');154/** @type {!goog.dom.TagName<!HTMLHeadingElement>} */155goog.dom.TagName.H5 = new goog.dom.TagName('H5');156/** @type {!goog.dom.TagName<!HTMLHeadingElement>} */157goog.dom.TagName.H6 = new goog.dom.TagName('H6');158/** @type {!goog.dom.TagName<!HTMLHeadElement>} */159goog.dom.TagName.HEAD = new goog.dom.TagName('HEAD');160/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */161goog.dom.TagName.HEADER = new goog.dom.TagName('HEADER');162/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */163goog.dom.TagName.HGROUP = new goog.dom.TagName('HGROUP');164/** @type {!goog.dom.TagName<!HTMLHRElement>} */165goog.dom.TagName.HR = new goog.dom.TagName('HR');166/** @type {!goog.dom.TagName<!HTMLHtmlElement>} */167goog.dom.TagName.HTML = new goog.dom.TagName('HTML');168/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */169goog.dom.TagName.I = new goog.dom.TagName('I');170/** @type {!goog.dom.TagName<!HTMLIFrameElement>} */171goog.dom.TagName.IFRAME = new goog.dom.TagName('IFRAME');172/** @type {!goog.dom.TagName<!HTMLImageElement>} */173goog.dom.TagName.IMG = new goog.dom.TagName('IMG');174/** @type {!goog.dom.TagName<!HTMLInputElement>} */175goog.dom.TagName.INPUT = new goog.dom.TagName('INPUT');176/** @type {!goog.dom.TagName<!HTMLModElement>} */177goog.dom.TagName.INS = new goog.dom.TagName('INS');178/** @type {!goog.dom.TagName<!HTMLIsIndexElement>} */179goog.dom.TagName.ISINDEX = new goog.dom.TagName('ISINDEX');180/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */181goog.dom.TagName.KBD = new goog.dom.TagName('KBD');182// HTMLKeygenElement is deprecated.183/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */184goog.dom.TagName.KEYGEN = new goog.dom.TagName('KEYGEN');185/** @type {!goog.dom.TagName<!HTMLLabelElement>} */186goog.dom.TagName.LABEL = new goog.dom.TagName('LABEL');187/** @type {!goog.dom.TagName<!HTMLLegendElement>} */188goog.dom.TagName.LEGEND = new goog.dom.TagName('LEGEND');189/** @type {!goog.dom.TagName<!HTMLLIElement>} */190goog.dom.TagName.LI = new goog.dom.TagName('LI');191/** @type {!goog.dom.TagName<!HTMLLinkElement>} */192goog.dom.TagName.LINK = new goog.dom.TagName('LINK');193/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */194goog.dom.TagName.MAIN = new goog.dom.TagName('MAIN');195/** @type {!goog.dom.TagName<!HTMLMapElement>} */196goog.dom.TagName.MAP = new goog.dom.TagName('MAP');197/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */198goog.dom.TagName.MARK = new goog.dom.TagName('MARK');199/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */200goog.dom.TagName.MATH = new goog.dom.TagName('MATH');201/** @type {!goog.dom.TagName<!HTMLMenuElement>} */202goog.dom.TagName.MENU = new goog.dom.TagName('MENU');203/** @type {!goog.dom.TagName<!HTMLMenuItemElement>} */204goog.dom.TagName.MENUITEM = new goog.dom.TagName('MENUITEM');205/** @type {!goog.dom.TagName<!HTMLMetaElement>} */206goog.dom.TagName.META = new goog.dom.TagName('META');207/** @type {!goog.dom.TagName<!HTMLMeterElement>} */208goog.dom.TagName.METER = new goog.dom.TagName('METER');209/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */210goog.dom.TagName.NAV = new goog.dom.TagName('NAV');211/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */212goog.dom.TagName.NOFRAMES = new goog.dom.TagName('NOFRAMES');213/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */214goog.dom.TagName.NOSCRIPT = new goog.dom.TagName('NOSCRIPT');215/** @type {!goog.dom.TagName<!HTMLObjectElement>} */216goog.dom.TagName.OBJECT = new goog.dom.TagName('OBJECT');217/** @type {!goog.dom.TagName<!HTMLOListElement>} */218goog.dom.TagName.OL = new goog.dom.TagName('OL');219/** @type {!goog.dom.TagName<!HTMLOptGroupElement>} */220goog.dom.TagName.OPTGROUP = new goog.dom.TagName('OPTGROUP');221/** @type {!goog.dom.TagName<!HTMLOptionElement>} */222goog.dom.TagName.OPTION = new goog.dom.TagName('OPTION');223/** @type {!goog.dom.TagName<!HTMLOutputElement>} */224goog.dom.TagName.OUTPUT = new goog.dom.TagName('OUTPUT');225/** @type {!goog.dom.TagName<!HTMLParagraphElement>} */226goog.dom.TagName.P = new goog.dom.TagName('P');227/** @type {!goog.dom.TagName<!HTMLParamElement>} */228goog.dom.TagName.PARAM = new goog.dom.TagName('PARAM');229/** @type {!goog.dom.TagName<!HTMLPictureElement>} */230goog.dom.TagName.PICTURE = new goog.dom.TagName('PICTURE');231/** @type {!goog.dom.TagName<!HTMLPreElement>} */232goog.dom.TagName.PRE = new goog.dom.TagName('PRE');233/** @type {!goog.dom.TagName<!HTMLProgressElement>} */234goog.dom.TagName.PROGRESS = new goog.dom.TagName('PROGRESS');235/** @type {!goog.dom.TagName<!HTMLQuoteElement>} */236goog.dom.TagName.Q = new goog.dom.TagName('Q');237/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */238goog.dom.TagName.RP = new goog.dom.TagName('RP');239/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */240goog.dom.TagName.RT = new goog.dom.TagName('RT');241/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */242goog.dom.TagName.RTC = new goog.dom.TagName('RTC');243/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */244goog.dom.TagName.RUBY = new goog.dom.TagName('RUBY');245/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */246goog.dom.TagName.S = new goog.dom.TagName('S');247/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */248goog.dom.TagName.SAMP = new goog.dom.TagName('SAMP');249/** @type {!goog.dom.TagName<!HTMLScriptElement>} */250goog.dom.TagName.SCRIPT = new goog.dom.TagName('SCRIPT');251/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */252goog.dom.TagName.SECTION = new goog.dom.TagName('SECTION');253/** @type {!goog.dom.TagName<!HTMLSelectElement>} */254goog.dom.TagName.SELECT = new goog.dom.TagName('SELECT');255/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */256goog.dom.TagName.SMALL = new goog.dom.TagName('SMALL');257/** @type {!goog.dom.TagName<!HTMLSourceElement>} */258goog.dom.TagName.SOURCE = new goog.dom.TagName('SOURCE');259/** @type {!goog.dom.TagName<!HTMLSpanElement>} */260goog.dom.TagName.SPAN = new goog.dom.TagName('SPAN');261/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */262goog.dom.TagName.STRIKE = new goog.dom.TagName('STRIKE');263/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */264goog.dom.TagName.STRONG = new goog.dom.TagName('STRONG');265/** @type {!goog.dom.TagName<!HTMLStyleElement>} */266goog.dom.TagName.STYLE = new goog.dom.TagName('STYLE');267/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */268goog.dom.TagName.SUB = new goog.dom.TagName('SUB');269/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */270goog.dom.TagName.SUMMARY = new goog.dom.TagName('SUMMARY');271/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */272goog.dom.TagName.SUP = new goog.dom.TagName('SUP');273/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */274goog.dom.TagName.SVG = new goog.dom.TagName('SVG');275/** @type {!goog.dom.TagName<!HTMLTableElement>} */276goog.dom.TagName.TABLE = new goog.dom.TagName('TABLE');277/** @type {!goog.dom.TagName<!HTMLTableSectionElement>} */278goog.dom.TagName.TBODY = new goog.dom.TagName('TBODY');279/** @type {!goog.dom.TagName<!HTMLTableCellElement>} */280goog.dom.TagName.TD = new goog.dom.TagName('TD');281/** @type {!goog.dom.TagName<!HTMLTemplateElement>} */282goog.dom.TagName.TEMPLATE = new goog.dom.TagName('TEMPLATE');283/** @type {!goog.dom.TagName<!HTMLTextAreaElement>} */284goog.dom.TagName.TEXTAREA = new goog.dom.TagName('TEXTAREA');285/** @type {!goog.dom.TagName<!HTMLTableSectionElement>} */286goog.dom.TagName.TFOOT = new goog.dom.TagName('TFOOT');287/** @type {!goog.dom.TagName<!HTMLTableCellElement>} */288goog.dom.TagName.TH = new goog.dom.TagName('TH');289/** @type {!goog.dom.TagName<!HTMLTableSectionElement>} */290goog.dom.TagName.THEAD = new goog.dom.TagName('THEAD');291/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */292goog.dom.TagName.TIME = new goog.dom.TagName('TIME');293/** @type {!goog.dom.TagName<!HTMLTitleElement>} */294goog.dom.TagName.TITLE = new goog.dom.TagName('TITLE');295/** @type {!goog.dom.TagName<!HTMLTableRowElement>} */296goog.dom.TagName.TR = new goog.dom.TagName('TR');297/** @type {!goog.dom.TagName<!HTMLTrackElement>} */298goog.dom.TagName.TRACK = new goog.dom.TagName('TRACK');299/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */300goog.dom.TagName.TT = new goog.dom.TagName('TT');301/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */302goog.dom.TagName.U = new goog.dom.TagName('U');303/** @type {!goog.dom.TagName<!HTMLUListElement>} */304goog.dom.TagName.UL = new goog.dom.TagName('UL');305/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */306goog.dom.TagName.VAR = new goog.dom.TagName('VAR');307/** @type {!goog.dom.TagName<!HTMLVideoElement>} */308goog.dom.TagName.VIDEO = new goog.dom.TagName('VIDEO');309/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */...tagname.js
Source:tagname.js  
1// Copyright 2007 The Closure Library Authors. All Rights Reserved.2//3// Licensed under the Apache License, Version 2.0 (the "License");4// you may not use this file except in compliance with the License.5// You may obtain a copy of the License at6//7//      http://www.apache.org/licenses/LICENSE-2.08//9// Unless required by applicable law or agreed to in writing, software10// distributed under the License is distributed on an "AS-IS" BASIS,11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.12// See the License for the specific language governing permissions and13// limitations under the License.14/**15 * @fileoverview Defines the goog.dom.TagName class. Its constants enumerate16 * all HTML tag names specified in either the the W3C HTML 4.01 index of17 * elements or the HTML5 draft specification.18 *19 * References:20 * http://www.w3.org/TR/html401/index/elements.html21 * http://dev.w3.org/html5/spec/section-index.html22 */23goog.provide('goog.dom.TagName');24goog.require('goog.dom.HtmlElement');25/**26 * A tag name with the type of the element stored in the generic.27 * @param {string} tagName28 * @constructor29 * @template T30 */31goog.dom.TagName = function(tagName) {32  /** @private {string} */33  this.tagName_ = tagName;34};35/**36 * Returns the tag name.37 * @return {string}38 * @override39 */40goog.dom.TagName.prototype.toString = function() {41  return this.tagName_;42};43// Closure Compiler unconditionally converts the following constants to their44// string value (goog.dom.TagName.A -> 'A'). These are the consequences:45// 1. Don't add any members or static members to goog.dom.TagName as they46//    couldn't be accessed after this optimization.47// 2. Keep the constant name and its string value the same:48//    goog.dom.TagName.X = new goog.dom.TagName('Y');49//    is converted to 'X', not 'Y'.50/** @type {!goog.dom.TagName<!HTMLAnchorElement>} */51goog.dom.TagName.A = new goog.dom.TagName('A');52/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */53goog.dom.TagName.ABBR = new goog.dom.TagName('ABBR');54/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */55goog.dom.TagName.ACRONYM = new goog.dom.TagName('ACRONYM');56/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */57goog.dom.TagName.ADDRESS = new goog.dom.TagName('ADDRESS');58/** @type {!goog.dom.TagName<!HTMLAppletElement>} */59goog.dom.TagName.APPLET = new goog.dom.TagName('APPLET');60/** @type {!goog.dom.TagName<!HTMLAreaElement>} */61goog.dom.TagName.AREA = new goog.dom.TagName('AREA');62/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */63goog.dom.TagName.ARTICLE = new goog.dom.TagName('ARTICLE');64/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */65goog.dom.TagName.ASIDE = new goog.dom.TagName('ASIDE');66/** @type {!goog.dom.TagName<!HTMLAudioElement>} */67goog.dom.TagName.AUDIO = new goog.dom.TagName('AUDIO');68/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */69goog.dom.TagName.B = new goog.dom.TagName('B');70/** @type {!goog.dom.TagName<!HTMLBaseElement>} */71goog.dom.TagName.BASE = new goog.dom.TagName('BASE');72/** @type {!goog.dom.TagName<!HTMLBaseFontElement>} */73goog.dom.TagName.BASEFONT = new goog.dom.TagName('BASEFONT');74/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */75goog.dom.TagName.BDI = new goog.dom.TagName('BDI');76/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */77goog.dom.TagName.BDO = new goog.dom.TagName('BDO');78/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */79goog.dom.TagName.BIG = new goog.dom.TagName('BIG');80/** @type {!goog.dom.TagName<!HTMLQuoteElement>} */81goog.dom.TagName.BLOCKQUOTE = new goog.dom.TagName('BLOCKQUOTE');82/** @type {!goog.dom.TagName<!HTMLBodyElement>} */83goog.dom.TagName.BODY = new goog.dom.TagName('BODY');84/** @type {!goog.dom.TagName<!HTMLBRElement>} */85goog.dom.TagName.BR = new goog.dom.TagName('BR');86/** @type {!goog.dom.TagName<!HTMLButtonElement>} */87goog.dom.TagName.BUTTON = new goog.dom.TagName('BUTTON');88/** @type {!goog.dom.TagName<!HTMLCanvasElement>} */89goog.dom.TagName.CANVAS = new goog.dom.TagName('CANVAS');90/** @type {!goog.dom.TagName<!HTMLTableCaptionElement>} */91goog.dom.TagName.CAPTION = new goog.dom.TagName('CAPTION');92/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */93goog.dom.TagName.CENTER = new goog.dom.TagName('CENTER');94/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */95goog.dom.TagName.CITE = new goog.dom.TagName('CITE');96/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */97goog.dom.TagName.CODE = new goog.dom.TagName('CODE');98/** @type {!goog.dom.TagName<!HTMLTableColElement>} */99goog.dom.TagName.COL = new goog.dom.TagName('COL');100/** @type {!goog.dom.TagName<!HTMLTableColElement>} */101goog.dom.TagName.COLGROUP = new goog.dom.TagName('COLGROUP');102/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */103goog.dom.TagName.COMMAND = new goog.dom.TagName('COMMAND');104/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */105goog.dom.TagName.DATA = new goog.dom.TagName('DATA');106/** @type {!goog.dom.TagName<!HTMLDataListElement>} */107goog.dom.TagName.DATALIST = new goog.dom.TagName('DATALIST');108/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */109goog.dom.TagName.DD = new goog.dom.TagName('DD');110/** @type {!goog.dom.TagName<!HTMLModElement>} */111goog.dom.TagName.DEL = new goog.dom.TagName('DEL');112/** @type {!goog.dom.TagName<!HTMLDetailsElement>} */113goog.dom.TagName.DETAILS = new goog.dom.TagName('DETAILS');114/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */115goog.dom.TagName.DFN = new goog.dom.TagName('DFN');116/** @type {!goog.dom.TagName<!HTMLDialogElement>} */117goog.dom.TagName.DIALOG = new goog.dom.TagName('DIALOG');118/** @type {!goog.dom.TagName<!HTMLDirectoryElement>} */119goog.dom.TagName.DIR = new goog.dom.TagName('DIR');120/** @type {!goog.dom.TagName<!HTMLDivElement>} */121goog.dom.TagName.DIV = new goog.dom.TagName('DIV');122/** @type {!goog.dom.TagName<!HTMLDListElement>} */123goog.dom.TagName.DL = new goog.dom.TagName('DL');124/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */125goog.dom.TagName.DT = new goog.dom.TagName('DT');126/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */127goog.dom.TagName.EM = new goog.dom.TagName('EM');128/** @type {!goog.dom.TagName<!HTMLEmbedElement>} */129goog.dom.TagName.EMBED = new goog.dom.TagName('EMBED');130/** @type {!goog.dom.TagName<!HTMLFieldSetElement>} */131goog.dom.TagName.FIELDSET = new goog.dom.TagName('FIELDSET');132/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */133goog.dom.TagName.FIGCAPTION = new goog.dom.TagName('FIGCAPTION');134/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */135goog.dom.TagName.FIGURE = new goog.dom.TagName('FIGURE');136/** @type {!goog.dom.TagName<!HTMLFontElement>} */137goog.dom.TagName.FONT = new goog.dom.TagName('FONT');138/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */139goog.dom.TagName.FOOTER = new goog.dom.TagName('FOOTER');140/** @type {!goog.dom.TagName<!HTMLFormElement>} */141goog.dom.TagName.FORM = new goog.dom.TagName('FORM');142/** @type {!goog.dom.TagName<!HTMLFrameElement>} */143goog.dom.TagName.FRAME = new goog.dom.TagName('FRAME');144/** @type {!goog.dom.TagName<!HTMLFrameSetElement>} */145goog.dom.TagName.FRAMESET = new goog.dom.TagName('FRAMESET');146/** @type {!goog.dom.TagName<!HTMLHeadingElement>} */147goog.dom.TagName.H1 = new goog.dom.TagName('H1');148/** @type {!goog.dom.TagName<!HTMLHeadingElement>} */149goog.dom.TagName.H2 = new goog.dom.TagName('H2');150/** @type {!goog.dom.TagName<!HTMLHeadingElement>} */151goog.dom.TagName.H3 = new goog.dom.TagName('H3');152/** @type {!goog.dom.TagName<!HTMLHeadingElement>} */153goog.dom.TagName.H4 = new goog.dom.TagName('H4');154/** @type {!goog.dom.TagName<!HTMLHeadingElement>} */155goog.dom.TagName.H5 = new goog.dom.TagName('H5');156/** @type {!goog.dom.TagName<!HTMLHeadingElement>} */157goog.dom.TagName.H6 = new goog.dom.TagName('H6');158/** @type {!goog.dom.TagName<!HTMLHeadElement>} */159goog.dom.TagName.HEAD = new goog.dom.TagName('HEAD');160/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */161goog.dom.TagName.HEADER = new goog.dom.TagName('HEADER');162/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */163goog.dom.TagName.HGROUP = new goog.dom.TagName('HGROUP');164/** @type {!goog.dom.TagName<!HTMLHRElement>} */165goog.dom.TagName.HR = new goog.dom.TagName('HR');166/** @type {!goog.dom.TagName<!HTMLHtmlElement>} */167goog.dom.TagName.HTML = new goog.dom.TagName('HTML');168/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */169goog.dom.TagName.I = new goog.dom.TagName('I');170/** @type {!goog.dom.TagName<!HTMLIFrameElement>} */171goog.dom.TagName.IFRAME = new goog.dom.TagName('IFRAME');172/** @type {!goog.dom.TagName<!HTMLImageElement>} */173goog.dom.TagName.IMG = new goog.dom.TagName('IMG');174/** @type {!goog.dom.TagName<!HTMLInputElement>} */175goog.dom.TagName.INPUT = new goog.dom.TagName('INPUT');176/** @type {!goog.dom.TagName<!HTMLModElement>} */177goog.dom.TagName.INS = new goog.dom.TagName('INS');178/** @type {!goog.dom.TagName<!HTMLIsIndexElement>} */179goog.dom.TagName.ISINDEX = new goog.dom.TagName('ISINDEX');180/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */181goog.dom.TagName.KBD = new goog.dom.TagName('KBD');182// HTMLKeygenElement is deprecated.183/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */184goog.dom.TagName.KEYGEN = new goog.dom.TagName('KEYGEN');185/** @type {!goog.dom.TagName<!HTMLLabelElement>} */186goog.dom.TagName.LABEL = new goog.dom.TagName('LABEL');187/** @type {!goog.dom.TagName<!HTMLLegendElement>} */188goog.dom.TagName.LEGEND = new goog.dom.TagName('LEGEND');189/** @type {!goog.dom.TagName<!HTMLLIElement>} */190goog.dom.TagName.LI = new goog.dom.TagName('LI');191/** @type {!goog.dom.TagName<!HTMLLinkElement>} */192goog.dom.TagName.LINK = new goog.dom.TagName('LINK');193/** @type {!goog.dom.TagName<!HTMLMapElement>} */194goog.dom.TagName.MAP = new goog.dom.TagName('MAP');195/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */196goog.dom.TagName.MARK = new goog.dom.TagName('MARK');197/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */198goog.dom.TagName.MATH = new goog.dom.TagName('MATH');199/** @type {!goog.dom.TagName<!HTMLMenuElement>} */200goog.dom.TagName.MENU = new goog.dom.TagName('MENU');201/** @type {!goog.dom.TagName<!HTMLMetaElement>} */202goog.dom.TagName.META = new goog.dom.TagName('META');203/** @type {!goog.dom.TagName<!HTMLMeterElement>} */204goog.dom.TagName.METER = new goog.dom.TagName('METER');205/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */206goog.dom.TagName.NAV = new goog.dom.TagName('NAV');207/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */208goog.dom.TagName.NOFRAMES = new goog.dom.TagName('NOFRAMES');209/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */210goog.dom.TagName.NOSCRIPT = new goog.dom.TagName('NOSCRIPT');211/** @type {!goog.dom.TagName<!HTMLObjectElement>} */212goog.dom.TagName.OBJECT = new goog.dom.TagName('OBJECT');213/** @type {!goog.dom.TagName<!HTMLOListElement>} */214goog.dom.TagName.OL = new goog.dom.TagName('OL');215/** @type {!goog.dom.TagName<!HTMLOptGroupElement>} */216goog.dom.TagName.OPTGROUP = new goog.dom.TagName('OPTGROUP');217/** @type {!goog.dom.TagName<!HTMLOptionElement>} */218goog.dom.TagName.OPTION = new goog.dom.TagName('OPTION');219/** @type {!goog.dom.TagName<!HTMLOutputElement>} */220goog.dom.TagName.OUTPUT = new goog.dom.TagName('OUTPUT');221/** @type {!goog.dom.TagName<!HTMLParagraphElement>} */222goog.dom.TagName.P = new goog.dom.TagName('P');223/** @type {!goog.dom.TagName<!HTMLParamElement>} */224goog.dom.TagName.PARAM = new goog.dom.TagName('PARAM');225/** @type {!goog.dom.TagName<!HTMLPreElement>} */226goog.dom.TagName.PRE = new goog.dom.TagName('PRE');227/** @type {!goog.dom.TagName<!HTMLProgressElement>} */228goog.dom.TagName.PROGRESS = new goog.dom.TagName('PROGRESS');229/** @type {!goog.dom.TagName<!HTMLQuoteElement>} */230goog.dom.TagName.Q = new goog.dom.TagName('Q');231/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */232goog.dom.TagName.RP = new goog.dom.TagName('RP');233/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */234goog.dom.TagName.RT = new goog.dom.TagName('RT');235/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */236goog.dom.TagName.RUBY = new goog.dom.TagName('RUBY');237/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */238goog.dom.TagName.S = new goog.dom.TagName('S');239/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */240goog.dom.TagName.SAMP = new goog.dom.TagName('SAMP');241/** @type {!goog.dom.TagName<!HTMLScriptElement>} */242goog.dom.TagName.SCRIPT = new goog.dom.TagName('SCRIPT');243/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */244goog.dom.TagName.SECTION = new goog.dom.TagName('SECTION');245/** @type {!goog.dom.TagName<!HTMLSelectElement>} */246goog.dom.TagName.SELECT = new goog.dom.TagName('SELECT');247/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */248goog.dom.TagName.SMALL = new goog.dom.TagName('SMALL');249/** @type {!goog.dom.TagName<!HTMLSourceElement>} */250goog.dom.TagName.SOURCE = new goog.dom.TagName('SOURCE');251/** @type {!goog.dom.TagName<!HTMLSpanElement>} */252goog.dom.TagName.SPAN = new goog.dom.TagName('SPAN');253/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */254goog.dom.TagName.STRIKE = new goog.dom.TagName('STRIKE');255/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */256goog.dom.TagName.STRONG = new goog.dom.TagName('STRONG');257/** @type {!goog.dom.TagName<!HTMLStyleElement>} */258goog.dom.TagName.STYLE = new goog.dom.TagName('STYLE');259/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */260goog.dom.TagName.SUB = new goog.dom.TagName('SUB');261/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */262goog.dom.TagName.SUMMARY = new goog.dom.TagName('SUMMARY');263/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */264goog.dom.TagName.SUP = new goog.dom.TagName('SUP');265/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */266goog.dom.TagName.SVG = new goog.dom.TagName('SVG');267/** @type {!goog.dom.TagName<!HTMLTableElement>} */268goog.dom.TagName.TABLE = new goog.dom.TagName('TABLE');269/** @type {!goog.dom.TagName<!HTMLTableSectionElement>} */270goog.dom.TagName.TBODY = new goog.dom.TagName('TBODY');271/** @type {!goog.dom.TagName<!HTMLTableCellElement>} */272goog.dom.TagName.TD = new goog.dom.TagName('TD');273/** @type {!goog.dom.TagName<!HTMLTemplateElement>} */274goog.dom.TagName.TEMPLATE = new goog.dom.TagName('TEMPLATE');275/** @type {!goog.dom.TagName<!HTMLTextAreaElement>} */276goog.dom.TagName.TEXTAREA = new goog.dom.TagName('TEXTAREA');277/** @type {!goog.dom.TagName<!HTMLTableSectionElement>} */278goog.dom.TagName.TFOOT = new goog.dom.TagName('TFOOT');279/** @type {!goog.dom.TagName<!HTMLTableCellElement>} */280goog.dom.TagName.TH = new goog.dom.TagName('TH');281/** @type {!goog.dom.TagName<!HTMLTableSectionElement>} */282goog.dom.TagName.THEAD = new goog.dom.TagName('THEAD');283/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */284goog.dom.TagName.TIME = new goog.dom.TagName('TIME');285/** @type {!goog.dom.TagName<!HTMLTitleElement>} */286goog.dom.TagName.TITLE = new goog.dom.TagName('TITLE');287/** @type {!goog.dom.TagName<!HTMLTableRowElement>} */288goog.dom.TagName.TR = new goog.dom.TagName('TR');289/** @type {!goog.dom.TagName<!HTMLTrackElement>} */290goog.dom.TagName.TRACK = new goog.dom.TagName('TRACK');291/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */292goog.dom.TagName.TT = new goog.dom.TagName('TT');293/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */294goog.dom.TagName.U = new goog.dom.TagName('U');295/** @type {!goog.dom.TagName<!HTMLUListElement>} */296goog.dom.TagName.UL = new goog.dom.TagName('UL');297/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */298goog.dom.TagName.VAR = new goog.dom.TagName('VAR');299/** @type {!goog.dom.TagName<!HTMLVideoElement>} */300goog.dom.TagName.VIDEO = new goog.dom.TagName('VIDEO');301/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */...operators.js
Source:operators.js  
1define(['lodash'], function (_) {2    "use strict";3    var frac = function frac(mje) {4        var msup, mrow, mrow2, node, currentNode, nextSibling, tagName;5        var forwardNodes = mje.tryExpression();6        var trailingNodes = [];7        var maxChar = 1;8        currentNode = mje.getCurrentNode();9        nextSibling = currentNode ? currentNode.nextSibling : mje.raw().firstElementChild;10        node = currentNode;11        if (node && !forwardNodes.length) {12            tagName = node.tagName.toLowerCase();13            if (tagName === 'mn') {14                while (node && tagName === node.tagName.toLowerCase()) {15                    forwardNodes.unshift(node);16                    node = node.previousSibling;17                }18            }19        }20        if (!mje.allowText()) {21            node = nextSibling;22            if (node) {23                tagName = node.tagName.toLowerCase();24                if (tagName === 'mn' || tagName === 'mi') {25                    if (tagName === 'mi') {26                        forwardNodes = [];27                    }28                    while (node && tagName === node.tagName.toLowerCase()) {29                        trailingNodes.push(node);30                        node = node.nextSibling;31                    }32                }33            }34        }35        node = mje.getCurrentNode();36        if (node && node.tagName.toLowerCase() === 'mtext') {37            mje.whitespace();38        }39        msup = MathJax.HTML.Element('mfrac');40        mrow = MathJax.HTML.Element('mrow');41        msup.appendChild(mrow);42        mrow2 = MathJax.HTML.Element('mrow');43        _.forEachRight(forwardNodes, function (n) {44            if (maxChar) {45                if (mje.getCurrent() === n) {46                    mje.setCurrent(n.nextSibling);47                }48                n.remove();49                mrow.insertBefore(n, mrow.firstChild);50                if (n.tagName.toLowerCase() === 'mi') {51                    maxChar--;52                }53            }54        });55        _.forEach(trailingNodes, function (n) {56            if (maxChar) {57                if (mje.getCurrent() === n) {58                    mje.setCurrent(n.nextSibling);59                }60                n.remove();61                mrow2.appendChild(n);62                if (n.tagName.toLowerCase() === 'mi') {63                    maxChar--;64                }65            }66        });67        msup.appendChild(mrow2);68        mje.addElement(msup, forwardNodes.length ? mrow2 : mrow);69    };70    var groupTag = function groupTag(mje, tag, second, maxChar) {71        var msup, mrow, node, tagName;72        var newNodes = mje.tryExpression();73        maxChar = maxChar ? maxChar : 999;74        node = mje.getCurrentNode();75        if (node && !newNodes.length) {76            tagName = node.tagName.toLowerCase();77            if (tagName === 'mn' || tagName === 'mi') {78                while (node && tagName === node.tagName.toLowerCase()) {79                    newNodes.unshift(node);80                    node = node.previousSibling;81                }82            }83        }84        if (newNodes.length) {85            msup = MathJax.HTML.Element(tag);86            mrow = MathJax.HTML.Element('mrow');87            msup.appendChild(mrow);88            _.forEachRight(newNodes, function (n) {89                if (maxChar) {90                    n.remove();91                    mrow.insertBefore(n, mrow.firstChild);92                    if (n.tagName.toLowerCase() === 'mi') {93                        maxChar--;94                    }95                }96            });97            if (second) {98                msup.appendChild(second);99                mrow = null;100            } else {101                mrow = MathJax.HTML.Element('mrow');102                msup.appendChild(mrow);103            }104            mje.addElement(msup, mrow);105        } else {106            node = mje.getCurrentNode();107            if (node && node.tagName.toLowerCase() === 'mtext') {108                mje.whitespace();109            }110            msup = MathJax.HTML.Element(tag);111            mrow = MathJax.HTML.Element('mrow');112            msup.appendChild(mrow);113            msup.appendChild(second || MathJax.HTML.Element('mrow'));114            mje.addElement(msup, mrow);115        }116    };117    var operators = {118        binary: {119            '+': '+',120            '-': '-',121            //unicode chars122            'â': '-',123            '±': '±',124            'Σ': 'Σ',125            'â ': 'â ',126            'â³': 'â³',127            'â±': 'â±',128            'â': 'â',129        },130        groups: {131            '[': ']',132            //'|': '|',133            '{': '}',134        },135        onlyMathGroups: {136            '(': ')'137        },138        onlyText: {139            '}': '}',140            ']': ']',141            ')': ')'142        },143        relations: {144            '=': '=',145            'â ': 'â ',146            'â¼': 'â¼',147            'â': 'â',148            '<': '<',149            '>': '>',150            'â': 'â',151            'â': 'â',152            'â¤': 'â¤',153            'â¥': 'â¥',154            'â
': 'â
',155            'â': 'â',156            '·': '·',157            '*': ['*', 'Ã'],158            'â¥': 'â¥',159            'â¥': 'â¥',160            'Ã': 'Ã',161            '÷': '÷',162            'â': 'â',163        },164        onlyMathRelations: {165            '~': ['~', 'â¼'],166            ':': ':',167        },168        mathChars: {169            'Ï': 'Ï',170            '°': '°',171        },172        custom: {173            '|': function (mje) {174                var mrow, emptyRow;175                mrow = MathJax.HTML.Element('mrow');176                mrow.appendChild(MathJax.HTML.Element('mo', null, ['|']));177                emptyRow = MathJax.HTML.Element('mrow');178                mrow.appendChild(emptyRow);179                mrow.appendChild(MathJax.HTML.Element('mo', { className: 'soft' }, ['|']));180                mje.addElement(mrow, emptyRow);181            },182            '`': function (mje) {183                var msqrt = MathJax.HTML.Element('msqrt');184                var mrow = MathJax.HTML.Element('mrow');185                msqrt.appendChild(mrow);186                mje.tryExpression();187                mje.addElement(msqrt, mrow);188            },189            '^': function (mje) {190                groupTag(mje, 'msup');191            },192            '_': function (mje) {193                groupTag(mje, 'msub');194            },195            "'": function (mje) {196                var node, element;197                node = mje.getCurrentNode();198                if (mje.allowText() && (!node || node.tagName.toLowerCase() === 'mtext')) {199                    element = MathJax.HTML.Element('mtext', null, ["'"]);200                } else {201                    element = MathJax.HTML.Element('mn', null, ["'"]);202                }203                mje.addElement(element);204            },205            '/': function (mje) {206                var node, mtext;207                mje.tryExpression();208                node = mje.getCurrentNode();209                if (node && node.tagName.toLowerCase() === 'mtext') {210                    mtext = MathJax.HTML.Element('mtext', null, ['/']);211                    mje.addElement(mtext);212                } else {213                    frac(mje);214                }215            },216            '\\': function (mje) {217                var node, mtext;218                mje.tryExpression();219                node = mje.getCurrentNode();220                if (node && node.tagName.toLowerCase() === 'mtext') {221                    mtext = MathJax.HTML.Element('mtext', null, ['\\']);222                    mje.addElement(mtext);223                } else {224                    frac(mje);225                }226            },227            '$': function (mje) {228                var node = mje.getCurrentNode();229                var count = 0, mo, idBefore;230                var tagName = node ? node.tagName.toLowerCase() : '';231                if (tagName === 'mn') {232                    mje.left(); count++;233                    while (node.previousSibling && (node.previousSibling.tagName.toLowerCase() === 'mn' || node.previousSibling.textContent === '.')) {234                        node = node.previousSibling;235                        mje.left(); count++;236                    }237                    idBefore = node.previousSibling && node.previousSibling.tagName.toLowerCase() === 'mi';238                    if (idBefore) {239                        mo = MathJax.HTML.Element('mo', null, ['('])240                        mje.addElement(mo);241                    }242                    mje.addElement(MathJax.HTML.Element('mi', null, ['$']));243                    while (count--) {244                        mje.right();245                    }246                    if (idBefore) {247                        mo = MathJax.HTML.Element('mo', null, [')'])248                        mje.addElement(mo, mo);249                    }250                } else if (tagName === 'mi') {251                    tagName = node.previousSibling ? node.previousSibling.tagName.toLowerCase() : '';252                    if (tagName === 'mi' || tagName === 'mn') {253                        mje.addElement(MathJax.HTML.Element('mrow'));254                    } else {255                        mje.left();256                        mje.addElement(MathJax.HTML.Element('mi', null, ['$']));257                        mje.right();258                    }259                } else {260                    tagName = mje.getTagName('mi');261                    mje.addElement(MathJax.HTML.Element(tagName, null, ['$']));262                }263            },264            '!': function (mje) {265                var tagName, node = mje.getCurrentNode();266                var selectable = node && node.getAttribute('selectable') === 'true';267                var mrow, mrow1, bkt;268                if ((!node && !mje.allowText()) || (node && node.tagName.toLowerCase() === 'mrow')) {269                    mrow = MathJax.HTML.Element('mrow');270                    mrow1 = MathJax.HTML.Element('mrow');271                    mrow.appendChild(mrow1);272                    mrow.appendChild(MathJax.HTML.Element('mo', null, ['!']));273                    mje.addElement(mrow, mrow1);274                } else {275                    if (node && node.tagName.toLowerCase() === 'mover' && !selectable) {276                        $(MathJax.HTML.Element('mo', {}, ['('])).insertBefore(node);277                        bkt = MathJax.HTML.Element('mo', {}, [')']);278                        $(bkt).insertAfter(node);279                    }280                    tagName = mje.getTagName('mo');281                    mje.addElement(MathJax.HTML.Element(tagName, null, ['!']));282                }283            },284            ',': function (mje) {285                var node = mje.getCurrentNode();286                var mtext, tagName;287                if (mje.allowText() && (!node || (node.tagName.toLowerCase() === 'mtext' || node.tagName.toLowerCase() === 'mi'))) {288                    tagName = 'mtext';289                } else if (node && node.tagName.toLowerCase() === 'mn') {290                    tagName = 'mn';291                }292                if (tagName) {293                    mtext = MathJax.HTML.Element(tagName, null, [',']);294                    mje.addElement(mtext);295                }296            },297            '.': function (mje) {298                var node = mje.getCurrentNode();299                var mtext, tagName = 'mn';300                if (mje.allowText() && (!node || (node.tagName.toLowerCase() === 'mtext' || node.tagName.toLowerCase() === 'mi'))) {301                    tagName = 'mtext';302                }303                mtext = MathJax.HTML.Element(tagName, null, ['.']);304                mje.addElement(mtext);305            },306            'â´': function (mje) {307                mje.tryExpression();308                mje.addElement(MathJax.HTML.Element('mo', null, ['â´']));309            }310        }311    };312    return operators;...Using AI Code Generation
1const { chromium } = require('playwright');2(async () => {3  const browser = await chromium.launch();4  const context = await browser.newContext();5  const page = await context.newPage();6  const element = await page.$('h1');7  const tagName = await element.tagName();8  await browser.close();9})();Using AI Code Generation
1const { chromium } = require('playwright');2(async () => {3  const browser = await chromium.launch({ headless: false });4  const context = await browser.newContext();5  const page = await context.newPage();6  await page.click('input[name="q"]');7  await page.fill('input[name="q"]', 'Hello World');8  await page.keyboard.press('Enter');9  await page.screenshot({ path: `example.png` });10  await browser.close();11})();12const { chromium } = require('playwright');13(async () => {14  const browser = await chromium.launch({ headless: false });15  const context = await browser.newContext();16  const page = await context.newPage();17  await page.click('input[name="q"]');18  await page.fill('input[name="q"]', 'Hello World');19  await page.keyboard.press('Enter');20  await page.screenshot({ path: `example.png` });21  await browser.close();22})();23const { chromium } = require('playwright');24(async () => {25  const browser = await chromium.launch({ headless: false });26  const context = await browser.newContext();27  const page = await context.newPage();28  await page.click('input[name="q"]');29  await page.fill('input[name="q"]', 'Hello World');30  await page.keyboard.press('Enter');31  await page.screenshot({ path: `example.png` });32  await browser.close();33})();34const { chromium } = require('playwright');35(async () => {36  const browser = await chromium.launch({ headless: false });37  const context = await browser.newContext();38  const page = await context.newPage();39  await page.click('input[name="q"]');40  await page.fill('input[name="q"]', 'Hello World');41  await page.keyboard.press('Enter');42  await page.screenshot({ path: `example.png` });43  await browser.close();44})();45const { chromium } = require('playwright');46(async () => {Using AI Code Generation
1const { chromium } = require('playwright');2(async () => {3  const browser = await chromium.launch({headless: false});4  const page = await browser.newPage();5  const searchBox = await page.$('input[name="q"]');6  await searchBox.type('Playwright');7  await searchBox.press('Enter');8  await page.waitForNavigation();9  await page.screenshot({ path: `example.png` });10  await browser.close();11})();12const { chromium } = require('playwright');13(async () => {14  const browser = await chromium.launch({headless: false});15  const page = await browser.newPage();16  const searchBox = await page.$('input[name="q"]');17  await searchBox.type('Playwright');18  await searchBox.press('Enter');19  await page.waitForNavigation();20  await page.screenshot({ path: `example.png` });21  await browser.close();22})();23const { chromium } = require('playwright');24(async () => {25  const browser = await chromium.launch({headless: false});26  const page = await browser.newPage();27  const searchBox = await page.$('input[name="q"]');28  await searchBox.type('Playwright');29  await searchBox.press('Enter');30  await page.waitForNavigation();31  await page.screenshot({ path: `example.png` });32  await browser.close();33})();34const { chromium } = require('playwright');35(async () => {36  const browser = await chromium.launch({headless: false});37  const page = await browser.newPage();38  const searchBox = await page.$('input[name="q"]');39  await searchBox.type('Playwright');40  await searchBox.press('Enter');41  await page.waitForNavigation();42  await page.screenshot({ path: `example.png` });43  await browser.close();44})();45const { chromium } = require('playwright');Using AI Code Generation
1const { tagName } = require('@playwright/test');2const { test, expect } = require('@playwright/test');3test('first test', async ({ page }) => {4  const title = await page.title();5  expect(title).toBe('Playwright');6  const tag = await tagName(page.locator('text=Get started'));7  expect(tag).toBe('a');8});9const { test, expect } = require('@playwright/test');10test('first test', async ({ page }) => {11  const title = await page.title();12  expect(title).toBe('Playwright');13  await page.click('text=Get started');14});15const { test, expect } = require('@playwright/test');16test('first test', async ({ page }) => {17  const title = await page.title();18  expect(title).toBe('Playwright');19  await page.click('text=Get started');20});21const { chromium } = require('playwright');22(async () => {23  const browser = await chromium.launch();24  const context = await browser.newContext();25  const page = await context.newPage();26  await browser.close();27})();28const { chromium } = require('playwright');29(async () => {30  const browser = await chromium.launch();31  const context = await browser.newContext();32  const page = await context.newPage();33  await browser.close();34})();35const { chromium } = require('playwright');Using AI Code Generation
1const {chromium} = require('playwright');2(async () => {3  const browser = await chromium.launch({headless: false});4  const context = await browser.newContext();5  const page = await context.newPage();6  const element = await page.$('header');7  const tagName = await element.tagName();8  console.log(tagName);9  await browser.close();10})();Using AI Code Generation
1const { tagName } = require('@playwright/test');2const { selector } = require('@playwright/test');3const { testInfo } = require('@playwright/test');4const { expect } = require('@playwright/test');5expect(1 + 1).toBe(2);6expect('hello').toContain('ell');7expect({ a: 'b' }).toEqual({ a: 'b' });8expect(null).toBeNull();9expect(0).not.toBeUndefined();10const { test } = require('@playwright/test');11test('My Test', async ({ page }) => {12  expect(page.locator('.navbar__inner').first()).toBeVisible();13});14const { expect } = require('@playwright/test');15expect(1 + 1).toBe(2);16expect('hello').toContain('ell');17expect({ a: 'b' }).toEqual({ a: 'b' });18expect(null).toBeNull();19expect(0).not.toBeUndefined();20const { test } = require('@playwright/test');21test('My Test', async ({ page }) => {Using AI Code Generation
1const { tagName } = require('@playwright/test');2console.log(tagName('input'));3const { textContent } = require('@playwright/test');4console.log(textContent('Hello World!'));5const { title } = require('@playwright/test');6console.log(title('Hello World!'));7const { urlMatches } = require('@playwright/test');8const { viewportSize } = require('@playwright/test');9console.log(viewportSize({ width: 100, height: 100 }));10const { waitForFunction } = require('@playwright/test');11console.log(waitForFunction('() => window.innerWidth < 100'));12const { waitForNavigation } = require('@playwright/test');13const { waitForSelector } = require('@playwright/test');14console.log(waitForSelector('text=Hello World!'));15const { xpath } = require('@playwright/test');16const { click } = require('@Using AI Code Generation
1const { tagName } = require('@playwright/test');2    const name = tagName('div');3    console.log(name);4## isEnabled() Method5`element.isEnabled()`6const { isEnabled } = require('@playwright/test');7    const name = isEnabled('div');8    console.log(name);9## isDisabled() Method10`element.isDisabled()`11const { isDisabled } = require('@playwright/test');12    const name = isDisabled('div');13    console.log(name);14## isEditable() Method15`element.isEditable()`16const { isEditable } = require('@playwright/test');17    const name = isEditable('div');18    console.log(name);19## isChecked() Method20`element.isChecked()`LambdaTest’s Playwright tutorial will give you a broader idea about the Playwright automation framework, its unique features, and use cases with examples to exceed your understanding of Playwright testing. This tutorial will give A to Z guidance, from installing the Playwright framework to some best practices and advanced concepts.
Get 100 minutes of automation test minutes FREE!!
