diff --git a/src/memoryprofiler.js b/src/memoryprofiler.js
index f2ec7f8195ff1..8b3a4e60650a8 100644
--- a/src/memoryprofiler.js
+++ b/src/memoryprofiler.js
@@ -502,7 +502,7 @@ var emscriptenMemoryProfiler = {
html += '. STACK_MAX: ' + toHex(stackMax, width) + '.';
html += '
STACK memory area used now (should be zero): ' + self.formatBytes(stackBase - stackCurrent) + '.' + colorBar('#FFFF00') + ' STACK watermark highest seen usage (approximate lower-bound!): ' + self.formatBytes(stackBase - self.stackTopWatermark);
- var heap_base = Module['___heap_base'];
+ var heap_base = ___heap_base;
var heap_end = _sbrk({{{ to64('0') }}});
html += "
DYNAMIC memory area size: " + self.formatBytes(heap_end - heap_base);
html += ". start: " + toHex(heap_base, width);
diff --git a/test/test_core.py b/test/test_core.py
index 4947402b91283..838448a1476f0 100644
--- a/test/test_core.py
+++ b/test/test_core.py
@@ -8593,8 +8593,8 @@ def test_memprof_requirements(self):
assert(typeof _emscripten_stack_get_base === 'function');
assert(typeof _emscripten_stack_get_end === 'function');
assert(typeof _emscripten_stack_get_current === 'function');
- assert(typeof Module['___heap_base'] === 'number');
- assert(Module['___heap_base'] > 0);
+ assert(typeof ___heap_base === 'number');
+ assert(___heap_base > 0);
out('able to run memprof');
}
};
diff --git a/tools/emscripten.py b/tools/emscripten.py
index 47faa276d6e8a..ae2c8f2e7dfea 100644
--- a/tools/emscripten.py
+++ b/tools/emscripten.py
@@ -285,10 +285,10 @@ def create_data_exports(data_exports):
if settings.RELOCATABLE:
v += settings.GLOBAL_BASE
mangled = asmjs_mangle(k)
- if settings.MINIMAL_RUNTIME:
- lines.append("var %s = %s;" % (mangled, v))
- else:
+ if should_export(mangled) and not settings.MINIMAL_RUNTIME:
lines.append("var %s = Module['%s'] = %s;" % (mangled, mangled, v))
+ else:
+ lines.append("var %s = %s;" % (mangled, v))
return '\n'.join(lines)