Skip to content

Commit ee0d104

Browse files
authored
Merge pull request microsoft#126 from Microsoft/add-this-parameters
Add this parameters
2 parents 7f28527 + 54c9f8f commit ee0d104

File tree

3 files changed

+1997
-1992
lines changed

3 files changed

+1997
-1992
lines changed

TS.fsx

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -243,6 +243,12 @@ let EmitEnums () =
243243
let emitEnum (e: Browser.Enum) = Pt.printl "declare var %s: string;" e.Name
244244
browser.Enums |> Array.iter emitEnum
245245

246+
let EmitEventHandlerThis flavor (prefix: string) =
247+
if prefix = "" then "this: this, "
248+
else match GetGlobalPollutor flavor with
249+
| Some pollutor -> "this: " + pollutor.Name + ", "
250+
| _ -> ""
251+
246252
let EmitProperties flavor prefix (emitScope: EmitScope) (i: Browser.Interface)=
247253
let emitPropertyFromJson (p: ItemsType.Root) =
248254
let readOnlyModifier =
@@ -271,7 +277,7 @@ let EmitProperties flavor prefix (emitScope: EmitScope) (i: Browser.Interface)=
271277
getEventTypeInInterface p.EventHandler.Value i.Name
272278
else
273279
"Event"
274-
String.Format("(ev: {0}) => any", eType)
280+
String.Format("({0}ev: {1}) => any", EmitEventHandlerThis flavor prefix, eType)
275281
| _ -> DomTypeToTsType p.Type
276282
let pTypeAndNull = if p.Nullable.IsSome then makeNullable pType else pType
277283
let readOnlyModifier = if p.ReadOnly.IsSome && prefix = "" then "readonly " else ""
@@ -339,14 +345,13 @@ let rec EmitAllMembers flavor (i:Browser.Interface) =
339345
| Some i' -> EmitAllMembers flavor i'
340346
| _ -> ()
341347

342-
let EmitEventHandlers (prefix: string) (i:Browser.Interface) =
348+
let EmitEventHandlers (flavor: Flavor) (prefix: string) (i:Browser.Interface) =
343349
let emitEventHandler prefix (eHandler: EventHandler) =
344350
let eventType =
345351
getEventTypeInInterface eHandler.EventName i.Name
346-
347352
Pt.printl
348-
"%saddEventListener(type: \"%s\", listener: (ev: %s) => any, useCapture?: boolean): void;"
349-
prefix eHandler.EventName eventType
353+
"%saddEventListener(type: \"%s\", listener: (%sev: %s) => any, useCapture?: boolean): void;"
354+
prefix eHandler.EventName (EmitEventHandlerThis flavor prefix) eventType
350355

351356
let fPrefix = if prefix.StartsWith "declare var" then "declare function " else ""
352357

@@ -516,7 +521,7 @@ let EmitInterface flavor (i:Browser.Interface) =
516521
let prefix = ""
517522
EmitMembers flavor prefix EmitScope.InstanceOnly i
518523
EmitConstants i
519-
EmitEventHandlers prefix i
524+
EmitEventHandlers flavor prefix i
520525
EmitIndexers EmitScope.InstanceOnly i
521526

522527
Pt.decreaseIndent()
@@ -571,7 +576,7 @@ let EmitStaticInterface flavor (i:Browser.Interface) =
571576

572577
let prefix = ""
573578
EmitMembers flavor prefix EmitScope.InstanceOnly i
574-
EmitEventHandlers prefix i
579+
EmitEventHandlers flavor prefix i
575580
EmitIndexers EmitScope.InstanceOnly i
576581

577582
Pt.decreaseIndent()
@@ -594,7 +599,7 @@ let EmitStaticInterface flavor (i:Browser.Interface) =
594599
let prefix = ""
595600
EmitMembers flavor prefix EmitScope.StaticOnly i
596601
EmitConstants i
597-
EmitEventHandlers prefix i
602+
EmitEventHandlers flavor prefix i
598603
EmitIndexers EmitScope.StaticOnly i
599604
emitAddedConstructor ()
600605
Pt.decreaseIndent()
@@ -709,7 +714,7 @@ let EmitTheWholeThing flavor (target:TextWriter) =
709714
match GetGlobalPollutor flavor with
710715
| Some gp ->
711716
EmitAllMembers flavor gp
712-
EmitEventHandlers "declare var " gp
717+
EmitEventHandlers flavor "declare var " gp
713718
| _ -> ()
714719

715720
EmitTypeDefs flavor
@@ -723,4 +728,4 @@ let EmitDomWeb () =
723728

724729
let EmitDomWorker () =
725730
ignoreDOMTypes <- true
726-
EmitTheWholeThing Flavor.Worker GlobalVars.tsWorkerOutput
731+
EmitTheWholeThing Flavor.Worker GlobalVars.tsWorkerOutput

0 commit comments

Comments
 (0)