File tree Expand file tree Collapse file tree 1 file changed +52
-0
lines changed Expand file tree Collapse file tree 1 file changed +52
-0
lines changed Original file line number Diff line number Diff line change 1+ function parse ( ) {
2+ let _ = this
3+ var memberNames = [ ]
4+ var objectPrototype = Object . getPrototypeOf ( this )
5+ var propertyNames = Object . getOwnPropertyNames ( this )
6+ var memberNameLookup = { }
7+ for ( let memberName of propertyNames ) {
8+ if ( memberName == "constructor" ) { continue }
9+ memberNameLookup [ memberName . toUpperCase ( memberName ) ] = memberName
10+ }
11+
12+ const parsed = [ ]
13+
14+ const unbound = [ ]
15+
16+ nextArgument: for ( let argNumber = 0 ; argNumber < arguments . length ; argNumber ++ ) {
17+ let arg = arguments [ argNumber ]
18+
19+ if ( typeof ( arg ) == "string" && ! memberNameLookup [ arg . toUpperCase ( ) ] ) {
20+ unbound . push ( arg )
21+ continue nextArgument
22+ }
23+
24+ if ( typeof ( arg ) != "string" ) {
25+ unbound . push ( arg )
26+ continue nextArgument
27+ }
28+
29+ let memberName = arg . toUpperCase ( )
30+ let memberInfo = memberNameLookup [ arg . toUpperCase ( ) ]
31+ let memberArgs = [ ]
32+ lookingForParameters: for (
33+ let memberArgIndex = argNumber + 1 ;
34+ memberArgIndex < arguments . length ;
35+ memberArgIndex ++
36+ ) {
37+ let memberArg = arguments [ memberArgIndex ]
38+ if ( typeof ( memberArg ) == "string" && memberNameLookup [ memberArg . toUpperCase ( ) ] ) {
39+ argNumber = memberArgIndex - 1
40+ break lookingForParameters
41+ }
42+ memberArgs . push ( memberArg )
43+ }
44+
45+ parsed . push ( {
46+ method : memberNameLookup [ memberName ] ,
47+ arguments : memberArgs
48+ } )
49+ }
50+
51+ return parsed
52+ }
You can’t perform that action at this time.
0 commit comments