benchmark script
Library
Time
bbmustache
14362
mustache.erl
152821
Check the reference implementation
⚠️ For libraries other than bbmustache, there is a possibility that there is a miss.
comments
https://github.com/mustache/spec/tree/v1.4.1/specs/comments.yml
bbmustache
mustache.erl
Inline
✅
✅
Multiline
✅
✅
Standalone
✅
Indented Standalone
✅
Standalone Line Endings
✅
Standalone Without Previous Line
✅
Standalone Without Newline
✅
Multiline Standalone
✅
Indented Multiline Standalone
✅
Indented Inline
✅
✅
Surrounding Whitespace
✅
✅
Variable Name Collision
✅
✅
https://github.com/mustache/spec/tree/v1.4.1/specs/delimiters.yml
bbmustache
mustache.erl
Pair Behavior
✅
Special Characters
✅
Sections
✅
Inverted Sections
✅
Partial Inheritence
✅
Post-Partial Behavior
✅
Surrounding Whitespace
✅
Outlying Whitespace (Inline)
✅
Standalone Tag
✅
Indented Standalone Tag
✅
Standalone Line Endings
✅
Standalone Without Previous Line
✅
Standalone Without Newline
✅
Pair with Padding
✅
https://github.com/mustache/spec/tree/v1.4.1/specs/interpolation.yml
bbmustache
mustache.erl
No Interpolation
✅
✅
Basic Interpolation
✅
✅
HTML Escaping
✅
Triple Mustache
✅
✅
Ampersand
✅
✅
Basic Integer Interpolation
✅
✅
Triple Mustache Integer Interpolation
✅
✅
Ampersand Integer Interpolation
✅
✅
Basic Decimal Interpolation
✅
✅
Triple Mustache Decimal Interpolation
✅
✅
Ampersand Decimal Interpolation
✅
✅
Basic Null Interpolation
✅
Triple Mustache Null Interpolation
✅
Ampersand Null Interpolation
✅
Basic Context Miss Interpolation
✅
✅
Triple Mustache Context Miss Interpolation
✅
✅
Ampersand Context Miss Interpolation
✅
✅
Dotted Names - Basic Interpolation
✅
Dotted Names - Triple Mustache Interpolation
✅
Dotted Names - Ampersand Interpolation
✅
Dotted Names - Arbitrary Depth
✅
Dotted Names - Broken Chains
✅
Dotted Names - Broken Chain Resolution
✅
Dotted Names - Initial Resolution
✅
Dotted Names - Context Precedence
✅
Implicit Iterators - Basic Interpolation
✅
Implicit Iterators - HTML Escaping
✅
Implicit Iterators - Triple Mustache
✅
Implicit Iterators - Ampersand
✅
Implicit Iterators - Basic Integer Interpolation
✅
Interpolation - Surrounding Whitespace
✅
✅
Triple Mustache - Surrounding Whitespace
✅
✅
Ampersand - Surrounding Whitespace
✅
✅
Interpolation - Standalone
✅
✅
Triple Mustache - Standalone
✅
✅
Ampersand - Standalone
✅
✅
Interpolation With Padding
✅
✅
Triple Mustache With Padding
✅
✅
Ampersand With Padding
✅
✅
https://github.com/mustache/spec/tree/v1.4.1/specs/inverted.yml
bbmustache
mustache.erl
Falsey
✅
✅
Truthy
✅
✅
Null is falsey
✅
Context
✅
✅
List
✅
✅
Empty List
✅
✅
Doubled
✅
✅
Nested (Falsey)
✅
Nested (Truthy)
✅
Context Misses
✅
✅
Dotted Names - Truthy
✅
Dotted Names - Falsey
✅
Dotted Names - Broken Chains
✅
Surrounding Whitespace
✅
Internal Whitespace
✅
Indented Inline Sections
✅
Standalone Lines
✅
✅
Standalone Indented Lines
✅
Standalone Line Endings
✅
Standalone Without Previous Line
✅
Standalone Without Newline
✅
Padding
✅
✅
https://github.com/mustache/spec/tree/v1.4.1/specs/partials.yml
bbmustache
mustache.erl
Basic Behavior
✅
Failed Lookup
✅
Context
✅
Recursion
✅
Nested
✅
Surrounding Whitespace
✅
Inline Indentation
✅
Standalone Line Endings
✅
Standalone Without Previous Line
✅
Standalone Without Newline
✅
Standalone Indentation
✅
Padding Whitespace
✅
https://github.com/mustache/spec/tree/v1.4.1/specs/sections.yml
bbmustache
mustache.erl
Truthy
✅
✅
Falsey
✅
✅
Null is falsey
✅
Context
✅
Parent contexts
✅
Variable test
✅
List Contexts
✅
Deeply Nested Contexts
✅
List
✅
Empty List
✅
✅
Doubled
✅
✅
Nested (Truthy)
✅
Nested (Falsey)
✅
Context Misses
✅
✅
Implicit Iterator - String
✅
Implicit Iterator - Integer
✅
Implicit Iterator - Decimal
✅
Implicit Iterator - Array
✅
Implicit Iterator - HTML Escaping
✅
Implicit Iterator - Triple mustache
✅
Implicit Iterator - Ampersand
✅
Implicit Iterator - Root-level
✅
Dotted Names - Truthy
✅
Dotted Names - Falsey
✅
Dotted Names - Broken Chains
✅
Surrounding Whitespace
✅
Internal Whitespace
✅
Indented Inline Sections
✅
Standalone Lines
✅
✅
Indented Standalone Lines
✅
Standalone Line Endings
✅
Standalone Without Previous Line
✅
Standalone Without Newline
✅
Padding
✅
✅
https://github.com/mustache/spec/tree/v1.4.1/specs/~dynamic-names.yml
bbmustache
mustache.erl
Basic Behavior - Partial
Basic Behavior - Name Resolution
Context Misses - Partial
✅
Failed Lookup - Partial
✅
Context
Dotted Names
Dotted Names - Operator Precedence
✅
Dotted Names - Failed Lookup
Dotted names - Context Stacking
Dotted names - Context Stacking Under Repetition
Dotted names - Context Stacking Failed Lookup
Recursion
Dynamic Names - Double Dereferencing
✅
Dynamic Names - Composed Dereferencing
✅
Surrounding Whitespace
Inline Indentation
Standalone Line Endings
Standalone Without Previous Line
Standalone Without Newline
Standalone Indentation
Padding Whitespace
https://github.com/mustache/spec/tree/v1.4.1/specs/~inheritance.yml
bbmustache
mustache.erl
Default
Variable
Triple Mustache
Sections
Negative Sections
Mustache Injection
Inherit
Overridden content
Data does not override block
Data does not override block default
Overridden parent
Two overridden parents
Override parent with newlines
Inherit indentation
Only one override
Parent template
Recursion
Multi-level inheritance
Multi-level inheritance, no sub child
Text inside parent
Text inside parent
Block scope
Standalone parent
Standalone block
Block reindentation
Intrinsic indentation
Nested block reindentation
https://github.com/mustache/spec/tree/v1.4.1/specs/~lambdas.yml
bbmustache
mustache.erl
Interpolation
Interpolation - Expansion
Interpolation - Alternate Delimiters
Interpolation - Multiple Calls
Escaping
Section
Section - Expansion
Section - Alternate Delimiters
Section - Multiple Calls
Inverted Section
✅
✅