rem: summary + ': compile actual'); 
add: summary + ': compile actual'); 
context: function compareSource(expect, actual, summary){  // compare source  var expectP = expect.    replace(/([(){},.:\[\]])/mg, ' $1 ').    replace(/(\w+)/mg, ' $1 ').    replace(/<(\/)? (\w+) (\/)?>/mg, '<$1$2$3>').    replace(/\s+/mg, ' ').    replace(/new (\w+)\s*\(\s*\)/mg, 'new $1');  var actualP = actual.    replace(/([(){},.:\[\]])/mg, ' $1 ').    replace(/(\w+)/mg, ' $1 ').    replace(/<(\/)? (\w+) (\/)?>/mg, '<$1$2$3>').    replace(/\s+/mg, ' ').    replace(/new (\w+)\s*\(\s*\)/mg, 'new $1');  print('expect:\n' + expectP);  print('actual:\n' + actualP);  reportCompare(expectP, actualP, summary);  // actual must be compilable if expect is?  try  {    var expectCompile = 'No Error';    var actualCompile;    eval(expect);    try    {      eval(actual);      actualCompile = 'No Error';    }    catch(ex1)    {      actualCompile = ex1 + '';    }    reportCompare(expectCompile, actualCompile,		  summary + ': compile actual');  }  catch(ex)  {  }}
meta: 10520	/local1/tlutelli/issta_data/temp/all_js/javascript/2007_temp/2007/10520/a31fa0ecc6ce6b9b6d2ba6d7369c6c7295e672d6/shell.js/buggy/js/tests/shell.js