I apologize for posting a duplicate-looking question, (I know, that there is a bunch of similar titled questions here), but none of the questions already present seems to suit my case.
In short, what does the colon do here:
<script>
'use strict';
foo: 1;
//whatever else
</script>
I supposed this to be a syntax error, but it's not. And it's not a label, I think, since adding a line break foo;
throws Uncaught SyntaxError: Undefined label 'foo'
(though a doc page suggests exactly this, that it's a label).
I suppose this is some recent addition to the JavaScript syntax, since I have never heard of such use of the colon.
If anyone wonders, why I'm asking this, this is my explanation: I was reading an MDN doc page and there is an example:
var func = () => { foo: 1 };
// Calling func() returns undefined!
It shows, that the curly braces in this case are treated as block delimiters and not an object literal. So I supposed, that somehow foo: 1
on its own must be syntactically legal. And indeed it is.
There is a question, which is supposed to cover every use of the colon in JavaScript, but it doesn't mention this, and no answer there does this either.