Current File : //proc/self/root/kunden/usr/share/emacs/27.2/lisp/progmodes/js.elc |
;ELC
;;; Compiled
;;; in Emacs version 27.2
;;; with all optimizations.
;;; This file contains utf-8 non-ASCII characters,
;;; and so cannot be loaded into Emacs 22 or earlier.
(and (boundp 'emacs-version)
(< (aref emacs-version (1- (length emacs-version))) ?A)
(string-lessp emacs-version "23")
(error "`%s' was compiled for Emacs 23 or later" #$))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(byte-code "\300\301!\210\300\302!\210\300\303!\210\300\304\305\306#\210\300\307!\210\300\310!\207" [require cc-mode newcomment imenu moz nil t json prog-mode] 4)
#@73 Regexp matching the start of a JavaScript identifier, without grouping.
(defconst js--name-start-re "[[:alpha:]_$]" (#$ . 571))
(defconst js--stmt-delim-chars "^;{}?:")
#@60 Regexp matching a JavaScript identifier, without grouping.
(defconst js--name-re (concat js--name-start-re "\\(?:\\s_\\|\\sw\\)*") (#$ . 746))
#@57 Regexp matching the start of a JavaScript object field.
(defconst js--objfield-re (concat js--name-re ":") (#$ . 895))
#@63 Regexp matching a dot-separated sequence of JavaScript names.
(defconst js--dotted-name-re (concat js--name-re "\\(?:\\." js--name-re "\\)*") (#$ . 1020))
#@40 Regexp matching a C preprocessor name.
(defconst js--cpp-name-re js--name-re (#$ . 1181))
#@182 Regexp matching the prefix of a cpp directive.
This includes the directive name, or nil in languages without
preprocessor support. The first submatch surrounds the directive
name.
(defconst js--opt-cpp-start "^\\s-*#\\s-*\\([[:alnum:]]+\\)" (#$ . 1278))
#@180 Regexp matching an explicit JavaScript prototype "method" declaration.
Group 1 is a (possibly-dotted) class name, group 2 is a method name,
and group 3 is the `function' keyword.
(defconst js--plain-method-re (concat "^\\s-*?\\(" js--dotted-name-re "\\)\\.prototype\\.\\(" js--name-re "\\)\\s-*?=\\s-*?\\(function\\)\\_>") (#$ . 1540))
#@129 Regexp matching a JavaScript explicit prototype "class" declaration.
An example of this is "Class.prototype = { method1: ...}".
(defconst js--plain-class-re (concat "^\\s-*\\(" js--dotted-name-re "\\)\\.prototype\\s-*=\\s-*{") (#$ . 1883))
(defconst js--mp-class-decl-re (concat "^\\s-*var\\s-+\\(" js--name-re "\\)\\s-*=\\s-*\\(" js--dotted-name-re "\\)\\.extend\\(?:Final\\)?\\s-*(\\s-*{?\\s-*$"))
(defconst js--prototype-obsolete-class-decl-re (concat "^\\s-*\\(?:var\\s-+\\)?\\(" js--dotted-name-re "\\)\\s-*=\\s-*Class\\.create()"))
(defconst js--prototype-objextend-class-decl-re-1 (concat "^\\s-*Object\\.extend\\s-*(\\(" js--dotted-name-re "\\)\\s-*,\\s-*{"))
(defconst js--prototype-objextend-class-decl-re-2 (concat "^\\s-*\\(?:var\\s-+\\)?\\(" js--dotted-name-re "\\)\\s-*=\\s-*Object\\.extend\\s-*("))
(defconst js--prototype-class-decl-re (concat "^\\s-*\\(?:var\\s-+\\)?\\(" js--name-re "\\)\\s-*=\\s-*Class\\.create\\s-*(\\s-*\\(?:\\(" js--dotted-name-re "\\)\\s-*,\\s-*\\)?{?"))
(defconst js--dojo-class-decl-re (concat "^\\s-*dojo\\.declare\\s-*(\"\\(" js--dotted-name-re "\\)"))
#@55 Regexp matching an ExtJS class declaration (style 1).
(defconst js--extjs-class-decl-re-1 (concat "^\\s-*Ext\\.extend\\s-*(\\s-*\\(" js--dotted-name-re "\\)\\s-*,\\s-*\\(" js--dotted-name-re "\\)") (#$ . 2986))
#@55 Regexp matching an ExtJS class declaration (style 2).
(defconst js--extjs-class-decl-re-2 (concat "^\\s-*\\(?:var\\s-+\\)?\\(" js--name-re "\\)\\s-*=\\s-*Ext\\.extend\\s-*(\\s-*\\(" js--dotted-name-re "\\)") (#$ . 3203))
#@47 Regexp matching a MochiKit class declaration.
(defconst js--mochikit-class-re (concat "^\\s-*MochiKit\\.Base\\.update\\s-*(\\s-*\\(" js--dotted-name-re "\\)") (#$ . 3430))
(defconst js--dummy-class-style '(:name "[Automatically Generated Class]"))
#@774 List of JavaScript class definition styles.
A class definition style is a plist with the following keys:
:name is a human-readable name of the class type
:class-decl is a regular expression giving the start of the
class. Its first group must match the name of its class. If there
is a parent class, the second group should match, and it should be
the name of the class.
If :prototype is present and non-nil, the parser will merge
declarations for this constructs with others at the same lexical
level that have the same name. Otherwise, multiple definitions
will create multiple top-level entries. Don't use :prototype
unnecessarily: it has an associated cost in performance.
If :strip-prototype is present and non-nil, then if the class
name as matched contains
(defconst js--class-styles (byte-code "\306\307\310\311BBBB\306\312\310 \313BBBB\306\314\310\n\315BBBB\306\316\310\317BBBB\306\320\310\f\321BBBB\306\322\310
\323BBBB\306\324\310\325BBBB\306\326\310\327BBBB\306\330\310\331BBBB\306\332\310\333BBBB\257\n\207" [js--plain-class-re js--mochikit-class-re js--prototype-obsolete-class-decl-re js--prototype-class-decl-re js--prototype-objextend-class-decl-re-1 js--prototype-objextend-class-decl-re-2 :name "Plain" :class-decl (:prototype t :contexts (toplevel) :framework javascript) "MochiKit" (:prototype t :contexts (toplevel) :framework mochikit) "Prototype (Obsolete)" (:contexts (toplevel) :framework prototype) "Prototype (Modern)" (:contexts (toplevel) :framework prototype) "Prototype (Object.extend)" (:prototype t :contexts (toplevel) :framework prototype) "Prototype (Object.extend) 2" (:prototype t :contexts (toplevel) :framework prototype) "Dojo" (:contexts (toplevel) :framework dojo) "ExtJS (style 1)" (:prototype t :contexts (toplevel) :framework extjs) "ExtJS (style 2)" (:contexts (toplevel) :framework extjs) "Merrill Press" (:contexts (toplevel) :framework merrillpress) js--dojo-class-decl-re js--extjs-class-decl-re-1 js--extjs-class-decl-re-2 js--mp-class-decl-re] 14) (#$ . 3685))
#@50 List of available JavaScript frameworks symbols.
(defconst js--available-frameworks (byte-code "\301\211\211:\203&