@@ -153,10 +153,18 @@ public class JSObject: Equatable, ExpressibleByDictionaryLiteral {
153153 public subscript( _ name: String ) -> JSValue {
154154 get {
155155 assertOnOwnerThread ( hint: " reading ' \( name) ' property " )
156+ #if Tracing
157+ let traceEnd = JSTracingHooks . beginJSCall ( . propertyGet( receiver: self , propertyName: name) )
158+ defer { traceEnd ? ( ) }
159+ #endif
156160 return getJSValue ( this: self , name: JSString ( name) )
157161 }
158162 set {
159163 assertOnOwnerThread ( hint: " writing ' \( name) ' property " )
164+ #if Tracing
165+ let traceEnd = JSTracingHooks . beginJSCall ( . propertySet( receiver: self , propertyName: name, value: newValue) )
166+ defer { traceEnd ? ( ) }
167+ #endif
160168 setJSValue ( this: self , name: JSString ( name) , value: newValue)
161169 }
162170 }
@@ -167,10 +175,20 @@ public class JSObject: Equatable, ExpressibleByDictionaryLiteral {
167175 public subscript( _ name: JSString ) -> JSValue {
168176 get {
169177 assertOnOwnerThread ( hint: " reading '<<JSString>>' property " )
178+ #if Tracing
179+ let traceEnd = JSTracingHooks . beginJSCall ( . propertyGet( receiver: self , propertyName: String ( name) ) )
180+ defer { traceEnd ? ( ) }
181+ #endif
170182 return getJSValue ( this: self , name: name)
171183 }
172184 set {
173185 assertOnOwnerThread ( hint: " writing '<<JSString>>' property " )
186+ #if Tracing
187+ let traceEnd = JSTracingHooks . beginJSCall (
188+ . propertySet( receiver: self , propertyName: String ( name) , value: newValue)
189+ )
190+ defer { traceEnd ? ( ) }
191+ #endif
174192 setJSValue ( this: self , name: name, value: newValue)
175193 }
176194 }
@@ -181,10 +199,20 @@ public class JSObject: Equatable, ExpressibleByDictionaryLiteral {
181199 public subscript( _ index: Int ) -> JSValue {
182200 get {
183201 assertOnOwnerThread ( hint: " reading ' \( index) ' property " )
202+ #if Tracing
203+ let traceEnd = JSTracingHooks . beginJSCall ( . propertyGet( receiver: self , propertyName: String ( index) ) )
204+ defer { traceEnd ? ( ) }
205+ #endif
184206 return getJSValue ( this: self , index: Int32 ( index) )
185207 }
186208 set {
187209 assertOnOwnerThread ( hint: " writing ' \( index) ' property " )
210+ #if Tracing
211+ let traceEnd = JSTracingHooks . beginJSCall (
212+ . propertySet( receiver: self , propertyName: String ( index) , value: newValue)
213+ )
214+ defer { traceEnd ? ( ) }
215+ #endif
188216 setJSValue ( this: self , index: Int32 ( index) , value: newValue)
189217 }
190218 }
@@ -195,10 +223,20 @@ public class JSObject: Equatable, ExpressibleByDictionaryLiteral {
195223 public subscript( _ name: JSSymbol ) -> JSValue {
196224 get {
197225 assertOnOwnerThread ( hint: " reading '<<JSSymbol>>' property " )
226+ #if Tracing
227+ let traceEnd = JSTracingHooks . beginJSCall ( . propertyGet( receiver: self , propertyName: " <<JSSymbol>> " ) )
228+ defer { traceEnd ? ( ) }
229+ #endif
198230 return getJSValue ( this: self , symbol: name)
199231 }
200232 set {
201233 assertOnOwnerThread ( hint: " writing '<<JSSymbol>>' property " )
234+ #if Tracing
235+ let traceEnd = JSTracingHooks . beginJSCall (
236+ . propertySet( receiver: self , propertyName: " <<JSSymbol>> " , value: newValue)
237+ )
238+ defer { traceEnd ? ( ) }
239+ #endif
202240 setJSValue ( this: self , symbol: name, value: newValue)
203241 }
204242 }
0 commit comments