scope-tree
Version:
Module scope tree for CodeInspector
43 lines (41 loc) • 2.58 kB
JavaScript
module.exports.__fsLocationMap = [[1, 8, 3, 7], [1, 19, 3, 23], [1, 8, 3, 34], [3, 8, 4, 1], [3, 14, 4, 7], [3, 25, 4, 18], [3, 33, 4, 26], [4, 5, 5, 3], [4, 38, 5, 28], [4, 60, 5, 42], [4, 60, 6, 5], [4, 60, 6, 15], [4, 70, 6, 26], [4, 38, 7, 5], [4, 38, 7, 20], [4, 53, 7, 36], [5, 9, 10, 5], [5, 12, 10, 9], [5, 17, 10, 14], [5, 23, 10, 20], [5, 27, 10, 24], [6, 13, 11, 7], [6, 20, 11, 14], [8, 9, 13, 5], [8, 14, 13, 10], [8, 20, 13, 16], [8, 24, 13, 20], [9, 13, 14, 7], [9, 19, 14, 13], [10, 13, 15, 7], [10, 19, 15, 13], [11, 13, 16, 7], [11, 27, 16, 21], [12, 13, 17, 7], [12, 21, 17, 15], [13, 13, 18, 7], [13, 24, 18, 18], [14, 13, 19, 7], [14, 22, 19, 16], [17, 9, 21, 5], [17, 16, 21, 12], [17, 21, 21, 17], [17, 27, 21, 23], [17, 31, 21, 27], [19, 5, 24, 3], [19, 40, 24, 30], [19, 40, 25, 5], [19, 40, 25, 16], [19, 51, 25, 28], [20, 9, 28, 5], [20, 12, 28, 9], [20, 17, 28, 14], [20, 23, 28, 20], [20, 27, 28, 24], [21, 13, 29, 7], [21, 20, 29, 14], [23, 9, 31, 5], [23, 14, 31, 10], [23, 20, 31, 16], [23, 24, 31, 20], [24, 13, 32, 7], [24, 19, 32, 13], [25, 13, 33, 7], [25, 19, 33, 13], [26, 13, 34, 7], [26, 21, 34, 15], [27, 13, 35, 7], [27, 23, 35, 17], [28, 13, 36, 7], [28, 24, 36, 18], [31, 9, 38, 5], [31, 16, 38, 12], [31, 21, 38, 17], [31, 27, 38, 23], [31, 31, 38, 27], [3, 14, 41, 16], [3, 14, 41, 29]];
module.exports.__esModule = true;
const FirescriptRuntime = require('firescript-runtime').FirescriptRuntime;
const Scope = require('./Scope').Scope;
class ClassScope extends Scope {
addMethod (name, params, returnTyping, isAsync) {
isAsync = isAsync || false;
returnTyping = returnTyping || 'any';
FirescriptRuntime.paramTyping(FirescriptRuntime.TYPE_STR, name, 'name');
FirescriptRuntime.paramTyping(FirescriptRuntime.TYPE_ARR, params, 'params');
if (this.scope.has(name)) {
return false;
}
this.scope.set(name, {
type: 'method',
name: name,
returnTyping: returnTyping,
params: params,
callCount: 0,
isAsync: false
});
return this.scope.get(name);
}
addProperty (typing, name, required) {
required = required || false;
FirescriptRuntime.paramTyping(FirescriptRuntime.TYPE_STR, typing, 'typing');
FirescriptRuntime.paramTyping(FirescriptRuntime.TYPE_STR, name, 'name');
if (this.scope.has(name)) {
return false;
}
this.scope.set(name, {
type: 'property',
name: name,
typing: typing,
required: required,
callCount: 0
});
return this.scope.get(name);
}
}
module.exports.ClassScope = ClassScope;