From 2db758c562b4e480acc2d1a654e2c471a653a039 Mon Sep 17 00:00:00 2001 From: Vladimir Kurchatkin Date: Sat, 14 Feb 2015 22:53:34 +0300 Subject: iojs: introduce internal modules Internal modules can be used to share private code between public modules without risk to expose private APIs to the user. PR-URL: https://github.com/iojs/io.js/pull/848 Reviewed-By: Trevor Norris Reviewed-By: Ben Noordhuis --- tools/js2c.py | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) (limited to 'tools/js2c.py') diff --git a/tools/js2c.py b/tools/js2c.py index bbbccb289a..cc2c3045d0 100755 --- a/tools/js2c.py +++ b/tools/js2c.py @@ -238,11 +238,11 @@ static const struct _native natives[] = { NATIVE_DECLARATION = """\ - { "%(id)s", %(id)s_native, sizeof(%(id)s_native)-1 }, + { "%(id)s", %(escaped_id)s_native, sizeof(%(escaped_id)s_native)-1 }, """ SOURCE_DECLARATION = """\ - const char %(id)s_native[] = { %(data)s }; + const char %(escaped_id)s_native[] = { %(data)s }; """ @@ -293,16 +293,29 @@ def JS2C(source, target): lines = ExpandMacros(lines, macros) lines = CompressScript(lines, do_jsmin) data = ToCArray(s, lines) - id = os.path.basename(str(s)).split('.')[0] + id = '/'.join(re.split('/|\\\\', s)[1:]).split('.')[0] if delay: id = id[:-6] if delay: delay_ids.append((id, len(lines))) else: ids.append((id, len(lines))) - source_lines.append(SOURCE_DECLARATION % { 'id': id, 'data': data }) - source_lines_empty.append(SOURCE_DECLARATION % { 'id': id, 'data': 0 }) - native_lines.append(NATIVE_DECLARATION % { 'id': id }) - + + escaped_id = id.replace('/', '$') + source_lines.append(SOURCE_DECLARATION % { + 'id': id, + 'escaped_id': escaped_id, + 'data': data + }) + source_lines_empty.append(SOURCE_DECLARATION % { + 'id': id, + 'escaped_id': escaped_id, + 'data': 0 + }) + native_lines.append(NATIVE_DECLARATION % { + 'id': id, + 'escaped_id': escaped_id + }) + # Build delay support functions get_index_cases = [ ] get_script_source_cases = [ ] -- cgit v1.2.3