http://www.w3.org/TR/DOM-Level-2-Traversal-Range/
ν μ€νΈ μ€μνΈλ₯Ό μ°Ύμμ μμ±ν΄μΌ ν©λλ€.
uh, κ·Έ μ€νμ λ΄ λμ νΌλκ² νλ€
μ, w3c ν μ€νΈ μ νκ΅° μμ΄ κ΅¬ννλ κ²μ΄ λ§€μ° λλ ΅μ΅λλ€.
μ§κΈκΉμ§ μμλΈ κ²:
μ΄κ²μ μ λ§ν΄ 보μ λλ€: https://github.com/w3c/web-platform-tests/tree/master/dom
http://dom.spec.whatwg.org/ μμ "λ²μ μ΄ μλ DOM"μ ν μ€νΈνκ³ νΉν λ 벨 2κ° μλλΌ ν μ€νΈν©λλ€. κ·Έλ¬λ μ€μ λΈλΌμ°μ λ₯Ό λ°μν κ°λ₯μ±μ΄ λ ν½λλ€.
κΈ°λ³Έμ μΌλ‘ μ£Όμ κΈ°λ₯μ λλ¬μ§λ§ λ²μλ₯Ό μ μ§νλ λ° λͺ κ°μ§ λ¬Έμ κ° μμ΅λλ€. κΈ°λ³Έμ μΌλ‘ λͺ¨λ DOM λ³νμ μ²λ¦¬ν΄μΌ νλ©° κ°μ₯ μ’μ λ°©λ²μ μ λͺ¨λ₯΄κ² μ΅λλ€. μ΄λ€ κ²½μ°μλ λμ°λ³μ΄ μ΄λ²€νΈλ₯Ό μ¬μ©νκ³ λ€λ₯Έ κ²½μ°μλ νλ‘ν νμ μ ν΄λΉ λ©μλλ₯Ό λννμ΅λλ€.
μ§κΈμ λ
Έλ μ κ±° λ₯Ό μννλ λ°©λ²μ λν΄ κΆκΈν©λλ€. suppress observers flag
μ€μ νλ©΄ μ΄λ²€νΈκ° λ°μνμ§ μμ§λ§ λ²μλ κ³μ μ
λ°μ΄νΈν΄μΌ ν©λλ€. μμ΄λμ΄κ° μλ μ¬λμ΄ μμ΅λκΉ? DOM μ 체μ κ±Έμ³ κ·Έλ¬ν κ²λ€μ μν λ§€μ° κ°λ¨ν λ΄λΆ μ΄λ²€νΈ μμ€ν
μ΄ μμ΄μΌ νλ€κ³ μκ°ν©λλ€. μλ₯Ό λ€μ΄ _attrModified
μλ μ¬μ©ν μ μμ΅λλ€.
@adrianlang κ΅μ₯ν©λλ€!
μ΄κ²μ λ΄λΆμ μΌλ‘ λμ°λ³μ΄ μ΄λ²€νΈλ₯Ό μ¬μ©νλ κ²μμ λ²μ΄λ μ λ λΉνμ±νν μ μλ κ°μΈ νλ‘ν μ½μ κ°κ³ μ νλ μ°λ¦¬μ μ€λ μ΄λ§κ³Ό κ΄λ ¨μ΄ μλ κ² κ°μ΅λλ€. #295λ₯Ό μ°Έμ‘°νμμμ€. λ¬Όμ΄λ³Ό κ²μ΄ λ§λ€λ κ²μ μκ³ μμ§λ§, κ·Έκ²μ κ³ μΉλ κ²μ΄ μ΄κ²μ μν λ°©λ²μ΄ λ μ μμ΅λκΉ?
μ€νΈ +1 λκΈλ‘ μΈν΄ κΈ°λ₯μ΄ λ°±λ‘κ·Έ λ€λ‘ μ΄λλ©λλ€. λμ ν¬ν λ²νΌμ μ¬μ©νμΈμ. μ΅κ·Ό +1μ μμ ν©λλ€.
λλ μμ§ λ°μ―€ μμ±λ μ½λμ λ§μ°¬κ°μ§λ‘ κ±°κΈ°μ μλ€. λλ μ΄κ²μ΄ κ²°κ΅ μ΄λ£¨μ΄μ§κΈ°λ₯Ό λ°λλλ€.
@adrianheine μ°©λ₯ν TreeWalker ꡬνμ΄ κ΅¬νμ μλ£νλ λ° λ κ°κΉμμ§λ λ° λμμ΄ λ©λκΉ?
λλ λλλ‘ Range#createContextualFragment
, μ μ΄ μ μ©ν λ°©λ²μ΄ μλμ§ μ λͺ¨λ₯΄κ² μ΅λλ€. (λ¬Έμ λλ DocumentFragmentμ μ§μ μ¬μ©ν κ°μΉκ° μμ΅λλ€)
κ·Έλμ λλ ν μ€νΈλ₯Ό μν΄ μ΄κ²μ λλ΄μλ€.
global.document.createRange = () => ({
createContextualFragment: str => JSDOM.fragment(str)
});
κ·Έλ¬λ λͺ¨λ Range APIλ ν¨μ¬ λ
@domenic @acusti κ° μμ²ν κ²μ μ΄λ₯Ό νμΈνκΈ° μν λ€μ λ¨κ³λ 무μμ λκΉ?
λλ μ΄κ²μ μ¬μ©νλ €κ³ ν©λλ€ :
https://github.com/PrismJS/prism/issues/896
λκ΅°κ° λ€λ₯Έ κ²½λ‘λ₯Ό μΆμ²ν μ μμ΅λκΉ? λλ PrismμΌλ‘ κ°μ‘°λ diffμ ꡬ문 κ°μ‘°λ₯Ό κ°λ μμ΄λμ΄λ₯Ό μ’μν©λλ€. Githubμ νκ΄νλ³΄λ€ λ μ λμ¬ μλ μμ΅λλ€.
SourceTreeλ₯Ό λ€μλ μ¬μ©νμ§ μλ λ νλμ μ΄μ λ https://www.patreon.com/ μ λλ€.
@adrianheine WIPλ₯Ό 곡μ ν΄ μ£Όμλ©΄ λμ
λλ΄ ν μ€νΈμμ μ€λ₯κ° λ°μνμ΅λλ€.
TypeError: document.createRange is not a function
at createRange (node_modules/popper.js/src/utils/findCommonOffsetParent.js:27:26)
at findCommonOffsetParent (node_modules/popper.js/src/utils/getReferenceOffsets.js:16:85)
at Popper.getReferenceOffsets (node_modules/popper.js/src/methods/update.js:29:28)
at Popper.call (node_modules/popper.js/src/index.js:94:19)
at node_modules/popper.js/dist/umd/popper.js:51:7
μ¬κΈ°μμ λ§ν¬ μ°ΎκΈ°
μλ νμΈμ, μ΄κ²μΌλ‘λΆν° μ΄λ€ μ§μ μ΄ μμ΅λκΉ?
μΈμ μΆμλλμ? λ°λΌμ jestλ μ΅μ λ²μ μΌλ‘ μ κ·Έλ μ΄λν μ μμ΅λλ€.
κ°μ₯ μ μ©ν λκΈ
https://mobile.twitter.com/slicknet/status/782274190451671040