vendor/ejson.js
function (value) {
  if (typeof value === 'object' && value !== null) {
    if (_.size(value) <= 2
        && _.all(value, function (v, k) {
          return typeof k === 'string' && k.substr(0, 1) === '$';
        })) {
      for (var i = 0; i < builtinConverters.length; i++) {
        var converter = builtinConverters[i];
        if (converter.matchJSONValue(value)) {
          return converter.fromJSONValue(value);
        }
      }
    }
  }
  return value;
}
function (value) {
  if (typeof value === 'object' && value !== null) {
    if (_.size(value) <= 2
        && _.all(value, function (v, k) {
          return typeof k === 'string' && k.substr(0, 1) === '$';
        })) {
      for (var i = 0; i < builtinConverters.length; i++) {
        var converter = builtinConverters[i];
        if (converter.matchJSONValue(value)) {
          return converter.fromJSONValue(value);
        }
      }
    }
  }
  return value;
}
function ( value ) { if ( typeof value === 'object' && value !== null ) { if ( _ . size ( value ) <= 2 && _ . all ( value , function ( v , k ) { return typeof k === 'string' && k . substr ( 0 , 1 ) === '$' ; } ) ) { for ( var i = 0 ; i < builtinConverters . length ; i ++ ) { var converter = builtinConverters [ i ] ; if ( converter . matchJSONValue ( value ) ) { return converter . fromJSONValue ( value ) ; } } } } return value ; }
DOES NOT RECURSE.  For actually getting the fully-changed value, use EJSON.fromJSONValue
DOES NOT RECURSE . For actually getting the fully - changed value use EJSON . fromJSONValue