MCPcopy Create free account
hub / github.com/corbanbrook/dsp.js / generateMetadata

Function generateMetadata

examples/js/processing.js:12053–12100  ·  view source on GitHub ↗
(ast)

Source from the content-addressed store, hash-verified

12051 };
12052
12053 function generateMetadata(ast) {
12054 var globalScope = {};
12055 var id, class_;
12056 for(id in declaredClasses) {
12057 if(declaredClasses.hasOwnProperty(id)) {
12058 class_ = declaredClasses[id];
12059 var scopeId = class_.scopeId, name = class_.name;
12060 if(scopeId) {
12061 var scope = declaredClasses[scopeId];
12062 class_.scope = scope;
12063 if(scope.inScope === undef) {
12064 scope.inScope = {};
12065 }
12066 scope.inScope[name] = class_;
12067 } else {
12068 globalScope[name] = class_;
12069 }
12070 }
12071 }
12072
12073 function findInScopes(class_, name) {
12074 var parts = name.split('.');
12075 var currentScope = class_.scope, found;
12076 while(currentScope) {
12077 if(parts[0] in currentScope) {
12078 found = currentScope[parts[0]]; break;
12079 }
12080 currentScope = currentScope.scope;
12081 }
12082 if(found === undef) {
12083 found = globalScope[parts[0]];
12084 }
12085 for(var i=1,l=parts.length;i<l && found;++i) {
12086 found = found.inScope[parts[i]];
12087 }
12088 return found;
12089 }
12090
12091 for(id in declaredClasses) {
12092 if(declaredClasses.hasOwnProperty(id)) {
12093 class_ = declaredClasses[id];
12094 var baseClassName = class_.body.baseClassName;
12095 if(baseClassName) {
12096 class_.base = findInScopes(class_, baseClassName);
12097 }
12098 }
12099 }
12100 }
12101
12102 var transformed = transformMain();
12103 generateMetadata(transformed);

Callers 1

parseProcessingFunction · 0.85

Calls 1

findInScopesFunction · 0.85

Tested by

no test coverage detected