Comments (9)
This bug is invalid.
An ExpressionStatement must not begin with either '{' or 'function ' because that would make it ambiguous with a Block or a FunctionDeclaration, respectively. Thus, {a : "b" } is not a valid Program.
from jshint.
To clarify further, expression in JavaScript can't start with {
so whenever JSHint sees that it switches to JSON mode. And in JSON, all keys must be strings. So, if you'll try: { "a": "b" }
the check will pass.
from jshint.
expression in JavaScript can't start with {
why does javascript:{a:"b"}; not present me same error message?
from jshint.
you can also try this html in your browser of choise:
<script>{a:alert("orly");}</script>from jshint.
(github ate my script tags)
from jshint.
I'd assume they either eval it or run it in a closure with assumed return? I am not sure though. Does anybody actually use this in real-world projects? Does it work in all browsers?
from jshint.
I assume lots of people use it in var foo = { ... } kind of statements, but there's nothing to prevent you from using it without "var foo = " part; just like you could write 2 + 3; and it'd still be valid script.
from jshint.
The switching between JSON and ECMAScript happens automatically, I see.
Have you considered having this be explicit choice? The potential problem is when the user enters what he believes is JSON but in actuality it is not, but it is valid Ecmascript. For example:
[ { a : "b" } ]
Not valid JSON but valid Ecmascript.
from jshint.
GarrettS, I agree. This switching was a part of JSLint, I am looking into making it explicit.
from jshint.
Related Issues (20)
- Getting errors while adding as dev-dependancy HOT 1
- JSHint doesn't recognize bitwise operators like & | >> etc... HOT 2
- is there any kind of way to get the console log outputs using this tool? HOT 1
- can i customize the error messages generated by JSHINT? is there any locale files i can override? HOT 1
- Not work in VS Code's Terminal HOT 1
- 'fetch' is not defined. (W117) - Although it is a base feature of Node 18 (although experimental) HOT 3
- Error: JSHINT is not defined HOT 2
- False error on static property HOT 1
- W080 incorrect message for initializing const with undefined HOT 2
- jshint doesn't expect regexp literals in one-liners following if/while/for conditions, and also else HOT 3
- `jshint` breaks on experimental feature `import * as file_json from 'file.json' assert { 'type': 'json' };` HOT 11
- JShint in VScode HOT 1
- If variable is assigned but never used it should cause warning HOT 1
- esversion beyond 11 HOT 2
- Generate error on specific object properties HOT 1
- jshint 2.13.6 is not warning me about mixing tabs and spaces HOT 1
- No warnings about undefined variable when doing typeof yyy
- VSCode HOT 1
- Jshint doest trigger hint when access non exist property of an object HOT 1
- "Invalid regular expression" when /s flag is used on long RegExps
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 jshint.