Comments (9)
No, I assure you that that is not what users really want. You know what types your properties contain; doT doesn't. What if I had two numbers and I wanted to add them? Why would that be a less important use case?
from dot.
@Pointy because that's definitely not what you expect from something which clearly should output. {{=var}}
should just output what's in var. It's documented as an output operation, then it should just output too, not do any additions.
from dot.
@bwoebi I apologize for not expressing myself more clearly; also, I think I better understand what you're asking for now. However, I'm a little confused. If it.number
is a number, and it.string
is a string, then
out = (it.number)+(it.string);
will result in a string concatenation operation, and NaN
cannot be generated by that. (Maybe I still don't understand what the failure scenario is.)
from dot.
@Pointy Hmm, I think I've done something wrong in the original bug report. The failure is definitely present when both operands are numeric. Then they definitely add up, which my quick fix above fixes.
from dot.
Right, OK now that I understand, and I agree that I'd be pretty surprised by that (though I confess it's never happened to me, and I've got a lot of templates). I wonder if a simpler change that involved simply making sure that the out
variable is initialized to an empty string would fix it?
from dot.
@Pointy Not really. The operands on the right are evaluated first before it's concatenated to the left...
from dot.
@bwoebi yes I've been playing with it and I see what you mean; any time that numbers are involved things can get weird.
from dot.
Oh yes, I see this can happen if numbers are somewhere in the middle of the template.
I made changes in the dev branch for this, please take a look and try it out.
I'll merge the changes into master after a couple of days if all looks good.
from dot.
Addressed in version 1.0.3, closing
from dot.
Related Issues (20)
- Code execution after prototype pollution HOT 15
- Documentation HOT 2
- landing page broken HOT 1
- isomorphic doT import with out fs dependency HOT 2
- selfcontained set to false does change the output code as the encodeHtml function is still written out. HOT 1
- I want to display pricing based on cookies.. in doT.js template HOT 2
- Template compiling error
- add ability to have formatting pipe, {{=it.now|formatDate}} HOT 2
- Gorilla fix
- Pass parameter to snippet HOT 1
- V2 types not resolving? HOT 1
- control instructions should not be counted as white space HOT 2
- No lock file found in the dot project on Tag: v2.0.0-beta.1
- add process() to v2
- how to pass evaluated value of dot object field into function? HOT 1
- Using single curly braces as delimiters doesn't work HOT 1
- Doc link from readme not working anymore HOT 3
- vulnerable undefined property lookup that escalating prototype pollution to remote code execution HOT 1
- Logs
- in this library, there is a 'Code Injection to RCE' vuln
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from dot.