v1.0.0-beta.1
Pre-release-
fe7cfac: v1.0.0-beta.1
-
300d9bb: prerelease
-
3601e18: correct commit release
-
c795918: 1.0.0-beta.1
-
12b4140: 1.0.0-alpha
-
760d774: remove tag
-
7cca02b: push tags
-
630df3c: 1.0.0-beta.1
-
ef0807c: 1.0.0-alpha
-
1207ad8: stringify log
-
83eac6f: remove web from master
-
45130c4: push after build
-
2b1b1e5: Moon v1
-
806aef1: tab
-
7587745: Merge branch 'master' into rewrite
-
3d3bbe6: add build scripts
-
a1cd9c5: release script
-
8db839f: update css re
-
aea1806: remove unused file
-
4c48829: new hot API
-
1de8c9b: add hot utilities
-
f61723d: use scope css
-
b987360: export css scoper
-
bca5892: export css
-
e293cf1: export file info
-
6e73fbb: export libraries
-
5491005: remove deps
-
06d37ad: add css rule when scoping
-
21683b3: require correctly, compile correctly
-
e6fccfb: fix syntax
-
2a75c5d: require correctly
-
eaeb873: add css scoper
-
d6201ef: work on css mvl
-
4960970: export parser and generator
-
7c7bef3: use contents
-
4b871c9: add start instruction
-
2868428: compile created files
-
a206f79: consistent descriptions
-
c6afd10: moon-cli
-
7928036: deps
-
a9122a3: add readme for moon-mvl
-
f1630ec: add mvl
-
01063d9: move release script
-
60ef57a: scripts
-
25da182: infrastructure
-
9c99ab1: finish up guide
-
d393cfe: begin guide
-
ec62a88: add coming soon
-
9661801: add examples section
-
fa17f7e: finish up component docs for now
-
c79eb0a: add component arguments section
-
cbdcaeb: update button styles
-
0f2059c: add component definition doc
-
c4fe44d: write about alternate syntax
-
8380f6c: add runnable examples and loops
-
fd983fd: finish up view events
-
dedc90a: add more data docs
-
bbffecb: add data
-
f0c96cb: add events
-
69cdf35: organize
-
941dc5c: remove local
-
7d009a7: fix syntax highlighting and begin view section
-
8378305: add about
-
661631e: basic structure
-
40fbdb4: start guide
-
61d0eed: slight redesign
-
378cfe0: spacing in fast example
-
1320190: update fast compiled result
-
37f3051: update cta links
-
c0af2f6: update fast example
-
4a76c41: add nav
-
67de7da: update header styles
-
93a3bfd: update example style
-
878d64c: update website
-
e4b97d7: update code colors
-
b5c7140: update logo & colors
-
3151bab: update todo
-
b8b70d7: fix component initial update
-
d6200cc: add basic components
-
1305a50: reorganize directive runtimes
-
3562b2c: use correct view create API
-
3cc843c: remove reference from API
-
d7749e2: create using root and reference
-
446d549: allow precompiled views
-
a7d6267: update todo example
-
871e598: optimize events and create bind event
-
b7fc498: update example
-
f061475: add variable support to #for
-
aebb99e: add basic #for
-
ad94c7a: spacing
-
0b19e6c: build
-
24053df: update option shape and correctly implement directives
-
42b4157: use variable based compiler
-
bb448e8: consistent colors
-
fdfc6cc: make button brighter
-
506cd37: add
#elseif
, make attribute values selfish, and fix attribute with value bug -
bb2265c: update spacing
-
127ef76: update landing
-
6d4ea3e: add web section
-
c8b174b: add basic landing page
-
83b1823: add events system +
#if
/#else
-
e171bf5: update website
-
5b08686: add
#if
-
b55f09f: clean up conditional implementation
-
f2e8484:
set
->update
-
047ac2e: add
#if
,#elseif
, and#else
create -
17c2544: add #if #else
-
de6c133: new syntax: events -> attributes & directive -> elements/attributes
-
24c9e4e: add destroy directives and user-defined
m-text
&m-comment
-
878ec4f: new directive system and create/update/destroy
-
afaecd9: new directive system + destroy
-
16271e8: add
m-root
, locals with$
, and change directive system -
ca1b73f: ignore whitespace-only nodes
-
cc3070f: update component API and add mount in create
-
9762139: use
m.cae
-
7c6ae48: don't update directive in create
-
bca8d20: update directive system and change locals & structure
-
c099ac3: cleaner implementation of directives
-
1755adb: add
updated
hook -
544ce31: remove mount and add
created
hook -
7b3fa8e: add events
-
ef28850: change API for options object, view array, and actions
-
d2a92b7: update attributes, add
m-on
attribute -
c123582: compile arguments & events, consistent formatting
-
8118cad: update dynamic expressions and attribute expressions
-
4b41d73: concise code for creating attributes
-
2ee4e9e: correctly mark attribute as dynamic
-
72aca99: correctly mark attributes as expressions and dynamic
-
347af97: create attributes, fix generated code formatting, and create case for no attributes
-
f2ee4dd: parse attributes
-
f3692d5: add global components
-
a260014: remove
m
from locals -
b859484: create component constructor
-
60c2c60: remove unnecessary exports
-
a446ca4: create with dynamic content
-
1369fd2: split up generator
-
03a0590: split up parser
-
612b95a: add eslint
-
455d570: remove gulp
-
b35fe7e: add default data and data in root
-
588d008: correct dependency path
-
3ed828b: build
-
4fd3e6b: use mapReduce & DOM utilities, correctly mount fragment
-
4d53a3c: add DOM utilities and initial update
-
f05b028: add mapReduce to utilities
-
463b553: add update
-
6def4af: generate create + mount for expressions and generate dependencies
-
9ab89e5: remove instance from locals
-
91238d8: generate fragments
-
c1e5a81: add fragments in parser
-
c438218: parse expressions
-
1da4378: remove unused regex
-
0136716: parse comments
-
6eb47d2: add escapes
-
71f1472: build
-
ebe2a2f: better error message
-
a00d869: add text content
-
1f0857d: correctly mount to root
-
1e4114a: add mount
-
4807076: generator for creation
-
e20a58b: add root instance
-
74bf27d: add create, mount, and update
-
9392d5f: m-fragment -> array
-
462b86e: build
-
69fdd42: add basic incomplete generator
-
5c06921: add parse index to parse elements
-
a8a52fc: add component and root instance constructor
-
7189dca: add sizes to build
-
107c1e5: remove global
-
f86bc7a: update structure
-
ca49d0f: remove file names from imports
-
1470b53: add compiler shell
-
0e080bc: export parser
-
adde9e4: correct error message for unclosed tag
-
c621cce: use config in util
-
946b5a5: install global API
-
c13ac49: basic Moon template parser
-
57f89a4: add error utility
-
50d19e1: add Moon configuration
-
5285c63: use env variable MOON_ENV
-
e3b2856: add plugins and env
-
a954458: improve style
-
166dc84: remove current Moon API from tests
-
2ec94b4: stop saucelabs for rewrite
-
a0f4eed: update browser support table
-
1299977: refactor index code
-
bfb231e: development + production build system
-
8a43b17: update build system
-
a81a456: remove old build scripts
-
02ff14f: update karma configs
-
c501192: update travis scripts
-
413bedc: rewrite build scripts
-
8f0ec5e: remove benchmarks
-
2a493ce: rewrite source
-
10d3791: rewrite test structure
-
f3b700d: rewrite package details
-
029aae6: remove file structure for now
-
e777676: wording in description
-
babbf8b: see documentation
-
3365188: 2018 in license
-
7a1eafa: 2018
-
76651e4: consistent spacing
-
02e22ad: simpler subheading
-
aac29ee: refactor: use convention for chars
-
e620897: feat: static flags & m-dom directive
- Compiler
m
is now a global variable- Lexer
attributes
is an array
- Parser
- Every node has
data
with no flags
- Every node has
- Generator
generateNodeState
- Compiles text values
- Compiles inserts
- Compiles attributes
- Compiles directives
- Compiles before + during special directives
- Creates a list of after special directives
- Compiles child states and adds static flags
generateNode
- Converts compiled nodes into function calls
- Calls special directives after
- Returns static node if static flag is present
generate
- Marks tree as static if state is static
- Uses
generateNodeState
andgenerateNode
- Directives
m-if
/m-else
- Only generates output for
m-else
- Outer if/else nodes are always dynamic
- Only generates output for
m-for
- Always dynamic
- Allows
generateNodeState
to restore locals
m-on
+m-bind
- Uses new naming conventions
m-dom
- Adds dom property
- Replacement for
m-literal:prop.dom="value"
m-literal
- Only for literal attributes
- Virtual DOM
- HyperMoon for text nodes requires
- type -> type of node ("#text")
- data -> data of node (only flags)
- value -> value of node (text content)
- HyperMoon for text nodes requires
- Compiler
-
f6adec5: fix: change flag values
-
a5192d8: refactor: order constants
-
64fb32d: fix markup
-
51b3ae4: comparison to other libraries
-
b50906d: change description for CLI
-
597756c: refactor: add flags correctly
-
5dccf1d: refactor: vnode data flags
-
d459e2d: perf: remove replace for static nodes
-
3355521: add virtual DOM hoisting tests
-
fe3f4ee: wording for virtual dom trees
-
37b0513: explain uses
-
17b3b44: update explanation
-
1ddb983: change explanation for another library
-
d63c607: correct comment
-
18514af: change description for router
-
c135b3f: fix test quotes
-
9ae71c4: fix: allow whitespace between aliases in for
-
b566451: refactor: Consistent Naming for
hydrate
&patch
-
451aad1: refactor: Functions & Consistent Naming
patchChildren
-> patches childrenoperationNode
&operationVNode
operationNode
-> handles low-level DOM operationoperationVNode
-> handles mounting/destroying components along with DOM
- consistent naming -> root path + properties in camel case
-
7cefee2: Add Support Section
-
ac315d3: Revert "add patreon link"
This reverts commit bd6dc53.
-
bd6dc53: add patreon link
-
5b305a6: Optimize loop benchmark
-
dc36037: breaking: Template Compilation
- generator state
staticNodes
-> static node codedependencies
-> method and prop dependenciesexclude
-> global variables and keywordslocals
-> local variables
on
directiveevent
variable is available, but not by default
- generator state
-
99d361b: fix: compile DOM props once
-
40d2774: fix: deoptimize dynamic DOM props
-
f2b68c7: improve dbMon implementation
-
04482ef: breaking: Rewrite Generator and Optimizer (fixes #146)
- Compiler
- template
- fix bug and mark as dynamic even if referring to a prop that has been referenced before
- lexer
- store argument in
arg
- store argument in
- parser
- parse text nodes with a type of
#text
- store index in node
- parse text nodes with a type of
- generator
- rewritten
attrs
can beundefined
- hoist static nodes (#146)
- generates all children and becomes dynamic if a child is dynamic
- if dynamic then hoist static children
- if static then return as usual to let caller handle it
- stores static nodes in
instance.compiledRender.staticNodes
and initializes them at runtime
- optimize by joining with a separator instead of substrings
- returns output and boolean representing if the node is dynamic
- directives
before
special directives are expected to return a boolean representing if the element is dynamic or notduring
special directives are expected to return an object containing the output and a boolean representing if the element is dynamic or notif
/else
- if the condition is static
- it will be evaluated once
- no optimization will be done directly to the nodes so that the parent can handle it
- if the condition is dynamic
- if either the if or else node is static, then it will be optimized and hoisted
- if the condition is static
for
,on
,bind
,literal
- use new API
- remove
m-show
- template
- Virtual DOM
- patch props
- if vnode attributes are undefined
- if node attributes aren't undefined, remove all of them
- if vnode attributes are defined
- if node attributes are undefined
- add all attributes
- if node attributes are defined
- add non
false
vnode attributes that have changed or need to be added - remove
false
vnode attributes along with vnode attributes that no longer exist
- add non
- if node attributes are undefined
- execute directives
- add/update DOM props
- if vnode attributes are undefined
- patch props
- Tests
- update all tests for new API
- Compiler
-
373c098: add tests for having multiple dependencies
-
ef7fae8: add tests for static directive
-
3ab9879: add tests for computed property cache
-
c3c4507: fix: warn when root element is text
-
517f30d: add tests for updating the default insertion
-
cb518d1: add utility to capture errors when testing, and add tests for unknown directives
-
031cfc0: simplify intuitive API feature
-
af0ce48: add Slack badge to README
-
f888763: add tests for errors when data isn't a function in components
-
85d155e: add tests for removing events for a type, and referencing undefined values
-
5911494: add tests for invalid expressions
-
64438cd: add tests for empty attributes
-
554f003: test unclosed mustaches
-
a05cc3b: mute logs in tests
-
250a30b: refactor: tests for self closing elements
-
3e931b5: fix: remove "m-else" from directives list when compiling
- "m-if" already handles "m-else"
-
74fbbea: add tests for destroying components by replacing and removing
-
68bcfad: add tests for xlink:href
-
f7a9ee4: add tests for removing items from a list
-
3305b1d: refactor: rename delimiter to separator
-
2ac841d: improve test suite output
-
a5d2b89: fix: don't check for different root when building (root element can only change during hydration due to component mounting)
-
18ffb75: breaking: simplify event emitter payload system (fixes #153)
- payload does not need to be an object
- normal event handlers are passed with the payload as the only parameter
- global event handlers are passed with the type of event and the payload
-
9136b0b: refactor: remove jsdoc comments from global API
-
50c91f5: breaking: Rewrite Virtual DOM Engine (fixes #158)
- Root
- any root element doesn't have "moon" with a reference to the instance anymore
- VNode:
- "meta" has been renamed to "data"
- "eventListeners" has been renamed to "events"
- Hydrate:
- hydrates children, and does work in loop
- uses inline DOM utilities
- Patch:
- Components:
- if creating a component using the constructor, the following options are available
- required options
- "props" - values of props to merge with data
- "events" - default events
- "insert" - the default insert
- optional options
- "root" - root element to mount component to
- required options
- all components are expected to be pure, meaning that the output depends on the props and state only. the component won't be updated if none of these aspects are dynamic
- functional components are removed
- if creating a component using the constructor, the following options are available
- Compiler:
- Parser:
- will no longer deoptimize if an HTML element is custom (components are expected to be pure, so they are optimized depending on if the props and inserts are dynamic)
- Parser:
- Root
-
d50505e: refactor: add note about parser stack for non void elements
-
6f5acef: add more details about the 'util' folder
-
8d1a65e: fix: don't run browser support tests on PR's (fixes #156)
-
a19acff: refactor: move hydration to mount
-
9598309: refactor: consistent naming when diffing props
-
bff7b09: fix: edge cases for diffing engine
- update DOM props and directives
- always diff children, even if innerHTML or textContent DOM property was set
-
342f080: feat: efficient component mounting (fixes #150)
- component constructor can take "events" to add before "init"
- "init" is called before "mounted"
- props, events, and inserts are available in "init"
-
7022c3e: update variable order in release script
-
37e696c: refactor: beautiful changelog generator
-
71ee4fb: refactor: add implementation details about parser
-
a902ea2: refactor: compiler and generator
-
dba4241: fix: make compiler output cleaner (#144)
- only concat when needed
- no inefficient checks for dynamic nodes, template compiler returns dynamic state
-
6637090: breaking: remove event modifiers
- simplifies "m-on"
- can easily be added in event listener code
- keeps core minimal
-
a83fd4e: breaking: New Method API (fixes #141)
- methods are stored in "instance.methods" and are callable (the context is changed)
- methods are constants and cannot change
- "m-on" will optimize all method calls unless they pass a dynamic property as a parameter
- methods and data can have the same name, but it is considered a bad practice
-
cf276f7: use es5 tests
-
4d10341: make tests IE compatible
-
66f9d09: fix: correctly parse multiple void elements
- tags are now case-sensitive
-
a1a8994: breaking: Rewrite Moon (fixes #127, fixes #132)
- compiler
- lexer
- rewritten
- ignores whitespace-only text nodes
- can handle any whitespace (#127)
- parser
- rewritten
- uses a stack to keep track of nodes
- doesn't warn about extra closing tags
- generator
- cleaner implementation
- cleaner specification for
state
and special directives
- template compiler
- rewritten
- uses a single pass and eats leading/trailing whitespace
- lexer
- directives
- fix edge cases
- beautify code more
- global API
- remove "Moon.util.extend" (not used in core)
- make component creation faster
- instance methods
- event system
- refactor ".on"
- refactor ".emit"
- mount
- refactor
- increase performance by caching
- build
- removed "patch" in favor of "build"
- handles hydration, diffing, and replacing the root element
- event system
- observer
- refactor
- remove unused code
- remove unused methods
- computed properties
- simpler caching system
- when requested:
- if cache is cleared:
- captures dependencies for property
- any ".get" will add the property as a dependency of the key
- if not, use cached value
- if cache is cleared:
- any ".set" notification will clear the cache for a key if it is not already cleared
- when requested:
- simpler caching system
- methods
- refactor loop
- refactor
- DOM utilities
- utilities
- remove "extend"
- virtual DOM
- refactor
- remove unused runtime utility
- change code style
- warn on missing directive
- remove TEXT_TYPE constant
- hydrate
- efficiently hydrate children
- diff
- fix optimization case
- use "dynamic" property to indicate deoptimization
- replace "isSVG" with "SVG" meta property
- refactor
- compiler
-
010a11b: fix: use 'meta.node' when removing an extra child when diffing (fixes #126)
-
39b654a: breaking: remove 'instance.callMethod' in favor of 'instance.get(method)()'
- cleaner
m-on
code - warnings when method is undefined in templates
- cleaner
-
f89d24e: fix: edge cases for mounting components (fixes #122, closes #120)
- appendChild
- if a component is present, it mounts the component onto a created DOM node with no event listeners or props (no call to 'createNode')
- if a component is not present, it will append a created node as usual
- replaceChild
- if a component is present, it will mount the component onto the node to be replaced, and the component's diff will take care of the rest
- if a component is not present, it will replace a child with a created node as usual
- tests
- add tests for append/replace component mounts
- appendChild
-
56d0bb4: update tests to use m-bind
-
289a532: breaking: use 'bind' instead of 'model'
-
a67e761: breaking: use 'Moon.extend' for creating components
-
3fc782c: perf: advanced compiler optimizations for special directives
- special directives do not deoptimize by default
- it is up to the special directive to decide
- this is made possible by the hydration engine, which handles the initial render regardless of optimization
compileTemplateExpression
returns a boolean showing if the template was static or dynamic- deoptimization is only done if the element must be diffed every time (m-if, m-for, m-model)
- m-if, m-for, and m-model deoptimize
- m-on deoptimizes only if dynamic parameters are involved
- m-literal only deoptimizes if a dynamic property is being set
- add dbmon repaint rate
- special directives do not deoptimize by default
-
f3fa265: refactor: double quotes for strings, and single quotes for characters
-
d26dd24: fix: optimize on m-ifs next to each other
- they will both be replaced by text, not each other (like m-else, which needs to be deoptimized)
-
81fd585: refactor: remove unused variables and const for in
-
a28ac72: add tests for merging w/ existing events
-
5b24e1e: fix: merge events for parent-child components correctly (#120)
-
5bc255b: refactor: don't initialize counter
-
4a42985: breaking: remove support for custom keycodes
-
de6471e: fix: optimization for m-if/m-else, implementation of m-for, add m-static, and introduce data storage for special directives
- m-if/m-else
- doesn't use a stack
- two m-ifs next to each other (seperated by text) are deoptimized, and so is any m-if/m-else pair
- an m-ifs seperated by an element are optimized
- works by setting a property in the data on the most outer deoptimized m-if/m-else, and re
setting the 'dynamic' property when done processing- in case of two or more m-ifs, the last m-if will reset the 'dynamic' property, while all of them are deoptimized
- m-for
- doesn't use a static
- stores data in 'prop.data.forInfo'
- m-static
- used to manually override all deoptimizations for an element
- sets 'static' property of state
- resets 'static' property of state when most outer m-static is done processing (done by storing 'prop.data.staticSet')
- data storage for special directives
- introduced above, special directives can have a shared state throughout each state (beforeGenerate, duringPropGenerate, afterGenerate)
- m-if/m-else
-
401fb44: change wording
-
53881ab: refactor: make parser conditions more specific, remove dynamic input tests for m-model (for now)
-
563313b: refactor: rewrite m-model to work with new 'set' method
- if key is dynamic
- creates temporary 'modelValue' variable to hold value of base
- sets keypath of 'modelValue'
- calls 'set' on base and 'modelValue'
- if key is static
- calls 'set' on base and input value depending on input type
- if key is dynamic
-
455a945: refactor: refer to generation nodes as 'node' instead of 'vnode'
-
df11ccc: refactor: remove string conversion
-
9ae5922: refactor: remove unused variable in 'm-if'
-
878b4ba: feat: allow 'root' to be specified when creating a component constructor
- if specified, component will be mounted after init
- add tests
-
7966be9: refactor: diff props
- only remove/not set props if they are 'false'
-
7364d5d: refactor: remove shared state 'output' from template compiler
-
19360fe: refactor: inline extractAttrs
-
4638a89: fix: add tests for 'set' with object syntax
-
191b81d: fix: warn when method has same key as a data property (fixes #115)
-
2a0f7cc: refactor: make error message for referencing undefined value more clear
-
02c7d2a: breaking: remove m-html in favor of m-literal:innerHTML.dom
- refactor setting DOM properties
-
3d66832: refactor: generator and formalize directive spec
-
state has structure of:
{ index: 0, // index of current node being processed dynamic: false, // value to override optimization exclude: [], // global variables to exclude from generator dependencies: [] // all state dependencies }
-
use stack for m-for to track iteratable, aliases, and exclude
-
make "event" a global exclude
-
remove escaped double quotes
-
-
fef1525: add information about new categories in CONTRIBUTING guide
-
6114798: update release script for docs and refactor categories
-
84234ee: temporarily remove model dynamic tests
-
d81083c: feat: allow objects in 'set' instead of keypaths
- shallow merge
- works with observer
- works with computed properties
-
dc2596f: fix: cache 'component'
-
a94c626: fix: refactor virtual DOM engine and make creating components from instances simpler
- virtual DOM 'patch'
- replaces root element of when hydrating and diffing
- virtual DOM 'hydrate'
- no return value
- assume component creation
- doesn't handle 'null'
- DOM utilities
- 'replaceChild' and 'appendChild'
- correctly check for components
- 'replaceChild' and 'appendChild'
- instance 'destroy'
- correctly removes 'moon' from bound DOM node
- virtual DOM 'patch'
-
e2f5166: compile m-model correctly
-
15fccbe: fix: refactor everything to declare variables in correct block scoping
-
585dbfb: breaking: replace slots with insertion system
- component will render default insert
-
444e009: fix: warn on unknown directive
-
5639021: fix: change shape of vnodes to be more memory efficient
- text nodes only have meta and value
- normal nodes don't have a value
- isSVG is 'undefined' or 1
-
86532b0: breaking: rename 'el' to 'root' and remove 'props' in favor of 'options.props'
- more descriptive name
- no need for user to access props on instance
-
f62b63e: fix: remove double assignments
-
f6abebe: fix: optimization technique for m-if/m-else
- any m-if's with the same parent seperated by text (or nothing) will be deoptimized
- any m-else will be deoptimized
- any m-if's with the same parent seperated by an element will be optimized
-
500bfbe: fix: meta.shouldRender can be '1' or 'undefined'
- makes render functions much smaller
-
b615582: feat: add 'm-else', and fix optimizer edge case
- two m-if's inside of the same element (next to each other or seperated by only text), or an m-else will be deoptimized as an element can replace another at anytime, and can sometimes be skipped
- an m-if by itself, or an m-if seperated by an element (other than text) will be optimized
- m-else will act as an 'else' statement for any previous 'm-if'. the only allowed seperator between any 'm-if' and 'm-else' is text (including whitespace and line breaks)
-
85008bf: clean up wording in readme
-
d01cc66: feat: add .dom modifier for m-literal to set a property on a DOM element instead of an attribute
-
cd105b9: fix: call computed setter in right context
-
f53cb7b: breaking: remove '$' prefix from all properties
-
6cdbadf: fix: update username when referring to voke
-
23d2b39: fix: use block scoping
-
2ee78dc: fix: cache options when rendering a functional component
-
c4aa2e8: fix: require data to be a function for functional components
-
eeb2d22: update browser support matrix
-
136a1db: update username for npm
-
856f901: update new username
-
8409b5e: fix: replace lookup and copy for a single lookup
-
1facdc1: add svg compiler tests
-
25f32f3: add tests for deoptimizing on unknown html
-
651d29a: better minification
-
850095a: fix: set svg elements correctly and deoptimize on components
-
ae84cfb: fix: add a new event handler when a new one is present when diffing event listeners
-
d845a63: fix: call updated hook when updated, not when mounted
-
48c6b5b: fix: correctly exclude items from scope throughout compilation process
-
8fc8c86: fix: spaces > tabs
-
0afedf9: fix: remove unused variables in lexer
-
a72ec6c: fix: remove unused variable when scanning template state until condition
-
5b5411f: fix: remove unused regular expressions
-
704f385: fix: remove unused argument in notify
-
8637d66: fix: correctly exclude aliases from scope in m-for
-
ed26a5b: fix: exclude special custom parameters from scope (fixes #92)
-
afacfbf: fix: call updated hook when built (including mount), and remove destroyed state and replace with queue
-
404ea12: fix formatting
-
7981cc2: fix: assume attrs if special directive generates during prop generation
-
f4ba9ee: fix: avoid string conversion in dom props when using html directive
-
965c7e7: fix: remove isString param from template compiler
-
498efde: fix: remove unused regex
-
9863720: fix: fix typo in diffing when appending children
-
7f6168a: perf: optimize adding children to the end of a list when diffing
-
030d44e: perf: improve performance of removing children at the end of a list when diffing
-
5c66f8c: perf: optimize hydration to use less loops
-
e0690f4: perf: cache oldChildren when appending
-
75d8370: fix return types for diff
-
f00bca3: fix: correctly update reference to children when appending items to the end of a list
-
b99f926: build
-
2597831: fix: update children when adding items to end of a list when diffing
-
e94948f: perf: improve hydration engine performance by adding fast cases
-
b9fc46b: perf: rewrite diffing engine
improve performance by diffing children faster, and improve performance when creating children by caching common values