-
• #2
Just to clarify this:
Espruino isn't 100% of any JavaScript spec (for instance no Regular Expressions at the moment), but it's pretty much ES5, with some ES6 features (arrow functions, template strings, binary literals, forEach/etc on ArrayBuffers) where it makes sense.
Functionality gets added all the time though - see http://www.espruino.com/Features for an up to date list
-
• #4
No, afraid not. I've tweaked the Espruino IDE linter a little, but it's not 100%.
Also some devices like ESP8266 cut out features like arrow functions to save some flash memory I believe.
-
• #6
Do arrow functions save more memory than normal functions?
Yes and no - they use less characters so that's less bytes for the actual code. However when they're defined they often use 2 more variables since they have to store
this
for each function.If you're using the
pretokenise
flag then thefunction
keyword gets squished down so a lot of that benefit disappears.The actual memory used should be the same on all platforms though.
-
• #7
this pretokenise flag is still effective just for code in RAM,right? Recently there appeared some beta flag "Pretokenise code before upload (BETA)" in web IDE - minification section. I tried it but it doesn't look like it did change anything to code size stored in flash. Is it supposed to work with flash memory? Couldn't espruino pretokenize the file while saving it into storage .bootcde file? if I processed the file on the device and replaced just all occurrences of 'function' or 'this' (which may be the longest and most frequent ones) by correct byte token would it work including the rest of file which is not tokenised?
-
• #8
this pretokenise flag is still effective just for code in RAM,right?
The flag itself is, yes.
However the
Pretokenise code before upload (BETA)
option in the IDE should pretokenise the code in the IDE.I just looked into this and annoyingly it does it only when uploading to RAM, which kind of defies the point. The issue was just to do with the ordering of the various transforms that are applied to the code and I've now fixed it, but right now it's only live on
espruino.com/ide
(you'll have to ensure you refresh the page to pick the change up)
Hello, I did not find any reliable information on the website. Which ECMAScript Version is interpreted by Espruino? Is it ECMAScript 6 (also known as ECMAScript 2015) or a newer version?