IE implemented DOM without using tree. No, really. Up to 2017. After reading the article, all my questions why IE was so buggy evaporated and replaced by how could IE work at all.
MSVC up to 2015 also didn't create AST. Unbelievable, I know. The question is not why MSVC's C++ support was so buggy; the real question is how could MSVC implement C++ at all. https://devblogs.microsoft.com/cppblog/rejuvenating-the-micr...
After learning about IE and MSVC, I gained respect for Microsoft developers and disdain for Microsoft. Tightrope walking is amazing display of skill. Letting your employees to commute by tightrope walking for years is amazing display of stupidity.
By the time the article reached "Modernizing the DOM tree", I could just imagine the years of devs suffering that the whole architecture must have caused.
> According to an internal investigation, from IE7 to IE11, approximately 28% of all IE reliability bugs originated from code in core DOM components.
The second article is quite relevant too, how the C/C++ compiler used token streams instead of a real AST, until 2015! There are parallels to the above issue with the DOM model, how the original design of the data structure was inadequate, so they had to keep adding more layers of complexity. It's understandable how it happened, but makes me wonder if they should have had more experts in parsers/compilers during the design phase.
To give credit where due, both articles describe major successful refactorings of core design. I'm with you, that after learning about their struggles, I have more respect for developers at Microsoft.
AFAIK, IE/Edge was developed only by Microsoft, so there wouldn't be much if any thirdparty code?
- https://devblogs.microsoft.com/oldnewthing/20180515-00/?p=98...
I thought edge was reskinned Chrome, why don't they use V8?
"As you may have heard Microsoft Edge no longer uses Chakra. Microsoft will continue to provide security updates for Chakracore 1.11 until 9th March 2021 but do not intend to support it after that."
The new Edge uses Blink for both.