FLUID-6435: TextNodeParser fails to iterate over node array in IE11

Metadata

Source
FLUID-6435
Type
Bug
Priority
Major
Status
Closed
Resolution
Fixed
Assignee
Justin Obara
Reporter
Antranig Basman
Created
2019-11-25T18:14:39.658-0500
Updated
2019-11-26T08:57:38.011-0500
Versions
N/A
Fixed Versions
  1. 3.0
Component
  1. Text To Speech

Description

The new TextNodeParser implementation has a faulty iteration over markup on IE11 which causes the following failure:

Source:  TypeError: Object doesn't support property or method 'forEach'
   at fluid.textNodeParser.parse (http://localhost/source/gits/infusion-master/src/framework/core/js/TextNodeParser.js:126:13)
   at invokeInvoker (http://localhost/source/gits/infusion-master/src/framework/core/js/FluidIoC.js:1781:17)
   at Anonymous function (http://localhost/source/gits/infusion-master/tests/framework-tests/core/js/TextNodeParserTests.js:200:13)

It looks like the DOM's "NodeList" type on IE11 is not actually an Array and so this method from Array.prototype is missing.

As well as a failure in TextNodeParser's own tests, this causes widespread failures in other components which consume it, e.g. Orator, SyllabificationEnactor, etc.

Environments

Internet Explorer 11

Comments