chenyc
2025-12-09 65e034683b28d799e73c7d7e5e4769fab5b9bc9c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
"use strict";
 
var ensureString = require("type/string/ensure")
  , esniff       = require("./");
 
module.exports = function (objName) {
    var length;
    objName = ensureString(objName);
    length = objName.length;
    if (!length) throw new TypeError(objName + " is not valid object name");
    return function (code) {
        var data = [];
        code = ensureString(code);
        esniff(code, function (emitter) {
            emitter.on("trigger:" + objName[0], function (accessor) {
                if (accessor.previousToken === ".") return;
                if (!accessor.skipCodePart(objName)) return;
                accessor.skipWhitespace();
                if (!accessor.skipCodePart(".")) return;
                accessor.skipWhitespace();
                var identifierMeta = accessor.skipIdentifier();
                if (identifierMeta) data.push(identifierMeta);
            });
        });
        return data;
    };
};