HEX
Server: nginx/1.28.3
System: Linux lightweb-s1 5.15.0-173-generic #183-Ubuntu SMP Fri Mar 6 13:29:34 UTC 2026 x86_64
User: drdrivek-71 (1047)
PHP: 8.3.30
Disabled: NONE
Upload Files
File: /home/eslinced-103/brise-edu.or.kr/node_modules/esniff/function.js
"use strict";

var ensureString = require("type/string/ensure")
  , isValue      = require("type/value/is")
  , esniff       = require("./");

module.exports = function (name/*, options*/) {
	var options = Object(arguments[1])
	  , asProperty = options.asProperty
	  , asPlain = isValue(options.asPlain) ? options.asPlain : true;
	var length, names;
	name = ensureString(name);
	names = name.split(".").map(function (prop) {
		prop = prop.trim();
		if (!prop) throw new TypeError(name + " is not valid function name");
		return prop;
	});
	length = names.length;
	return function (code) {
		code = ensureString(code);
		return esniff(code, function (emitter) {
			emitter.on("trigger:" + names[0][0], function (accessor) {
				if (accessor.previousToken === ".") {
					if (!asProperty) return;
				} else if (!asPlain) {
					return;
				}
				for (var i = 0, propertyName; (propertyName = names[i]); ++i) {
					if (!accessor.skipCodePart(propertyName)) return;
					accessor.skipWhitespace();
					if (i < length - 1) {
						if (!accessor.skipCodePart(".")) return;
						accessor.skipWhitespace();
					}
				}
				accessor.collectScope();
			});
		});
	};
};