@@ -59,18 +59,7 @@ index 752344d68c3f63b4c5e491b33d4576ed48f8b74f..a6f0805048e3c3f4dd81ce6e90b684c4
5959
6060 }} // namespace native_module
6161
62- @@ -243,8 +245,8 @@ def GetDefinition(var, source, step=30):
63- return definition, len(code_points)
64-
65-
66- - def AddModule(filename, consts, macros, definitions, initializers):
67- - code = ReadFile(filename)
68- + def AddModule(filename, consts, macros, definitions, initializers, FileReadFn=ReadFile):
69- + code = FileReadFn(filename)
70- code = ExpandConstants(code, consts)
71- code = ExpandMacros(code, macros)
72- name = NormalizeFileName(filename)
73- @@ -256,7 +258,7 @@ def AddModule(filename, consts, macros, definitions, initializers):
62+ @@ -256,7 +258,7 @@ def AddModule(filename, definitions, initializers):
7463 initializers.append(initializer)
7564
7665 def NormalizeFileName(filename):
@@ -79,23 +68,30 @@ index 752344d68c3f63b4c5e491b33d4576ed48f8b74f..a6f0805048e3c3f4dd81ce6e90b684c4
7968 if split[0] == 'deps':
8069 split = ['internal'] + split
8170 else: # `lib/**/*.js` so drop the 'lib' part
82- @@ -274,9 +276,9 @@ def NormalizeFileName(filename):
71+ @@ -114,8 +114,8 @@ def GetDefinition(var, source, step=30):
72+ return definition, len(code_points)
73+
8374
75+ - def AddModule(filename, definitions, initializers):
76+ - code = ReadFile(filename)
77+ + def AddModule(filename, definitions, initializers, ReadFileFn=ReadFile):
78+ + code = ReadFileFn(filename)
79+ name = NormalizeFileName(filename)
80+ slug = SLUGGER_RE.sub('_', name)
81+ var = slug + '_raw'
82+ @@ -141,7 +141,7 @@ def NormalizeFileName(filename):
8483 return os.path.splitext(filename)[0]
8584
85+
8686- def JS2C(source_files, target):
8787+ def JS2C(source_files, target, only_js):
88- # Process input from all *macro.py files
89- - consts, macros = ReadMacros(source_files['.py'])
90- + consts, macros = ReadMacros([] if only_js else source_files['.py'])
91-
9288 # Build source code lines
9389 definitions = []
94- @@ -284,14 +286,26 @@ def JS2C(source_files, target):
95-
90+ initializers = []
91+ @@ -149,13 +149,26 @@ def JS2C(source_files, target):
9692 for filename in source_files['.js']:
97- AddModule(filename, consts, macros, definitions, initializers)
98- -
93+ AddModule(filename, definitions, initializers)
94+
9995- config_def, config_size = handle_config_gypi(source_files['config.gypi'])
10096- definitions.append(config_def)
10197+ # Electron: Expose fs module without asar support.
@@ -105,9 +101,9 @@ index 752344d68c3f63b4c5e491b33d4576ed48f8b74f..a6f0805048e3c3f4dd81ce6e90b684c4
105101+ # we have to copy both 'fs' *and* 'internal/fs/streams' and modify the
106102+ # copies to depend on each other instead of on our asarified 'fs' code.
107103+ # See https://github.com/electron/electron/pull/16028 for more.
108- + AddModule('lib/original-fs.js', consts, macros, definitions, initializers, lambda _: ReadFile(filename).replace("require('internal/fs/streams')", "require('internal/original-fs/streams')"))
104+ + AddModule('lib/original-fs.js', definitions, initializers, lambda _: ReadFile(filename).replace("require('internal/fs/streams')", "require('internal/original-fs/streams')"))
109105+ elif filename == 'lib/internal/fs/streams.js':
110- + AddModule('lib/internal/original-fs/streams.js', consts, macros, definitions, initializers, lambda _: ReadFile(filename).replace("require('fs')", "require('original-fs')"))
106+ + AddModule('lib/internal/original-fs/streams.js', definitions, initializers, lambda _: ReadFile(filename).replace("require('fs')", "require('original-fs')"))
111107+
112108+ config_size = 0
113109+ if not only_js:
@@ -132,16 +128,16 @@ index 752344d68c3f63b4c5e491b33d4576ed48f8b74f..a6f0805048e3c3f4dd81ce6e90b684c4
132128 global is_verbose
133129 is_verbose = options.verbose
134130 source_files = functools.reduce(SourceFileByExt, options.sources, {})
135- # Should have exactly 3 types: `.js`, `.py `, and `.gypi`
136- - assert len(source_files) == 3
131+ # Should have exactly 2 types: `.js`, and `.gypi`
132+ - assert len(source_files) == 2
137133- # Currently config.gypi is the only `.gypi` file allowed
138134- assert source_files['.gypi'] == ['config.gypi']
139135- source_files['config.gypi'] = source_files.pop('.gypi')[0]
140136- JS2C(source_files, options.target)
141137+ if options.only_js:
142138+ assert len(source_files) == 1
143139+ else:
144- + assert len(source_files) == 3
140+ + assert len(source_files) == 2
145141+ # Currently config.gypi is the only `.gypi` file allowed
146142+ assert source_files['.gypi'][0].endswith('config.gypi')
147143+ source_files['config.gypi'] = source_files.pop('.gypi')[0]
0 commit comments