Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP


Problem using gauss with NODE_MODULE_CONTEXTS=0 #6

rafaparafernalia opened this Issue · 5 comments

2 participants



I am using your library and I detected a problem. When I use your library in a file, it automatically modify the prototype of built-in Array object, without my permission ;)

I was researching and I found that the problem is that NODE_MODULE_CONTEXTS is zero for default so, your library overwrite Array built-in.

If you put the following content in a file, for example prueba.js:
var gauss = require("gauss");

var arreglo=[1,2];
for(var i in arreglo){

You will see that shows the properties that you add to Array. If you put the lines in the REPL, the program will be ok, this happen because the variable NODE_MODULE_CONTEXTS is set different in both cases. See: joyent/node#771

I fixed the problem adding,
In vector.js, line 6:
var Array=function () {};

In timeseries.js, line 6:
var Array = require('./vector');

Best regards,



Sorry, I don't fix the problem, clone and copy are not running correctly.

Best regards,


I am aware of this and will investigate, some of this is beyond the control of the module, and is in the nature of node/JavaScript being a dynamic language. A temporary fix would be to force NODE_MODULE_CONTEXTS=1: NODE_MODULE_CONTEXTS=1 node my_gauss_client.js.

However, this is less than ideal. The key thing I want to maintain is the ability to access members of the Vector like an array (For example: new gauss.Vector(1, 2, 3)[0] will return 1), regardless if we are monkey patching or not.


Also, what version of Node are you using? As of 0.6, I believe NODE_MODULE_CONTEXTS=0 across the board. Starting the REPL with NODE_MODULE_CONTEXTS=1 disables the use of any CommonJS external modules, so using Gauss or any module for that matter from the REPL won't work.

fredricks-macbook-pro:Desktop Fredrick$ NODE_MODULE_CONTEXTS=1 node

ReferenceError: require is not defined
at repl:1:2
at REPLServer.eval (repl.js:80:21)
at Interface. (repl.js:182:12)
at Interface.emit (events.js:67:17)
at Interface._onLine (readline.js:162:10)
at Interface._line (readline.js:426:8)
at Interface._ttyWrite (readline.js:603:14)
at ReadStream. (readline.js:82:12)
at ReadStream.emit (events.js:88:20)
at ReadStream._emitKey (tty.js:327:10)


I am using 0.6.8 version, but I always use "node" through files and I never use the REPL interface.

If you use NODE_MODULE_CONTEXTS=1 through files the "require" keyword functions.

Best regards,


This issue has been fixed as of v0.2.4. Can you confirm @rafaparafernalia?

@wayoutmind wayoutmind closed this
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.