accessed-properties.js 795 B

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