* refactor to extract applyOperation util
* change handlers to receive transform instead of state
* change onChange to receive a transform, update rich-text example
* fix stack iterationg, convert check-list example
* convert code-highlighting, embeds, emojis examples
* change operations to use full paths, not indexes
* switch split and join to be recursive
* fix linter
* fix onChange calls
* make all operations invertable, add src/operations/* logic
* rename "join" to "merge"
* remove .length property of nodes
* fix node.getFragmentAtRange logic
* convert remaining examples, fix existing changes
* fix .apply() calls and tests
* change setSave and setIsNative transforms
* fix insert_text operations to include marks always
* cleanup and fixes
* fix node inheritance
* fix core onCut handler
* skip constructor in node inheritance
* cleanup
* change updateDescendant to updateNode
* add and update docs
* eliminate need for .apply(), change history to mutable
* add missing file
* add deprecation support to Transform objects
* rename "transform" to "change"
* update benchmark
* add deprecation util to logger
* update transform isNative attr
* fix remaining warn use
* simplify history checkpointing logic
* fix tests
* revert history to being immutable
* fix history
* fix normalize
* fix syntax error from merge
* WIP getting raw marks arrays from the current range
* Always handle marksRaw as Array, fixes tests/lint
* Clean up
* Fixes collapsed selection raw marks, simpler _every_ condition, harmonize toolbar buttons in rich-text example
* raw -> perCharacter
* Add tests for toggleMark collapsed selection
* Add .DS_Store to .gitignore
* Added test for toggleMark add in partially marked selection, with and without other marks
* Added docs for state.marksPerCharacter
* replace marksPerCharacter with activeMarks
* Update the other examples
* Clarify getActiveMarksAtRange
* AddMark/RemoveMark to use getActiveMarksByRange
* User activeMarks for toggle§MarkAtRange transform
* first stab
* refactor to nanobench
* refactor to matcha
* use hand-rolled comparison logic, ugh
* update threshold
* remove unused dependencies
* remove benchmarks from travis ci
* Add script for benchmark
* Add error handling
* Rename folder to perf/benchmarks
* Add README
* Avoid memoization between benchmark runs
* Handle multiple benchmark. Add setup to benchmarks
* Run benchmarks through Travis
* Add command line options for JSON output
* Add export to JSON, and comparison with reference
* Improve serialize and fix results display
* Add perf/ to .npmignore
* Print error message
* Create normal example for normalize
* Add normalize-document wide and deep
* Add split-block normal, deep and wide
* Add delete-backward benchmarks
* Fix too much newlines
* Use microtime for better results maybe?
* Print number of runs
* Add minSamples options for better accuracy
* Use babel-node to launch benchmarks
* Use jsdom-global instead of mocha-jsdom (deprecated)
* Add rendering benchmark example
* Fix jsdom usage.
* Use JSX because we can
* Only use on('cycle') that is called even on error
* Example of successive rendering benchmark
* Rename README, and explain how to add a benchmark
* Add C++11 to Travis to install microtime
* Update Readme.md # Understanding the results
* Try to fix Travis build with microtime
* Travis: use before_install
Instead of overwriting install
* Forgot to remove mocha-jsdom import
Thanks node_modules...
* Add jsdom as devDependency
(required as peer dependency by jsdom-global)
* Add --only option to run only a specific benchmark
* Print name onStart rather than at end