Please use the Apache issue tracking system for new NetBeans issues ( !!

Bug 258679

Summary: Support modules in Js
Product: javascript Reporter: Petr Pisl <ppisl>
Component: EditorAssignee: Petr Pisl <ppisl>
Status: RESOLVED FIXED QA Contact: issues <>
Priority: P1 CC: dusty
Version: 8.2   
Target Milestone: 8.2   
Hardware: PC   
OS: Linux   
Whiteboard: ecma6
Issue Type: TASK Exception Report:
Bug Depends on:    
Bug Blocks: 242387    
Attachments: Go To Imported File

Description Petr Pisl 2016-04-06 10:59:44 UTC
ECMA 6 Script brings possibility write modules in JavaScript. NetBeans has to support writing modules. Mainly import expression:

and export expression:

NetBeans has to handle imports in the right way (creating variables in the model, mark occurrences, code completion, coloring etc.). The bulk of these things has to be done for export as well.
Comment 1 Petr Pisl 2016-04-06 11:04:42 UTC
This task depends on the changes in the parser. Currently grall parser doesn't handle import and export expressions in the sufficient way. Needs to be changed there.
Comment 2 Petr Pisl 2016-04-11 12:35:01 UTC
Created attachment 159207 [details]
Go To Imported File

User can use CTRL+click funtinality to navigate into the imported file. When the mouse cursor is over the imported file string and user press down CTRL, then the string is changed to the link. And when a user click on the link and NetBeans are able to find such imported file, then the file is opened.
Comment 3 Petr Hejl 2016-06-15 08:15:07 UTC
Petre, could this be closed as resolved?
Comment 4 dusty 2016-06-15 10:18:20 UTC
I just tested build #2276 and there are still problems with modules.

This code gives error on the second line:

import {LooseParser} from "./state"
import {isDummy} from "./parseutil"

While the error goes away if I add a semicolon on the end of the first line, but semicolons are optional in ES6
Comment 5 dusty 2016-06-15 10:19:20 UTC
(That was an excerpt of the file "expression.js" inside the "acorn" package)
Comment 6 Petr Pisl 2016-06-15 16:06:01 UTC
IMHO according the specification , there has to be the semicolon in import and export expressions. 

To PetrH.: Yes, this task can be close, if something doesn't work, new defect should be created.
Comment 7 dusty 2016-06-15 18:51:38 UTC
according to the specs, there are rules for "Automatic Semicolon Insertion".
Citing from 

Certain ECMAScript statements (empty statement, let, const, import, and export declarations, variable statement, expression statement, debugger statement, continue statement, break statement, return statement, and throw statement) must be terminated with semicolons. Such semicolons may always appear explicitly in the source text. For convenience, however, such semicolons may be omitted from the source text in certain situations. These situations are described by saying that semicolons are automatically inserted into the source code token stream in those situations

When, as a Script or Module is parsed from left to right, a token (called the offending token) is encountered that is not allowed by any production of the grammar, then a semicolon is automatically inserted before the offending token if one or more of the following conditions is true:

    The offending token is separated from the previous token by at least one LineTerminator.

And I think this is the case I reported above (the statements are separated from one LineTerminator).
Comment 8 dusty 2016-06-15 18:53:02 UTC
I reopened this bug, but maybe you prefer me to create another one about the automatic semicolon insertion?
Comment 9 Petr Pisl 2016-06-15 19:17:50 UTC
It looks like you convinced me. I will try to discuss this with parser group. And you are right, this should be treated as defect and separated from this task. Thanks
Comment 10 dusty 2016-06-15 19:24:30 UTC
Done, thanks!
By use of this website, you agree to the NetBeans Policies and Terms of Use. © 2014, Oracle Corporation and/or its affiliates. Sponsored by Oracle logo