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,78 +1,78 @@
|
|
|
1
|
-
class JS_AST_Node_Feature {
|
|
2
|
-
|
|
3
|
-
// Feature_Declaration subclass too?
|
|
4
|
-
//
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
constructor(spec = {}) {
|
|
8
|
-
//let name, type;
|
|
9
|
-
|
|
10
|
-
let node, value_name;
|
|
11
|
-
|
|
12
|
-
if (spec.name) {
|
|
13
|
-
name = spec.name;
|
|
14
|
-
}
|
|
15
|
-
//if (spec.type) {
|
|
16
|
-
// type = spec.type;
|
|
17
|
-
//}
|
|
18
|
-
|
|
19
|
-
if (spec.js_ast_node) { //check / confirm type?
|
|
20
|
-
node = spec.js_ast_node;
|
|
21
|
-
} else if (spec.node) { //check / confirm type?
|
|
22
|
-
node = spec.node;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
/*
|
|
26
|
-
if (spec.index_in_js_ast_node !== undefined) {
|
|
27
|
-
index_in_node = spec.index_in_js_ast_node;
|
|
28
|
-
} else if (spec.index_in_node !== undefined) {
|
|
29
|
-
index_in_node = spec.index_in_node;
|
|
30
|
-
}
|
|
31
|
-
*/
|
|
32
|
-
|
|
33
|
-
/*
|
|
34
|
-
Object.defineProperty(this, 'name', {
|
|
35
|
-
get() {
|
|
36
|
-
return name;
|
|
37
|
-
},
|
|
38
|
-
set(v) { name = v; },
|
|
39
|
-
enumerable: true,
|
|
40
|
-
configurable: false
|
|
41
|
-
});
|
|
42
|
-
*/
|
|
43
|
-
|
|
44
|
-
/*
|
|
45
|
-
Object.defineProperty(this, 'value_name', {
|
|
46
|
-
get() {
|
|
47
|
-
return value_name;
|
|
48
|
-
},
|
|
49
|
-
set(v) { value_name = v; },
|
|
50
|
-
enumerable: true,
|
|
51
|
-
configurable: false
|
|
52
|
-
});
|
|
53
|
-
*/
|
|
54
|
-
Object.defineProperty(this, 'node', {
|
|
55
|
-
get() {
|
|
56
|
-
return node;
|
|
57
|
-
},
|
|
58
|
-
//set(newValue) { bValue = newValue; },
|
|
59
|
-
enumerable: true,
|
|
60
|
-
configurable: false
|
|
61
|
-
});
|
|
62
|
-
|
|
63
|
-
// Maybe don't need this, with improved sibling and index property in the node itself.
|
|
64
|
-
|
|
65
|
-
/*
|
|
66
|
-
Object.defineProperty(this, 'index_in_node', {
|
|
67
|
-
get() {
|
|
68
|
-
return index_in_js_ast_node;
|
|
69
|
-
},
|
|
70
|
-
set(v) { index_in_js_ast_node = v; },
|
|
71
|
-
//set(newValue) { bValue = newValue; },
|
|
72
|
-
enumerable: true,
|
|
73
|
-
configurable: false
|
|
74
|
-
});
|
|
75
|
-
*/
|
|
76
|
-
}
|
|
77
|
-
}
|
|
1
|
+
class JS_AST_Node_Feature {
|
|
2
|
+
|
|
3
|
+
// Feature_Declaration subclass too?
|
|
4
|
+
//
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
constructor(spec = {}) {
|
|
8
|
+
//let name, type;
|
|
9
|
+
|
|
10
|
+
let node, value_name;
|
|
11
|
+
|
|
12
|
+
if (spec.name) {
|
|
13
|
+
name = spec.name;
|
|
14
|
+
}
|
|
15
|
+
//if (spec.type) {
|
|
16
|
+
// type = spec.type;
|
|
17
|
+
//}
|
|
18
|
+
|
|
19
|
+
if (spec.js_ast_node) { //check / confirm type?
|
|
20
|
+
node = spec.js_ast_node;
|
|
21
|
+
} else if (spec.node) { //check / confirm type?
|
|
22
|
+
node = spec.node;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/*
|
|
26
|
+
if (spec.index_in_js_ast_node !== undefined) {
|
|
27
|
+
index_in_node = spec.index_in_js_ast_node;
|
|
28
|
+
} else if (spec.index_in_node !== undefined) {
|
|
29
|
+
index_in_node = spec.index_in_node;
|
|
30
|
+
}
|
|
31
|
+
*/
|
|
32
|
+
|
|
33
|
+
/*
|
|
34
|
+
Object.defineProperty(this, 'name', {
|
|
35
|
+
get() {
|
|
36
|
+
return name;
|
|
37
|
+
},
|
|
38
|
+
set(v) { name = v; },
|
|
39
|
+
enumerable: true,
|
|
40
|
+
configurable: false
|
|
41
|
+
});
|
|
42
|
+
*/
|
|
43
|
+
|
|
44
|
+
/*
|
|
45
|
+
Object.defineProperty(this, 'value_name', {
|
|
46
|
+
get() {
|
|
47
|
+
return value_name;
|
|
48
|
+
},
|
|
49
|
+
set(v) { value_name = v; },
|
|
50
|
+
enumerable: true,
|
|
51
|
+
configurable: false
|
|
52
|
+
});
|
|
53
|
+
*/
|
|
54
|
+
Object.defineProperty(this, 'node', {
|
|
55
|
+
get() {
|
|
56
|
+
return node;
|
|
57
|
+
},
|
|
58
|
+
//set(newValue) { bValue = newValue; },
|
|
59
|
+
enumerable: true,
|
|
60
|
+
configurable: false
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
// Maybe don't need this, with improved sibling and index property in the node itself.
|
|
64
|
+
|
|
65
|
+
/*
|
|
66
|
+
Object.defineProperty(this, 'index_in_node', {
|
|
67
|
+
get() {
|
|
68
|
+
return index_in_js_ast_node;
|
|
69
|
+
},
|
|
70
|
+
set(v) { index_in_js_ast_node = v; },
|
|
71
|
+
//set(newValue) { bValue = newValue; },
|
|
72
|
+
enumerable: true,
|
|
73
|
+
configurable: false
|
|
74
|
+
});
|
|
75
|
+
*/
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
78
|
module.exports = JS_AST_Node_Feature;
|
|
@@ -1,249 +1,249 @@
|
|
|
1
|
-
// When a declaration is treated as a feature, there is programming less specifically for it being a node.
|
|
2
|
-
|
|
3
|
-
// Feature is an abstraction on top of JS_AST_Node.
|
|
4
|
-
const {each} = require('lang-tools');
|
|
5
|
-
|
|
6
|
-
const JS_AST_Node_Feature = require('./JS_AST_Node_Feature');
|
|
7
|
-
|
|
8
|
-
class JS_AST_Node_Feature_Declaration extends JS_AST_Node_Feature {
|
|
9
|
-
constructor(spec = {}) {
|
|
10
|
-
super(spec);
|
|
11
|
-
const {node} = this;
|
|
12
|
-
|
|
13
|
-
let declared_keys, assigned_values;
|
|
14
|
-
|
|
15
|
-
// Maybe should be .declared.keys?
|
|
16
|
-
|
|
17
|
-
const declared = {};
|
|
18
|
-
|
|
19
|
-
const assigned = {};
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
// and the assigned keys property.
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
// // maybe they are not assigned keys after all.
|
|
26
|
-
|
|
27
|
-
// .assigned.values
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
// a query to get the literal values???
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
Object.defineProperty(assigned, 'values', {
|
|
35
|
-
get() {
|
|
36
|
-
if (!assigned_values) {
|
|
37
|
-
assigned_values = [];
|
|
38
|
-
|
|
39
|
-
//console.log('node', node);
|
|
40
|
-
//console.log('node.source', node.source);
|
|
41
|
-
|
|
42
|
-
if (node.type === 'VariableDeclaration') {
|
|
43
|
-
|
|
44
|
-
// Need to look at all the child nodes.
|
|
45
|
-
//console.log('node.child.shared.type', node.child.shared.type);
|
|
46
|
-
|
|
47
|
-
// then go through each child declarator....
|
|
48
|
-
|
|
49
|
-
node.query.each.child.declarator.exe(cdec => {
|
|
50
|
-
console.log('');
|
|
51
|
-
console.log('cdec', cdec);
|
|
52
|
-
console.log('cdec.source', cdec.source);
|
|
53
|
-
const dec_cn_tstr = cdec.query.collect.child.node.t.exe().join('.');
|
|
54
|
-
console.log('dec_cn_tstr', dec_cn_tstr);
|
|
55
|
-
|
|
56
|
-
// Can use a signature map.
|
|
57
|
-
|
|
58
|
-
// node.query.callmap.child.declarator.signature.exe({sig1: (node) => {}, sig2: node => {}}, unmapped_node => {})
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
if (dec_cn_tstr === 'ArP.ArE') {
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
// ArrayPattern.ArrayExpression
|
|
66
|
-
const are = cdec.child_nodes[1];
|
|
67
|
-
//console.log('are', are);
|
|
68
|
-
|
|
69
|
-
// then are they literals inside?
|
|
70
|
-
|
|
71
|
-
// .find child shared category?
|
|
72
|
-
// but query needs the verb.
|
|
73
|
-
// maybe collect is the default one now.
|
|
74
|
-
//const sc = are.query.child.shared.category.exe();
|
|
75
|
-
const sc = are.child.shared.category;
|
|
76
|
-
//console.log('sc', sc);
|
|
77
|
-
|
|
78
|
-
//throw 'stop';
|
|
79
|
-
|
|
80
|
-
const st = are.child.shared.type;
|
|
81
|
-
//console.log('st', st);
|
|
82
|
-
|
|
83
|
-
if (sc === 'Literal') {
|
|
84
|
-
// can get the values....
|
|
85
|
-
|
|
86
|
-
const lvalues = are.query.collect.child.value.exe();
|
|
87
|
-
//console.log('lvalues', lvalues);
|
|
88
|
-
each(lvalues, v => assigned_values.push(v));
|
|
89
|
-
|
|
90
|
-
} else {
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
throw 'NYI';
|
|
95
|
-
}
|
|
96
|
-
//console.log(sc);
|
|
97
|
-
//if (are.)
|
|
98
|
-
} else {
|
|
99
|
-
|
|
100
|
-
// .query.select.by.child.count.exe(2).query.select.where.first.child.is.identifier.exe().select.where.second.child.is.literal.exe()
|
|
101
|
-
// .quert.select.where.child.count.is.exe(2)
|
|
102
|
-
|
|
103
|
-
if (cdec.child.count === 2) {
|
|
104
|
-
if (cdec.child_nodes[0].is_identifier) {
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
if (cdec.child_nodes[1].is_literal) {
|
|
108
|
-
const [name, value] = [cdec.child_nodes[0].name, cdec.child_nodes[1].value];
|
|
109
|
-
//console.log('[name, value]', [name, value]);
|
|
110
|
-
assigned_values.push(value);
|
|
111
|
-
|
|
112
|
-
} else {
|
|
113
|
-
// is it an expression?
|
|
114
|
-
// we could give it the node?
|
|
115
|
-
|
|
116
|
-
// leaving it for the moment???
|
|
117
|
-
|
|
118
|
-
if (cdec.child_nodes[1].is_expression) {
|
|
119
|
-
assigned_values.push(cdec.child_nodes[1]);
|
|
120
|
-
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
//throw 'yay';
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
} else {
|
|
131
|
-
throw 'NYI';
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
} else {
|
|
136
|
-
throw 'stop';
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
//console.log('dec_cn_tstr', dec_cn_tstr);
|
|
140
|
-
//throw 'NYI';
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
});
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
} else if (node.type === 'ClassDeclaration') {
|
|
149
|
-
throw 'NYI';
|
|
150
|
-
} else {
|
|
151
|
-
throw 'stop';
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
return assigned_values;
|
|
155
|
-
}});
|
|
156
|
-
Object.defineProperty(declared, 'keys', {
|
|
157
|
-
get() {
|
|
158
|
-
if (!declared_keys) {
|
|
159
|
-
|
|
160
|
-
// Can try the get_object_keys function???
|
|
161
|
-
|
|
162
|
-
declared_keys = [];
|
|
163
|
-
|
|
164
|
-
if (node.type === 'VariableDeclaration') {
|
|
165
|
-
//console.log('node', node);
|
|
166
|
-
//const ks = node.query.collect.child.variabledeclarator.exe().query.collect.id.name.exe();
|
|
167
|
-
const vdars = node.query.collect.child.variabledeclarator.exe();
|
|
168
|
-
//console.log('vdars', vdars);
|
|
169
|
-
//console.log('vdars[0].id', vdars[0].id);
|
|
170
|
-
const collected_keys = vdars.query.collect.id.name.exe();
|
|
171
|
-
each(collected_keys, key => declared_keys.push(key));
|
|
172
|
-
//console.log('collected_keys', collected_keys);
|
|
173
|
-
} else if (node.type === 'ClassDeclaration') {
|
|
174
|
-
throw 'NYI';
|
|
175
|
-
} else {
|
|
176
|
-
throw 'stop';
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
//throw 'stop';
|
|
180
|
-
|
|
181
|
-
const vdrs = node.query.select.child.node.exe(node => node.type === 'VariableDeclarator'); // and the new query system works.
|
|
182
|
-
if (vdrs.length > 0) {
|
|
183
|
-
//console.log('vdrs', vdrs);
|
|
184
|
-
|
|
185
|
-
// No, a variable declarator that assigns object keys should return those keys, not the object name itself.
|
|
186
|
-
|
|
187
|
-
each(vdrs, vdr => {
|
|
188
|
-
const dtr = vdr.declarator;
|
|
189
|
-
//console.log('dtr', dtr);
|
|
190
|
-
const dtr_keys = dtr.keys;
|
|
191
|
-
//console.log('dtr_keys', dtr_keys);
|
|
192
|
-
each(dtr_keys, key => declared_keys.push(key));
|
|
193
|
-
});
|
|
194
|
-
} else {
|
|
195
|
-
|
|
196
|
-
// Seems like class definitions are not iterating right...?
|
|
197
|
-
|
|
198
|
-
console.log('vdrs.length', vdrs.length);
|
|
199
|
-
|
|
200
|
-
if (vdrs.length === 0) {
|
|
201
|
-
if (this.node.type === 'ClassDeclaration') {
|
|
202
|
-
const key = this.node.child_nodes[0].name;
|
|
203
|
-
console.log('key', key);
|
|
204
|
-
|
|
205
|
-
if (key !== undefined) {
|
|
206
|
-
declared_keys.push(key);
|
|
207
|
-
} else {
|
|
208
|
-
throw 'stop';
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
//throw 'NYI';
|
|
214
|
-
} else {
|
|
215
|
-
throw 'stop';
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
} else {
|
|
219
|
-
throw 'NYI';
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
//console.log('this.node.type', this.node.type);
|
|
224
|
-
//console.log('this.node.child_nodes.length', this.node.child_nodes.length);
|
|
225
|
-
|
|
226
|
-
//console.log('this.node.signature', this.node.signature);
|
|
227
|
-
//console.log('this.node.deep_type_signature', this.node.deep_type_signature);
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
//throw 'NYI';
|
|
231
|
-
}
|
|
232
|
-
|
|
233
|
-
//throw 'NYI';
|
|
234
|
-
}
|
|
235
|
-
return declared_keys;
|
|
236
|
-
},
|
|
237
|
-
enumerable: true,
|
|
238
|
-
configurable: false
|
|
239
|
-
});
|
|
240
|
-
|
|
241
|
-
this.declared = declared;
|
|
242
|
-
this.assigned = assigned;
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
}
|
|
247
|
-
}
|
|
248
|
-
|
|
1
|
+
// When a declaration is treated as a feature, there is programming less specifically for it being a node.
|
|
2
|
+
|
|
3
|
+
// Feature is an abstraction on top of JS_AST_Node.
|
|
4
|
+
const {each} = require('lang-tools');
|
|
5
|
+
|
|
6
|
+
const JS_AST_Node_Feature = require('./JS_AST_Node_Feature');
|
|
7
|
+
|
|
8
|
+
class JS_AST_Node_Feature_Declaration extends JS_AST_Node_Feature {
|
|
9
|
+
constructor(spec = {}) {
|
|
10
|
+
super(spec);
|
|
11
|
+
const {node} = this;
|
|
12
|
+
|
|
13
|
+
let declared_keys, assigned_values;
|
|
14
|
+
|
|
15
|
+
// Maybe should be .declared.keys?
|
|
16
|
+
|
|
17
|
+
const declared = {};
|
|
18
|
+
|
|
19
|
+
const assigned = {};
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
// and the assigned keys property.
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
// // maybe they are not assigned keys after all.
|
|
26
|
+
|
|
27
|
+
// .assigned.values
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
// a query to get the literal values???
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
Object.defineProperty(assigned, 'values', {
|
|
35
|
+
get() {
|
|
36
|
+
if (!assigned_values) {
|
|
37
|
+
assigned_values = [];
|
|
38
|
+
|
|
39
|
+
//console.log('node', node);
|
|
40
|
+
//console.log('node.source', node.source);
|
|
41
|
+
|
|
42
|
+
if (node.type === 'VariableDeclaration') {
|
|
43
|
+
|
|
44
|
+
// Need to look at all the child nodes.
|
|
45
|
+
//console.log('node.child.shared.type', node.child.shared.type);
|
|
46
|
+
|
|
47
|
+
// then go through each child declarator....
|
|
48
|
+
|
|
49
|
+
node.query.each.child.declarator.exe(cdec => {
|
|
50
|
+
console.log('');
|
|
51
|
+
console.log('cdec', cdec);
|
|
52
|
+
console.log('cdec.source', cdec.source);
|
|
53
|
+
const dec_cn_tstr = cdec.query.collect.child.node.t.exe().join('.');
|
|
54
|
+
console.log('dec_cn_tstr', dec_cn_tstr);
|
|
55
|
+
|
|
56
|
+
// Can use a signature map.
|
|
57
|
+
|
|
58
|
+
// node.query.callmap.child.declarator.signature.exe({sig1: (node) => {}, sig2: node => {}}, unmapped_node => {})
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
if (dec_cn_tstr === 'ArP.ArE') {
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
// ArrayPattern.ArrayExpression
|
|
66
|
+
const are = cdec.child_nodes[1];
|
|
67
|
+
//console.log('are', are);
|
|
68
|
+
|
|
69
|
+
// then are they literals inside?
|
|
70
|
+
|
|
71
|
+
// .find child shared category?
|
|
72
|
+
// but query needs the verb.
|
|
73
|
+
// maybe collect is the default one now.
|
|
74
|
+
//const sc = are.query.child.shared.category.exe();
|
|
75
|
+
const sc = are.child.shared.category;
|
|
76
|
+
//console.log('sc', sc);
|
|
77
|
+
|
|
78
|
+
//throw 'stop';
|
|
79
|
+
|
|
80
|
+
const st = are.child.shared.type;
|
|
81
|
+
//console.log('st', st);
|
|
82
|
+
|
|
83
|
+
if (sc === 'Literal') {
|
|
84
|
+
// can get the values....
|
|
85
|
+
|
|
86
|
+
const lvalues = are.query.collect.child.value.exe();
|
|
87
|
+
//console.log('lvalues', lvalues);
|
|
88
|
+
each(lvalues, v => assigned_values.push(v));
|
|
89
|
+
|
|
90
|
+
} else {
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
throw 'NYI';
|
|
95
|
+
}
|
|
96
|
+
//console.log(sc);
|
|
97
|
+
//if (are.)
|
|
98
|
+
} else {
|
|
99
|
+
|
|
100
|
+
// .query.select.by.child.count.exe(2).query.select.where.first.child.is.identifier.exe().select.where.second.child.is.literal.exe()
|
|
101
|
+
// .quert.select.where.child.count.is.exe(2)
|
|
102
|
+
|
|
103
|
+
if (cdec.child.count === 2) {
|
|
104
|
+
if (cdec.child_nodes[0].is_identifier) {
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
if (cdec.child_nodes[1].is_literal) {
|
|
108
|
+
const [name, value] = [cdec.child_nodes[0].name, cdec.child_nodes[1].value];
|
|
109
|
+
//console.log('[name, value]', [name, value]);
|
|
110
|
+
assigned_values.push(value);
|
|
111
|
+
|
|
112
|
+
} else {
|
|
113
|
+
// is it an expression?
|
|
114
|
+
// we could give it the node?
|
|
115
|
+
|
|
116
|
+
// leaving it for the moment???
|
|
117
|
+
|
|
118
|
+
if (cdec.child_nodes[1].is_expression) {
|
|
119
|
+
assigned_values.push(cdec.child_nodes[1]);
|
|
120
|
+
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
//throw 'yay';
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
} else {
|
|
131
|
+
throw 'NYI';
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
} else {
|
|
136
|
+
throw 'stop';
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
//console.log('dec_cn_tstr', dec_cn_tstr);
|
|
140
|
+
//throw 'NYI';
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
});
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
} else if (node.type === 'ClassDeclaration') {
|
|
149
|
+
throw 'NYI';
|
|
150
|
+
} else {
|
|
151
|
+
throw 'stop';
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
return assigned_values;
|
|
155
|
+
}});
|
|
156
|
+
Object.defineProperty(declared, 'keys', {
|
|
157
|
+
get() {
|
|
158
|
+
if (!declared_keys) {
|
|
159
|
+
|
|
160
|
+
// Can try the get_object_keys function???
|
|
161
|
+
|
|
162
|
+
declared_keys = [];
|
|
163
|
+
|
|
164
|
+
if (node.type === 'VariableDeclaration') {
|
|
165
|
+
//console.log('node', node);
|
|
166
|
+
//const ks = node.query.collect.child.variabledeclarator.exe().query.collect.id.name.exe();
|
|
167
|
+
const vdars = node.query.collect.child.variabledeclarator.exe();
|
|
168
|
+
//console.log('vdars', vdars);
|
|
169
|
+
//console.log('vdars[0].id', vdars[0].id);
|
|
170
|
+
const collected_keys = vdars.query.collect.id.name.exe();
|
|
171
|
+
each(collected_keys, key => declared_keys.push(key));
|
|
172
|
+
//console.log('collected_keys', collected_keys);
|
|
173
|
+
} else if (node.type === 'ClassDeclaration') {
|
|
174
|
+
throw 'NYI';
|
|
175
|
+
} else {
|
|
176
|
+
throw 'stop';
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
//throw 'stop';
|
|
180
|
+
|
|
181
|
+
const vdrs = node.query.select.child.node.exe(node => node.type === 'VariableDeclarator'); // and the new query system works.
|
|
182
|
+
if (vdrs.length > 0) {
|
|
183
|
+
//console.log('vdrs', vdrs);
|
|
184
|
+
|
|
185
|
+
// No, a variable declarator that assigns object keys should return those keys, not the object name itself.
|
|
186
|
+
|
|
187
|
+
each(vdrs, vdr => {
|
|
188
|
+
const dtr = vdr.declarator;
|
|
189
|
+
//console.log('dtr', dtr);
|
|
190
|
+
const dtr_keys = dtr.keys;
|
|
191
|
+
//console.log('dtr_keys', dtr_keys);
|
|
192
|
+
each(dtr_keys, key => declared_keys.push(key));
|
|
193
|
+
});
|
|
194
|
+
} else {
|
|
195
|
+
|
|
196
|
+
// Seems like class definitions are not iterating right...?
|
|
197
|
+
|
|
198
|
+
console.log('vdrs.length', vdrs.length);
|
|
199
|
+
|
|
200
|
+
if (vdrs.length === 0) {
|
|
201
|
+
if (this.node.type === 'ClassDeclaration') {
|
|
202
|
+
const key = this.node.child_nodes[0].name;
|
|
203
|
+
console.log('key', key);
|
|
204
|
+
|
|
205
|
+
if (key !== undefined) {
|
|
206
|
+
declared_keys.push(key);
|
|
207
|
+
} else {
|
|
208
|
+
throw 'stop';
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
|
|
212
|
+
|
|
213
|
+
//throw 'NYI';
|
|
214
|
+
} else {
|
|
215
|
+
throw 'stop';
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
} else {
|
|
219
|
+
throw 'NYI';
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
|
|
223
|
+
//console.log('this.node.type', this.node.type);
|
|
224
|
+
//console.log('this.node.child_nodes.length', this.node.child_nodes.length);
|
|
225
|
+
|
|
226
|
+
//console.log('this.node.signature', this.node.signature);
|
|
227
|
+
//console.log('this.node.deep_type_signature', this.node.deep_type_signature);
|
|
228
|
+
|
|
229
|
+
|
|
230
|
+
//throw 'NYI';
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
//throw 'NYI';
|
|
234
|
+
}
|
|
235
|
+
return declared_keys;
|
|
236
|
+
},
|
|
237
|
+
enumerable: true,
|
|
238
|
+
configurable: false
|
|
239
|
+
});
|
|
240
|
+
|
|
241
|
+
this.declared = declared;
|
|
242
|
+
this.assigned = assigned;
|
|
243
|
+
|
|
244
|
+
|
|
245
|
+
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
|
|
249
249
|
module.exports = JS_AST_Node_Feature_Declaration;
|