jsgui3-server 0.0.121 → 0.0.123
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.vscode/settings.json +6 -0
- package/README.md +10 -10
- package/controls/Active_HTML_Document.js +116 -116
- package/controls/README.md +7 -7
- package/controls/page/admin.js +74 -74
- package/controls/panel/admin.js +11 -11
- package/examples/_css/basic.css +913 -913
- package/examples/_css/database-control.css +51 -51
- package/examples/_css/jsgui.css +66 -66
- package/examples/_css/multi-layout.css +23 -23
- package/examples/_css/style.css +1669 -1669
- package/examples/_css/top-and-bottom-bars.css +54 -54
- package/examples/box/1) square box/client.js +188 -188
- package/examples/box/1) square box/server.js +112 -112
- package/examples/box/2) twenty square boxes/css flex wrap/client.js +112 -248
- package/examples/box/2) twenty square boxes/css flex wrap/server.js +39 -112
- package/examples/box/3) twenty selectable square boxes/css flex wrap/client.js +129 -0
- package/examples/{controls/15) window, text field → box/3) twenty selectable square boxes/css flex wrap}/server.js +38 -38
- package/examples/boxes/square_boxes.js +45 -48
- package/examples/boxes/square_boxes_client.js +132 -136
- package/examples/client-side-popup-menu-button.html +93 -93
- package/examples/color_palette.js +51 -51
- package/examples/color_palette_client.js +95 -95
- package/examples/controls/1) window/client.js +186 -186
- package/examples/controls/1) window/server.js +117 -117
- package/examples/controls/10) window, mirrored text inputs/client.js +118 -320
- package/examples/controls/10) window, mirrored text inputs/server.js +37 -117
- package/examples/controls/11) window, mirrored text fields/client.js +493 -251
- package/examples/controls/11) window, mirrored text fields/server.js +117 -117
- package/examples/controls/11b) window, shared Data_Object model mirrored text fields/client.js +613 -331
- package/examples/controls/11b) window, shared Data_Object model mirrored text fields/server.js +117 -117
- package/examples/controls/11c) window, shared Data_Value model mirrored text fields/client.js +617 -617
- package/examples/controls/11c) window, shared Data_Value model mirrored text fields/server.js +117 -117
- package/examples/controls/11d) window, shared model mirrored integer text fields/client.js +611 -280
- package/examples/controls/11d) window, shared model mirrored integer text fields/server.js +134 -22
- package/examples/controls/12) window, Select_Options control/client.js +66 -452
- package/examples/controls/12) window, Select_Options control/server.js +19 -117
- package/examples/controls/13) window, Dropdown_Menu control/client.js +66 -0
- package/examples/controls/13) window, Dropdown_Menu control/server.js +20 -0
- package/examples/controls/2) two windows/client.js +193 -193
- package/examples/controls/2) two windows/server.js +113 -113
- package/examples/controls/3) five windows/client.js +217 -217
- package/examples/controls/3) five windows/server.js +116 -115
- package/examples/controls/4) window, tabbed panel/client.js +54 -225
- package/examples/controls/4) window, tabbed panel/server.js +17 -117
- package/examples/controls/5) window, grid/client.js +204 -484
- package/examples/controls/5) window, grid/server.js +117 -119
- package/examples/controls/6) window, color_palette/client.js +68 -204
- package/examples/controls/6) window, color_palette/server.js +117 -117
- package/examples/controls/7) window, month_view/client.js +40 -231
- package/examples/controls/7) window, month_view/server.js +117 -117
- package/examples/controls/8) window, checkbox/client.js +33 -209
- package/examples/controls/8) window, checkbox/server.js +117 -117
- package/examples/controls/9) window, date picker/client.js +76 -303
- package/examples/controls/9) window, date picker/server.js +117 -117
- package/examples/controls/9b) window, shared data.model mirrored date pickers/README.md +51 -0
- package/examples/controls/9b) window, shared data.model mirrored date pickers/client.js +83 -398
- package/examples/controls/9b) window, shared data.model mirrored date pickers/server.js +117 -117
- package/examples/controls/__old/_html-server-color-palette.js +114 -114
- package/examples/controls/__old/html-server-combo-box.js +104 -104
- package/examples/controls/__old/html-server-list.js +98 -98
- package/examples/controls/__old/html-server-popup-menu-button.js +114 -114
- package/examples/controls/__old/html-server-start-stop-toggle-button.js +146 -146
- package/examples/controls/__old/scs-arrow-button.js +36 -36
- package/examples/controls/__old/scs-date-picker.js +157 -157
- package/examples/controls/__old/scs-file-browser.js +82 -82
- package/examples/controls/__old/scs-item.js +159 -159
- package/examples/controls/__old/scs-month-arrow-selector.js +126 -126
- package/examples/controls/__old/scs-month-view.js +94 -94
- package/examples/controls/__old/scs-start-stop-toggle-button.js +40 -40
- package/examples/controls/__old/scs-tree.js +49 -49
- package/examples/controls/__old/scs-year-arrow-selector.js +127 -127
- package/examples/demos/date-picker.js +119 -119
- package/examples/demos/explain-encapsulation.js +9 -9
- package/examples/demos/resizing.js +35 -35
- package/examples/demos/server_time.js +6 -6
- package/examples/grids/grid_1.js +45 -45
- package/examples/grids/grid_1_client.js +329 -329
- package/examples/html-rendering.js +20 -20
- package/examples/html-server.js +105 -105
- package/examples/introducing jsgui3/server.js +110 -110
- package/examples/mx_display/mx_display_1.js +45 -45
- package/examples/mx_display/mx_display_1_client.js +444 -444
- package/fs2.js +1836 -1836
- package/http/responders/HTTP_Responder.js +15 -15
- package/http/responders/static/Static_Route_HTTP_Responder.js +105 -105
- package/module.js +34 -34
- package/old/_single-control-server.js +418 -418
- package/old/single-control-server.js +368 -368
- package/old/single-page-app.js +131 -131
- package/package.json +42 -42
- package/page-context.js +92 -92
- package/publishers/helpers/assigners/Assigner.js +10 -10
- package/publishers/helpers/assigners/static-compressed-response-buffers/Single_Control_Webpage_Server_Static_Compressed_Response_Buffers_Assigner.js +150 -150
- package/publishers/helpers/assigners/static-headers/Single_Control_Webpage_Server_Static_Headers_Assigner.js +109 -109
- package/publishers/helpers/assigners/static-routes/Single_Control_Webpage_Server_Static_Routes_Assigner.js +91 -91
- package/publishers/helpers/assigners/static-uncompressed-response-buffers/Single_Control_Webpage_Server_Static_Uncompressed_Response_Buffers_Assigner.js +104 -104
- package/publishers/helpers/preparers/static/bundle/Ready_To_Serve_Preparer.js +18 -18
- package/publishers/helpers/preparers/static/bundle/Static_Routes_Responses_Webpage_Bundle_Preparer.js +44 -44
- package/publishers/http-function-publisher.js +212 -212
- package/publishers/http-html-page-publisher.js +5 -5
- package/publishers/http-html-publisher.js +24 -24
- package/publishers/http-js-publisher.js +135 -135
- package/publishers/http-observable-publisher.js +124 -124
- package/publishers/http-publisher.js +53 -53
- package/publishers/http-resource-publisher.js +325 -325
- package/publishers/http-webpage-publisher.js +659 -658
- package/publishers/http-webpageorsite-publisher.js +343 -343
- package/publishers/http-website-publisher.js +640 -640
- package/publishers/notes.md +9 -9
- package/resources/README.md +16 -16
- package/resources/_old_website-javascript-resource.js +994 -994
- package/resources/_old_website-resource.js +507 -507
- package/resources/compile/server-resource-compilation.js +43 -43
- package/resources/data-resource.js +118 -118
- package/resources/fs-resource.js +146 -146
- package/resources/jsbuilder/Abstract_Single_Declaration.js +105 -105
- package/resources/jsbuilder/Abstract_Single_Declaration_Sequence.js +42 -42
- package/resources/jsbuilder/JS_AST/JS_AST_Abstract_Node.js +61 -61
- package/resources/jsbuilder/JS_AST/JS_AST_Abstract_Node_Group.js +41 -41
- package/resources/jsbuilder/JS_AST/JS_AST_Group_Shared.js +61 -61
- package/resources/jsbuilder/JS_AST/JS_AST_Node.js +93 -93
- package/resources/jsbuilder/JS_AST/JS_AST_Node_0-Core.js +253 -253
- package/resources/jsbuilder/JS_AST/JS_AST_Node_1-Babel.js +337 -337
- package/resources/jsbuilder/JS_AST/JS_AST_Node_10-Changing.js +39 -39
- package/resources/jsbuilder/JS_AST/JS_AST_Node_2.1.1-Child.js +96 -96
- package/resources/jsbuilder/JS_AST/JS_AST_Node_2.1.2-Parent.js +37 -37
- package/resources/jsbuilder/JS_AST/JS_AST_Node_2.1.3-Ancestor.js +61 -61
- package/resources/jsbuilder/JS_AST/JS_AST_Node_2.2-Inner.js +43 -43
- package/resources/jsbuilder/JS_AST/JS_AST_Node_2.3-All.js +72 -72
- package/resources/jsbuilder/JS_AST/JS_AST_Node_2.4-Sibling.js +92 -92
- package/resources/jsbuilder/JS_AST/JS_AST_Node_2.5-Available_In_Scope.js +29 -29
- package/resources/jsbuilder/JS_AST/JS_AST_Node_2.9-Signature.js +116 -116
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3-Basics.js +159 -159
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3.0.0-Basics_First.js +178 -178
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3.0.1-Basics_Second.js +87 -87
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3.0.99-Basics_Last.js +91 -91
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3.1-Basics_Each.js +136 -136
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3.1.5-Basics_Count.js +73 -73
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3.2-Basics_Filter.js +39 -39
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3.3-Basics_Collect.js +85 -85
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3.4-Basics_Select.js +42 -42
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3.5-Basics_Find.js +40 -40
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3.6-Basics_Callmap.js +54 -54
- package/resources/jsbuilder/JS_AST/JS_AST_Node_4.0-Index_Indexes.js +45 -45
- package/resources/jsbuilder/JS_AST/JS_AST_Node_4.1-Index.js +343 -343
- package/resources/jsbuilder/JS_AST/JS_AST_Node_5.0-Category.js +38 -38
- package/resources/jsbuilder/JS_AST/JS_AST_Node_5.1-Category_Identifier.js +30 -30
- package/resources/jsbuilder/JS_AST/JS_AST_Node_5.2-Category_Literal.js +28 -28
- package/resources/jsbuilder/JS_AST/JS_AST_Node_5.3-Category_Expression.js +26 -26
- package/resources/jsbuilder/JS_AST/JS_AST_Node_5.4-Category_Pattern.js +8 -8
- package/resources/jsbuilder/JS_AST/JS_AST_Node_5.5-Category_Declaration.js +43 -43
- package/resources/jsbuilder/JS_AST/JS_AST_Node_5.6-Category_Statement.js +21 -21
- package/resources/jsbuilder/JS_AST/JS_AST_Node_6.0-Type.js +89 -89
- package/resources/jsbuilder/JS_AST/JS_AST_Node_6.1-Type_Class_Declaration.js +8 -8
- package/resources/jsbuilder/JS_AST/JS_AST_Node_6.2-Type_Variable_Declaration.js +27 -27
- package/resources/jsbuilder/JS_AST/JS_AST_Node_6.3-Type_Variable_Declarator.js +28 -28
- package/resources/jsbuilder/JS_AST/JS_AST_Node_7-Query.js +736 -736
- package/resources/jsbuilder/JS_AST/JS_AST_Node_8-Features.js +64 -64
- package/resources/jsbuilder/JS_AST/JS_AST_Node_9-Planning.js +31 -31
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Arrangement.js +15 -15
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Node_Declared_Object.js +305 -305
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Node_Feature.js +77 -77
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Node_Feature_Declaration.js +248 -248
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Node_Feature_Declarator.js +138 -138
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Root_Node_Feature/JS_AST_Root_Node_Feature.js +10 -10
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Root_Node_Feature/JS_AST_Root_Node_Feature_Exported.js +100 -100
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Root_Node_Feature/JS_AST_Root_Node_Feature_Exports.js +60 -60
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Root_Node_Feature/JS_AST_Root_Node_Interpreted.js +179 -179
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Root_Node_Feature/_JSGUI_Root_Node_Interpreted.js +43 -43
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Root_Node_Feature/special_case_objectassign_to_object.js +12 -12
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Group.js +35 -35
- package/resources/jsbuilder/JS_AST/JS_AST_Operation.js +11 -11
- package/resources/jsbuilder/JS_AST/JS_AST_Operation_On_Relationship.js +31 -31
- package/resources/jsbuilder/JS_AST/JS_AST_Ordered_Relationship_Node_To_Group.js +37 -37
- package/resources/jsbuilder/JS_AST/JS_AST_Ordinal.js +39 -39
- package/resources/jsbuilder/JS_AST/JS_AST_Ordinal_Relationship.js +25 -25
- package/resources/jsbuilder/JS_AST/JS_AST_Relationship_Node_To_Group.js +200 -200
- package/resources/jsbuilder/JS_AST/JS_AST_Relationship_Node_Within_Group_To_Node.js +43 -43
- package/resources/jsbuilder/JS_AST/_JS_AST_Node_3.8-Query_Features.js +76 -76
- package/resources/jsbuilder/JS_AST/query/enable_array_as_queryable.js +227 -227
- package/resources/jsbuilder/JS_AST/query/find_object_keys.js +404 -404
- package/resources/jsbuilder/JS_AST/query/node_queries.js +8 -8
- package/resources/jsbuilder/JS_AST/query/root_query_identidy.js +11 -11
- package/resources/jsbuilder/JS_AST_Node_Extended/JSGUI_Singular_Declaration.js +85 -85
- package/resources/jsbuilder/JS_AST_Node_Extended/JS_AST_Node_Declaration.js +123 -123
- package/resources/jsbuilder/JS_AST_Node_Extended/JS_AST_Node_Extended.js +87 -87
- package/resources/jsbuilder/JS_AST_Node_Extended/JS_AST_Node_Extended_0-Core.js +10 -10
- package/resources/jsbuilder/JS_Builder.js +10 -10
- package/resources/jsbuilder/JS_File/Feature/JS_File_Declared_Object.js +31 -31
- package/resources/jsbuilder/JS_File/Feature/JS_File_Exported_Object_Info.js +25 -25
- package/resources/jsbuilder/JS_File/Feature/JS_File_Exports.js +78 -78
- package/resources/jsbuilder/JS_File/Feature/JS_File_Feature.js +17 -17
- package/resources/jsbuilder/JS_File/Feature/JS_File_Imported_Object_Info.js +25 -25
- package/resources/jsbuilder/JS_File/Feature/JS_File_Imports.js +8 -8
- package/resources/jsbuilder/JS_File/JS_File.js +12 -12
- package/resources/jsbuilder/JS_File/JS_File_0-Core.js +202 -202
- package/resources/jsbuilder/JS_File/JS_File_1-Early_Parse.js +175 -175
- package/resources/jsbuilder/JS_File/JS_File_2-Babel.js +81 -81
- package/resources/jsbuilder/JS_File/JS_File_3-JS_AST_Node.js +86 -86
- package/resources/jsbuilder/JS_File/JS_File_4-Query.js +413 -413
- package/resources/jsbuilder/JS_File/JS_File_4.1-Query_Features.js +414 -414
- package/resources/jsbuilder/JS_File/JS_File_5-Planning.js +59 -59
- package/resources/jsbuilder/JS_File/JS_File_6-Changing.js +24 -24
- package/resources/jsbuilder/JS_File/JS_File_Export_Reference.js +12 -12
- package/resources/jsbuilder/JS_File/JS_File_Import_Reference.js +23 -23
- package/resources/jsbuilder/JS_File/JS_File_Import_References.js +31 -31
- package/resources/jsbuilder/JS_File/JS_File_Processor.js +16 -16
- package/resources/jsbuilder/JS_File/JS_Files.js +15 -15
- package/resources/jsbuilder/Module.js +14 -14
- package/resources/jsbuilder/Platform.js +13 -13
- package/resources/jsbuilder/Platforms.js +69 -69
- package/resources/jsbuilder/Project.js +109 -109
- package/resources/jsbuilder/Reference.js +1 -1
- package/resources/jsbuilder/Reference_Sequence.js +16 -16
- package/resources/jsbuilder/Scope.js +29 -29
- package/resources/jsbuilder/Variable_Name_Provider.js +42 -42
- package/resources/jsbuilder/_JS_File.js +225 -225
- package/resources/jsbuilder/ast_query.js +20 -20
- package/resources/jsbuilder/babel/babel_consts.js +162 -162
- package/resources/jsbuilder/babel/babel_node_tools.js +541 -541
- package/resources/jsbuilder/babel/deep_iterate/deep_iterate_babel.js +923 -904
- package/resources/jsbuilder/build.js +16 -16
- package/resources/jsbuilder/platform_notes.md +66 -66
- package/resources/jsbuilder/test/test_ast_node.js +381 -381
- package/resources/jsbuilder/test/test_js_file.js +303 -303
- package/resources/jsbuilder/test/test_project.js +157 -157
- package/resources/local-server-info-resource.js +96 -96
- package/resources/notes.txt +10 -10
- package/resources/old/website-image-resource.js +1185 -1185
- package/resources/process-js.js +498 -498
- package/resources/processors/bundlers/bundle.js +29 -29
- package/resources/processors/bundlers/bundler.js +23 -23
- package/resources/processors/bundlers/css-bundler.js +234 -234
- package/resources/processors/bundlers/js/JS_Bundler.js +51 -51
- package/resources/processors/bundlers/js/esbuild/Advanced_JS_Bundler_Using_ESBuild.js +388 -391
- package/resources/processors/bundlers/js/esbuild/Bundler_Using_ESBuild.js +8 -8
- package/resources/processors/bundlers/js/esbuild/Core_JS_Non_Minifying_Bundler_Using_ESBuild.js +188 -188
- package/resources/processors/bundlers/js/esbuild/Core_JS_Single_File_Minifying_Bundler_Using_ESBuild.js +191 -192
- package/resources/processors/bundlers/js/esbuild/_Old_CSS_Extractor.js +239 -239
- package/resources/processors/bundlers/js-bundler.js +263 -263
- package/resources/processors/bundlers/test_ast.js +73 -73
- package/resources/processors/bundlers/webpage-bundler.js +404 -404
- package/resources/processors/bundlers/website-bundler.js +22 -22
- package/resources/processors/extractors/Extractor.js +9 -11
- package/resources/processors/extractors/js/css_and_js/AST_Node/CSS_And_JS_From_JS_String_Using_AST_Node_Extractor.js +239 -254
- package/resources/processors/extractors/js/css_and_js/CSS_And_JS_From_JS_String_Extractor.js +3 -3
- package/resources/processors/extractors/string/Pos_Span_String_Extractor.js +93 -93
- package/resources/server-installed-tools.js +28 -28
- package/resources/server-resource-pool.js +41 -41
- package/resources/website-audio-resource.js +735 -735
- package/resources/website-css-resource.js +411 -411
- package/resources/website-image-resource.js +412 -412
- package/resources/website-javascript-resource-processor.js +908 -908
- package/resources/website-javascript-resource.js +874 -874
- package/resources/website-resource-processor.js +10 -10
- package/resources/website-resource.js +164 -164
- package/resources/website-static-html-resource.js +199 -199
- package/resources/website-template-html-resource.js +231 -231
- package/roadmap.md +75 -75
- package/server.js +609 -573
- package/static-page-context.js +13 -13
- package/website/webpage.js +81 -81
- package/website/website-group.js +15 -15
- package/website/website.js +260 -260
- package/examples/controls/11d) window, shared model mirrored integer text fields/both.js +0 -17
- package/examples/controls/13) window, shared model mirrored lat_long/client.js +0 -933
- package/examples/controls/13) window, shared model mirrored lat_long/server.js +0 -50
- package/examples/controls/14) window, control compositional model/client.js +0 -328
- package/examples/controls/14) window, control compositional model/server.js +0 -118
- package/examples/controls/14a) window, control spec has compositional model/client.js +0 -440
- package/examples/controls/14a) window, control spec has compositional model/server.js +0 -118
- package/examples/controls/15) window, text field/client.js +0 -256
- package/examples/controls/16) Window([Text_Input])/client.js +0 -266
- package/examples/controls/16) Window([Text_Input])/server.js +0 -109
- package/examples/controls/16a) Window([Text_Input]) Integer data.model.data_type/client.js +0 -494
- package/examples/controls/16a) Window([Text_Input]) Integer data.model.data_type/isomorphic.js +0 -24
- package/examples/controls/16a) Window([Text_Input]) Integer data.model.data_type/server.js +0 -73
- package/examples/controls/2b) two window, context menus/client.js +0 -193
- package/examples/controls/2b) two window, context menus/server.js +0 -114
- package/examples/controls/4a) window, tabbed panel with various controls inside/client.js +0 -233
- package/examples/controls/4a) window, tabbed panel with various controls inside/server.js +0 -118
|
@@ -1,306 +1,306 @@
|
|
|
1
|
-
const JS_AST_Node_Feature = require('./JS_AST_Node_Feature');
|
|
2
|
-
|
|
3
|
-
// Maybe getting this working will be best done with focused attention on separate declaration statements.
|
|
4
|
-
// Definitely want this to be a powerful abstraction, well defined in what it does.
|
|
5
|
-
|
|
6
|
-
// It will need flexibility and complexity to bridge the gap between declaration syntax in js, and what is in abstract theory a declared programmatic object, which in this
|
|
7
|
-
// case will be linked to the the ast nodes.
|
|
8
|
-
|
|
9
|
-
// The declared object abstraction will be used on a higher level still.
|
|
10
|
-
// In projects it will be used to understand what is referred to in the input to a module, as that module / file gets imported / loaded into the project.
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
class JS_AST_Node_Declared_Object extends JS_AST_Node_Feature {
|
|
18
|
-
constructor(spec = {}) {
|
|
19
|
-
|
|
20
|
-
//console.log('JS_AST_Node_Declared_Object constructor');
|
|
21
|
-
//console.log('Object.keys(spec)', Object.keys(spec));
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
spec.type = 'DeclaredObject';
|
|
25
|
-
super(spec);
|
|
26
|
-
|
|
27
|
-
const {js_ast_node, index_in_js_ast_node} = this;
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
/*
|
|
31
|
-
let js_ast_node_value;
|
|
32
|
-
|
|
33
|
-
Object.defineProperty(this, 'js_ast_node_value', {
|
|
34
|
-
get() {
|
|
35
|
-
return js_ast_node_value;
|
|
36
|
-
},
|
|
37
|
-
set(v) { js_ast_node_value = v; },
|
|
38
|
-
enumerable: true,
|
|
39
|
-
configurable: false
|
|
40
|
-
});
|
|
41
|
-
*/
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
if (js_ast_node) {
|
|
45
|
-
|
|
46
|
-
//console.log('js_ast_node', js_ast_node);
|
|
47
|
-
|
|
48
|
-
// go through it, extracting the declarators.
|
|
49
|
-
|
|
50
|
-
const have_vdr = vdr => {
|
|
51
|
-
|
|
52
|
-
if (vdr.type === 'VariableDeclarator') {
|
|
53
|
-
|
|
54
|
-
if (vdr.child_nodes.length === 2) {
|
|
55
|
-
const [id, exp_or_lit] = vdr.child_nodes;
|
|
56
|
-
if (id.type === 'Identifier') {
|
|
57
|
-
//console.log('exp_or_lit', exp_or_lit);
|
|
58
|
-
//console.log('exp_or_lit.is_literal', exp_or_lit.is_literal);
|
|
59
|
-
if (exp_or_lit.is_expression || exp_or_lit.is_literal) {
|
|
60
|
-
|
|
61
|
-
this.name = id.name;
|
|
62
|
-
this.js_ast_node_value = exp_or_lit;
|
|
63
|
-
|
|
64
|
-
//throw 'NYI';
|
|
65
|
-
} else {
|
|
66
|
-
|
|
67
|
-
if (exp_or_lit.type === 'Identifier') {
|
|
68
|
-
// it's being set by reference using another identifier.
|
|
69
|
-
|
|
70
|
-
const id2 = exp_or_lit;
|
|
71
|
-
|
|
72
|
-
this.name = id.name;
|
|
73
|
-
this.value_name = id2.name;
|
|
74
|
-
|
|
75
|
-
} else {
|
|
76
|
-
throw 'stop';
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
// It's OK if it's an identifier.
|
|
80
|
-
|
|
81
|
-
// Not so sure though.
|
|
82
|
-
//console.log('js_ast_node.source', js_ast_node.source);
|
|
83
|
-
//console.log('vdr', vdr);
|
|
84
|
-
|
|
85
|
-
//throw 'stop';
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
} else {
|
|
89
|
-
throw 'stop';
|
|
90
|
-
}
|
|
91
|
-
} else {
|
|
92
|
-
|
|
93
|
-
//console.log('vdr.child_nodes.length', vdr.child_nodes.length);
|
|
94
|
-
//console.log('vdr.child_nodes', vdr.child_nodes);
|
|
95
|
-
|
|
96
|
-
if (vdr.child_nodes.length === 1) {
|
|
97
|
-
const id = vdr.child_nodes[0];
|
|
98
|
-
if (id.type === 'Identifier') {
|
|
99
|
-
this.name = id.name;
|
|
100
|
-
} else {
|
|
101
|
-
throw 'stop';
|
|
102
|
-
}
|
|
103
|
-
} else {
|
|
104
|
-
throw 'stop';
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
//throw 'stop';
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
//const [id, ]
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
} else {
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
throw 'stop';
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
if (js_ast_node.child_nodes.length === 1) {
|
|
122
|
-
|
|
123
|
-
const vdr = js_ast_node.child_nodes[0];
|
|
124
|
-
|
|
125
|
-
if (vdr.type === 'VariableDeclarator') {
|
|
126
|
-
//console.log('vdr', vdr);
|
|
127
|
-
have_vdr(vdr);
|
|
128
|
-
} else {
|
|
129
|
-
|
|
130
|
-
if (vdr.type === 'Identifier') {
|
|
131
|
-
const id = vdr;
|
|
132
|
-
//console.log('js_ast_node.source', js_ast_node.source);
|
|
133
|
-
//console.log('id', id);
|
|
134
|
-
//console.log('id.name', id.name);
|
|
135
|
-
|
|
136
|
-
this.name = id.name;
|
|
137
|
-
|
|
138
|
-
//throw 'stop';
|
|
139
|
-
} else {
|
|
140
|
-
throw 'stop';
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
} else {
|
|
145
|
-
|
|
146
|
-
//console.log('index_in_js_ast_node', index_in_js_ast_node);
|
|
147
|
-
const vdr = js_ast_node.child_nodes[index_in_js_ast_node];
|
|
148
|
-
have_vdr(vdr);
|
|
149
|
-
|
|
150
|
-
//throw 'NYI';
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
// .object_name
|
|
154
|
-
// .referenced_node (often the object is set after the =)
|
|
155
|
-
// cases like if it is a function call result.
|
|
156
|
-
//let referenced_node;
|
|
157
|
-
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
JS_AST_Node_Declared_Object.arr_from_js_ast_node = (js_ast_node) => {
|
|
162
|
-
// An ast node can have multiple items defined within it.
|
|
163
|
-
|
|
164
|
-
// consider 'let a;' where the value does not get set.
|
|
165
|
-
// it is still declared. just does not have a value / value is undefined.
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
if (js_ast_node.type === 'ClassDeclaration') {
|
|
169
|
-
return [new JS_AST_Node_Declared_Object({
|
|
170
|
-
js_ast_node: js_ast_node
|
|
171
|
-
})];
|
|
172
|
-
} else if (js_ast_node.type === 'VariableDeclaration') {
|
|
173
|
-
//
|
|
174
|
-
|
|
175
|
-
// Can have multiple declarators.
|
|
176
|
-
// Interested in getting each of them.
|
|
177
|
-
// But the array deconstruction case? Object deconstrucion?
|
|
178
|
-
// May need to do separate work on testing ast_node features.
|
|
179
|
-
// Features are a higher level abstraction.
|
|
180
|
-
// They will need to be able to handle different syntax for the same feature.
|
|
181
|
-
|
|
182
|
-
// These declared objects will themselves be usable as units.
|
|
183
|
-
// We will have the inner ast for what it's been declared as.
|
|
184
|
-
// Ability to look up references? May be better outside of here, at least for the moment.
|
|
185
|
-
const res = [];
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
if (js_ast_node.child_nodes.length === 1) {
|
|
190
|
-
const vdr = js_ast_node.child_nodes[0];
|
|
191
|
-
if (vdr.type === 'VariableDeclarator') {
|
|
192
|
-
|
|
193
|
-
if (vdr.child_nodes.length === 2) {
|
|
194
|
-
const id = vdr.child_nodes[0];
|
|
195
|
-
if (id.type === 'Identifier') {
|
|
196
|
-
//console.log('id.name', id.name);
|
|
197
|
-
const fdec = new JS_AST_Node_Declared_Object({
|
|
198
|
-
js_ast_node: js_ast_node
|
|
199
|
-
})
|
|
200
|
-
res.push(fdec);
|
|
201
|
-
} else {
|
|
202
|
-
throw 'stop';
|
|
203
|
-
}
|
|
204
|
-
} else {
|
|
205
|
-
throw 'stop';
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
//throw 'nyi stop';
|
|
210
|
-
} else {
|
|
211
|
-
console.log('js_ast_node.child_nodes.length', js_ast_node.child_nodes.length);
|
|
212
|
-
throw 'stop';
|
|
213
|
-
}
|
|
214
|
-
} else {
|
|
215
|
-
//console.log('js_ast_node.source', js_ast_node.source);
|
|
216
|
-
let index = 0;
|
|
217
|
-
js_ast_node.each.child(vdr => {
|
|
218
|
-
if (vdr.type === 'VariableDeclarator') {
|
|
219
|
-
if (vdr.child_nodes.length === 1) {
|
|
220
|
-
// just the identifier, no value set.
|
|
221
|
-
const id = vdr.child_nodes[0];
|
|
222
|
-
if (id.type === 'Identifier') {
|
|
223
|
-
const fdec = new JS_AST_Node_Declared_Object({
|
|
224
|
-
js_ast_node: js_ast_node,
|
|
225
|
-
index_in_js_ast_node: index
|
|
226
|
-
});
|
|
227
|
-
res.push(fdec);
|
|
228
|
-
} else {
|
|
229
|
-
throw 'stop';
|
|
230
|
-
}
|
|
231
|
-
|
|
232
|
-
} else {
|
|
233
|
-
//console.log('vdr', vdr);
|
|
234
|
-
|
|
235
|
-
// a var declarator can have both the id as well as the object expression.
|
|
236
|
-
// or presumably any other expression.
|
|
237
|
-
|
|
238
|
-
if (vdr.child_nodes.length === 2) {
|
|
239
|
-
|
|
240
|
-
const [id, exp] = vdr.child_nodes;
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
if (id.type === 'Identifier') {
|
|
245
|
-
if (exp.is_expression) {
|
|
246
|
-
const fdec = new JS_AST_Node_Declared_Object({
|
|
247
|
-
js_ast_node: js_ast_node,
|
|
248
|
-
index_in_js_ast_node: index
|
|
249
|
-
});
|
|
250
|
-
res.push(fdec);
|
|
251
|
-
} else {
|
|
252
|
-
// could be an identifier.
|
|
253
|
-
// presumably could be a boolean expression too.
|
|
254
|
-
|
|
255
|
-
if (exp.type === 'Identifier') {
|
|
256
|
-
const id2 = exp;
|
|
257
|
-
const fdec = new JS_AST_Node_Declared_Object({
|
|
258
|
-
js_ast_node: js_ast_node,
|
|
259
|
-
index_in_js_ast_node: index
|
|
260
|
-
});
|
|
261
|
-
res.push(fdec);
|
|
262
|
-
} else {
|
|
263
|
-
throw 'stop';
|
|
264
|
-
}
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
}
|
|
269
|
-
|
|
270
|
-
} else {
|
|
271
|
-
throw 'stop';
|
|
272
|
-
}
|
|
273
|
-
} else {
|
|
274
|
-
throw 'stop';
|
|
275
|
-
}
|
|
276
|
-
|
|
277
|
-
//throw 'NYI';
|
|
278
|
-
}
|
|
279
|
-
|
|
280
|
-
} else {
|
|
281
|
-
throw 'stop';
|
|
282
|
-
}
|
|
283
|
-
index++;
|
|
284
|
-
})
|
|
285
|
-
|
|
286
|
-
//throw 'NYI';
|
|
287
|
-
}
|
|
288
|
-
return res;
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
//if ()
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
} else {
|
|
301
|
-
throw 'stop';
|
|
302
|
-
}
|
|
303
|
-
|
|
304
|
-
}
|
|
305
|
-
|
|
1
|
+
const JS_AST_Node_Feature = require('./JS_AST_Node_Feature');
|
|
2
|
+
|
|
3
|
+
// Maybe getting this working will be best done with focused attention on separate declaration statements.
|
|
4
|
+
// Definitely want this to be a powerful abstraction, well defined in what it does.
|
|
5
|
+
|
|
6
|
+
// It will need flexibility and complexity to bridge the gap between declaration syntax in js, and what is in abstract theory a declared programmatic object, which in this
|
|
7
|
+
// case will be linked to the the ast nodes.
|
|
8
|
+
|
|
9
|
+
// The declared object abstraction will be used on a higher level still.
|
|
10
|
+
// In projects it will be used to understand what is referred to in the input to a module, as that module / file gets imported / loaded into the project.
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class JS_AST_Node_Declared_Object extends JS_AST_Node_Feature {
|
|
18
|
+
constructor(spec = {}) {
|
|
19
|
+
|
|
20
|
+
//console.log('JS_AST_Node_Declared_Object constructor');
|
|
21
|
+
//console.log('Object.keys(spec)', Object.keys(spec));
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
spec.type = 'DeclaredObject';
|
|
25
|
+
super(spec);
|
|
26
|
+
|
|
27
|
+
const {js_ast_node, index_in_js_ast_node} = this;
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
/*
|
|
31
|
+
let js_ast_node_value;
|
|
32
|
+
|
|
33
|
+
Object.defineProperty(this, 'js_ast_node_value', {
|
|
34
|
+
get() {
|
|
35
|
+
return js_ast_node_value;
|
|
36
|
+
},
|
|
37
|
+
set(v) { js_ast_node_value = v; },
|
|
38
|
+
enumerable: true,
|
|
39
|
+
configurable: false
|
|
40
|
+
});
|
|
41
|
+
*/
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
if (js_ast_node) {
|
|
45
|
+
|
|
46
|
+
//console.log('js_ast_node', js_ast_node);
|
|
47
|
+
|
|
48
|
+
// go through it, extracting the declarators.
|
|
49
|
+
|
|
50
|
+
const have_vdr = vdr => {
|
|
51
|
+
|
|
52
|
+
if (vdr.type === 'VariableDeclarator') {
|
|
53
|
+
|
|
54
|
+
if (vdr.child_nodes.length === 2) {
|
|
55
|
+
const [id, exp_or_lit] = vdr.child_nodes;
|
|
56
|
+
if (id.type === 'Identifier') {
|
|
57
|
+
//console.log('exp_or_lit', exp_or_lit);
|
|
58
|
+
//console.log('exp_or_lit.is_literal', exp_or_lit.is_literal);
|
|
59
|
+
if (exp_or_lit.is_expression || exp_or_lit.is_literal) {
|
|
60
|
+
|
|
61
|
+
this.name = id.name;
|
|
62
|
+
this.js_ast_node_value = exp_or_lit;
|
|
63
|
+
|
|
64
|
+
//throw 'NYI';
|
|
65
|
+
} else {
|
|
66
|
+
|
|
67
|
+
if (exp_or_lit.type === 'Identifier') {
|
|
68
|
+
// it's being set by reference using another identifier.
|
|
69
|
+
|
|
70
|
+
const id2 = exp_or_lit;
|
|
71
|
+
|
|
72
|
+
this.name = id.name;
|
|
73
|
+
this.value_name = id2.name;
|
|
74
|
+
|
|
75
|
+
} else {
|
|
76
|
+
throw 'stop';
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
// It's OK if it's an identifier.
|
|
80
|
+
|
|
81
|
+
// Not so sure though.
|
|
82
|
+
//console.log('js_ast_node.source', js_ast_node.source);
|
|
83
|
+
//console.log('vdr', vdr);
|
|
84
|
+
|
|
85
|
+
//throw 'stop';
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
} else {
|
|
89
|
+
throw 'stop';
|
|
90
|
+
}
|
|
91
|
+
} else {
|
|
92
|
+
|
|
93
|
+
//console.log('vdr.child_nodes.length', vdr.child_nodes.length);
|
|
94
|
+
//console.log('vdr.child_nodes', vdr.child_nodes);
|
|
95
|
+
|
|
96
|
+
if (vdr.child_nodes.length === 1) {
|
|
97
|
+
const id = vdr.child_nodes[0];
|
|
98
|
+
if (id.type === 'Identifier') {
|
|
99
|
+
this.name = id.name;
|
|
100
|
+
} else {
|
|
101
|
+
throw 'stop';
|
|
102
|
+
}
|
|
103
|
+
} else {
|
|
104
|
+
throw 'stop';
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
//throw 'stop';
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
//const [id, ]
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
} else {
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
throw 'stop';
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
if (js_ast_node.child_nodes.length === 1) {
|
|
122
|
+
|
|
123
|
+
const vdr = js_ast_node.child_nodes[0];
|
|
124
|
+
|
|
125
|
+
if (vdr.type === 'VariableDeclarator') {
|
|
126
|
+
//console.log('vdr', vdr);
|
|
127
|
+
have_vdr(vdr);
|
|
128
|
+
} else {
|
|
129
|
+
|
|
130
|
+
if (vdr.type === 'Identifier') {
|
|
131
|
+
const id = vdr;
|
|
132
|
+
//console.log('js_ast_node.source', js_ast_node.source);
|
|
133
|
+
//console.log('id', id);
|
|
134
|
+
//console.log('id.name', id.name);
|
|
135
|
+
|
|
136
|
+
this.name = id.name;
|
|
137
|
+
|
|
138
|
+
//throw 'stop';
|
|
139
|
+
} else {
|
|
140
|
+
throw 'stop';
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
} else {
|
|
145
|
+
|
|
146
|
+
//console.log('index_in_js_ast_node', index_in_js_ast_node);
|
|
147
|
+
const vdr = js_ast_node.child_nodes[index_in_js_ast_node];
|
|
148
|
+
have_vdr(vdr);
|
|
149
|
+
|
|
150
|
+
//throw 'NYI';
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
// .object_name
|
|
154
|
+
// .referenced_node (often the object is set after the =)
|
|
155
|
+
// cases like if it is a function call result.
|
|
156
|
+
//let referenced_node;
|
|
157
|
+
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
JS_AST_Node_Declared_Object.arr_from_js_ast_node = (js_ast_node) => {
|
|
162
|
+
// An ast node can have multiple items defined within it.
|
|
163
|
+
|
|
164
|
+
// consider 'let a;' where the value does not get set.
|
|
165
|
+
// it is still declared. just does not have a value / value is undefined.
|
|
166
|
+
|
|
167
|
+
|
|
168
|
+
if (js_ast_node.type === 'ClassDeclaration') {
|
|
169
|
+
return [new JS_AST_Node_Declared_Object({
|
|
170
|
+
js_ast_node: js_ast_node
|
|
171
|
+
})];
|
|
172
|
+
} else if (js_ast_node.type === 'VariableDeclaration') {
|
|
173
|
+
//
|
|
174
|
+
|
|
175
|
+
// Can have multiple declarators.
|
|
176
|
+
// Interested in getting each of them.
|
|
177
|
+
// But the array deconstruction case? Object deconstrucion?
|
|
178
|
+
// May need to do separate work on testing ast_node features.
|
|
179
|
+
// Features are a higher level abstraction.
|
|
180
|
+
// They will need to be able to handle different syntax for the same feature.
|
|
181
|
+
|
|
182
|
+
// These declared objects will themselves be usable as units.
|
|
183
|
+
// We will have the inner ast for what it's been declared as.
|
|
184
|
+
// Ability to look up references? May be better outside of here, at least for the moment.
|
|
185
|
+
const res = [];
|
|
186
|
+
|
|
187
|
+
|
|
188
|
+
|
|
189
|
+
if (js_ast_node.child_nodes.length === 1) {
|
|
190
|
+
const vdr = js_ast_node.child_nodes[0];
|
|
191
|
+
if (vdr.type === 'VariableDeclarator') {
|
|
192
|
+
|
|
193
|
+
if (vdr.child_nodes.length === 2) {
|
|
194
|
+
const id = vdr.child_nodes[0];
|
|
195
|
+
if (id.type === 'Identifier') {
|
|
196
|
+
//console.log('id.name', id.name);
|
|
197
|
+
const fdec = new JS_AST_Node_Declared_Object({
|
|
198
|
+
js_ast_node: js_ast_node
|
|
199
|
+
})
|
|
200
|
+
res.push(fdec);
|
|
201
|
+
} else {
|
|
202
|
+
throw 'stop';
|
|
203
|
+
}
|
|
204
|
+
} else {
|
|
205
|
+
throw 'stop';
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
|
|
209
|
+
//throw 'nyi stop';
|
|
210
|
+
} else {
|
|
211
|
+
console.log('js_ast_node.child_nodes.length', js_ast_node.child_nodes.length);
|
|
212
|
+
throw 'stop';
|
|
213
|
+
}
|
|
214
|
+
} else {
|
|
215
|
+
//console.log('js_ast_node.source', js_ast_node.source);
|
|
216
|
+
let index = 0;
|
|
217
|
+
js_ast_node.each.child(vdr => {
|
|
218
|
+
if (vdr.type === 'VariableDeclarator') {
|
|
219
|
+
if (vdr.child_nodes.length === 1) {
|
|
220
|
+
// just the identifier, no value set.
|
|
221
|
+
const id = vdr.child_nodes[0];
|
|
222
|
+
if (id.type === 'Identifier') {
|
|
223
|
+
const fdec = new JS_AST_Node_Declared_Object({
|
|
224
|
+
js_ast_node: js_ast_node,
|
|
225
|
+
index_in_js_ast_node: index
|
|
226
|
+
});
|
|
227
|
+
res.push(fdec);
|
|
228
|
+
} else {
|
|
229
|
+
throw 'stop';
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
} else {
|
|
233
|
+
//console.log('vdr', vdr);
|
|
234
|
+
|
|
235
|
+
// a var declarator can have both the id as well as the object expression.
|
|
236
|
+
// or presumably any other expression.
|
|
237
|
+
|
|
238
|
+
if (vdr.child_nodes.length === 2) {
|
|
239
|
+
|
|
240
|
+
const [id, exp] = vdr.child_nodes;
|
|
241
|
+
|
|
242
|
+
|
|
243
|
+
|
|
244
|
+
if (id.type === 'Identifier') {
|
|
245
|
+
if (exp.is_expression) {
|
|
246
|
+
const fdec = new JS_AST_Node_Declared_Object({
|
|
247
|
+
js_ast_node: js_ast_node,
|
|
248
|
+
index_in_js_ast_node: index
|
|
249
|
+
});
|
|
250
|
+
res.push(fdec);
|
|
251
|
+
} else {
|
|
252
|
+
// could be an identifier.
|
|
253
|
+
// presumably could be a boolean expression too.
|
|
254
|
+
|
|
255
|
+
if (exp.type === 'Identifier') {
|
|
256
|
+
const id2 = exp;
|
|
257
|
+
const fdec = new JS_AST_Node_Declared_Object({
|
|
258
|
+
js_ast_node: js_ast_node,
|
|
259
|
+
index_in_js_ast_node: index
|
|
260
|
+
});
|
|
261
|
+
res.push(fdec);
|
|
262
|
+
} else {
|
|
263
|
+
throw 'stop';
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
|
|
267
|
+
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
} else {
|
|
271
|
+
throw 'stop';
|
|
272
|
+
}
|
|
273
|
+
} else {
|
|
274
|
+
throw 'stop';
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
//throw 'NYI';
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
} else {
|
|
281
|
+
throw 'stop';
|
|
282
|
+
}
|
|
283
|
+
index++;
|
|
284
|
+
})
|
|
285
|
+
|
|
286
|
+
//throw 'NYI';
|
|
287
|
+
}
|
|
288
|
+
return res;
|
|
289
|
+
|
|
290
|
+
|
|
291
|
+
|
|
292
|
+
|
|
293
|
+
|
|
294
|
+
|
|
295
|
+
//if ()
|
|
296
|
+
|
|
297
|
+
|
|
298
|
+
|
|
299
|
+
|
|
300
|
+
} else {
|
|
301
|
+
throw 'stop';
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
}
|
|
305
|
+
|
|
306
306
|
module.exports = JS_AST_Node_Declared_Object;
|