V8 embedded debugger is not compatible with NodeClipse
I am using node.js and "this", as well as, this.global is empty

I finally figured it out on my own and this is how you do reflection with 
Node.js.
Here is an Aspect Oriented Programming (AOP) Container using Cujo.js Meld.js


app-separate-files.js
var business_object = require('./user.js');
var node_framework = require('./trace-meldaround.js');
var user = new business_object.User('Leo');

var trace = new node_framework.Trace('Hello Meld App');
trace.doTrace();
user.sayHello();
user.sayGoodBye();
 
trace-meldaround.js
var meld, joinPoint;
meld = require('./meld.js');
joinPoint = meld.joinpoint;
var log4js = require('./att_node_framework/log4js-node-master/lib/log4js'); 
// include log4js
log4js.configure({ // configure to use all types in different files.
    appenders: [
        {   type: 'file',
            filename: '../logs/error.log', // specify the path where u want 
logs folder error.log
            category: 'error',
            maxLogSize: 20480,
            backups: 10
        },
        {   type: 'file',
            filename: '../logs/info.log', // specify the path where u want 
logs folder info.log
            category: 'info',
            maxLogSize: 20480,
            backups: 10
        },
        {   type: 'file',
            filename: '../logs/debug.log', // specify the path where u want 
logs folder debug.log
            category: 'debug',
            maxLogSize: 20480,
            backups: 10
        }
    ]
});
var loggerinfo = log4js.getLogger('info'); // initialize the var to use.
var loggererror = log4js.getLogger('error'); // initialize the var to use.
var loggerdebug = log4js.getLogger('debug'); // initialize the var to use.
var Trace = function(AppName){
 this.appName = AppName;
 };

 Trace.prototype.doTrace = function(){
 
  function sayMeld(jp) {   
   console.log('meldaround function called for Application : ' + 
Trace.constructor.AppName);
   console.log('JoinPoint Method: ' +  jp.method);
   console.log('JoinPoint Target: ' + jp.target);
   console.log('JoinPoint Args: ' + jp.args.toString());
   console.log('JoinPoint Result: ' + jp.result);
   console.log('JoinPoint Exception: ' + jp.exception);
   loggerinfo.info('Calling Method: ' + jp.method);
   loggererror.info('This is Error Logger');
   loggerdebug.info('JoinPoint Method: ' +  jp.method);
   loggerdebug.info('JoinPoint Target: ' + jp.target);
   loggerdebug.info('JoinPoint Args: ' + jp.args.toString());
   loggerdebug.info('JoinPoint Result: ' + jp.result);
   loggerdebug.info('JoinPoint Exception: ' + jp.exception);   
  }
  
  
  var appObjects = module.parent.children;  
  var methods = [];
  var objects = [];
  for (var i=0; i<appObjects.length;i++){ 
   if (typeof appObjects[i] == 'object'){
     objects.push(appObjects[i]);
     
     var funcObj = appObjects[i].exports;
     if (typeof funcObj == 'object')
     {
      for (var key in funcObj){
       var k =0;
       var prototypeObj = funcObj[key].prototype;
       methods[i] = [];
       for (var proto in prototypeObj){                            
         methods[i][k] = proto;
         k++;
       }                    
      }
     }     
    }
  }
  
  for (var j=0; j<objects.length; j++){
   var ObjectName;
   for (var key2 in objects[j].exports){    
    ObjectName = key2;
    console.log(objects[j].exports[ObjectName].prototype);
    
    for (var n=0; n<methods[j].length; n++){
     if (ObjectName != 'Trace'){
     meld.around(objects[j].exports[ObjectName].prototype, methods[j][n], 
function(joinPoint){
      sayMeld(joinPoint);
      
      joinPoint.proceed();
     }); 
     }
    }
   }      
 }
  
  //meld.around(User.constructor.prototype, 'sayHello', function(joinPoint){
 };
 exports.Trace = Trace;

-Leo Cono



On Thursday, January 29, 2015 at 8:51:33 AM UTC-5, Leo Cono wrote:
>
>   
>
> <http://stackoverflow.com/questions/28216265/how-can-i-programmatically-access-v8-debugger-variables-list#>
>  
>   
> I am writing an AOP Container. I want to get a list of objects and 
> functions contained in the app.js script. I can see that all of this is 
> available with NodeClipse V8 Debugger Variables list.
>
> Question is: what code do I need to write to have access to the V8 
> Debugger Variables list?
>
> Thanks, Leo
>

-- 
Job board: http://jobs.nodejs.org/
New group rules: 
https://gist.github.com/othiym23/9886289#file-moderation-policy-md
Old group rules: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
--- 
You received this message because you are subscribed to the Google Groups 
"nodejs" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/nodejs/ca993abb-5c27-4907-a95a-1a1165c687c7%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to