MCPcopy Index your code
hub / github.com/sql-js/sql.js / ___buildEnvironment

Function ___buildEnvironment

js/sql-debug.js:4985–5036  ·  view source on GitHub ↗
(env)

Source from the content-addressed store, hash-verified

4983
4984
4985 var _environ=STATICTOP; STATICTOP += 16;;var ___environ=_environ;function ___buildEnvironment(env) {
4986 // WARNING: Arbitrary limit!
4987 var MAX_ENV_VALUES = 64;
4988 var TOTAL_ENV_SIZE = 1024;
4989
4990 // Statically allocate memory for the environment.
4991 var poolPtr;
4992 var envPtr;
4993 if (!___buildEnvironment.called) {
4994 ___buildEnvironment.called = true;
4995 // Set default values. Use string keys for Closure Compiler compatibility.
4996 ENV['USER'] = ENV['LOGNAME'] = 'web_user';
4997 ENV['PATH'] = '/';
4998 ENV['PWD'] = '/';
4999 ENV['HOME'] = '/home/web_user';
5000 ENV['LANG'] = 'C.UTF-8';
5001 ENV['_'] = Module['thisProgram'];
5002 // Allocate memory.
5003 poolPtr = allocate(TOTAL_ENV_SIZE, 'i8', ALLOC_STATIC);
5004 envPtr = allocate(MAX_ENV_VALUES * 4,
5005 'i8*', ALLOC_STATIC);
5006 HEAP32[((envPtr)>>2)]=poolPtr;
5007 HEAP32[((_environ)>>2)]=envPtr;
5008 } else {
5009 envPtr = HEAP32[((_environ)>>2)];
5010 poolPtr = HEAP32[((envPtr)>>2)];
5011 }
5012
5013 // Collect key=value lines.
5014 var strings = [];
5015 var totalSize = 0;
5016 for (var key in env) {
5017 if (typeof env[key] === 'string') {
5018 var line = key + '=' + env[key];
5019 strings.push(line);
5020 totalSize += line.length;
5021 }
5022 }
5023 if (totalSize > TOTAL_ENV_SIZE) {
5024 throw new Error('Environment size exceeded TOTAL_ENV_SIZE!');
5025 }
5026
5027 // Make new.
5028 var ptrSize = 4;
5029 for (var i = 0; i < strings.length; i++) {
5030 var line = strings[i];
5031 writeAsciiToMemory(line, poolPtr);
5032 HEAP32[(((envPtr)+(i * ptrSize))>>2)]=poolPtr;
5033 poolPtr += line.length + 1;
5034 }
5035 HEAP32[(((envPtr)+(strings.length * ptrSize))>>2)]=0;
5036 }var ENV={};function _getenv(name) {
5037 // char *getenv(const char *name);
5038 // http://pubs.opengroup.org/onlinepubs/009695399/functions/getenv.html
5039 if (name === 0) return 0;

Callers 1

sql-debug.jsFile · 0.70

Calls 2

allocateFunction · 0.70
writeAsciiToMemoryFunction · 0.70

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…