@tracecode/harness 0.6.5 → 0.7.0-beta7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +55 -0
- package/README.md +134 -15
- package/THIRD_PARTY_NOTICES.md +170 -0
- package/dist/browser.cjs +2361 -1033
- package/dist/browser.cjs.map +1 -1
- package/dist/browser.d.cts +33 -3
- package/dist/browser.d.ts +33 -3
- package/dist/browser.js +2357 -1033
- package/dist/browser.js.map +1 -1
- package/dist/cli.cjs +160 -23
- package/dist/cli.cjs.map +1 -1
- package/dist/cli.js +161 -24
- package/dist/cli.js.map +1 -1
- package/dist/core.cjs +748 -867
- package/dist/core.cjs.map +1 -1
- package/dist/core.d.cts +21 -85
- package/dist/core.d.ts +21 -85
- package/dist/core.js +734 -855
- package/dist/core.js.map +1 -1
- package/dist/cpp-worker-client-Bn7kC0_L.d.ts +84 -0
- package/dist/cpp-worker-client-BzdJLuZa.d.cts +84 -0
- package/dist/cpp.cjs +1063 -0
- package/dist/cpp.cjs.map +1 -0
- package/dist/cpp.d.cts +7 -0
- package/dist/cpp.d.ts +7 -0
- package/dist/cpp.js +1035 -0
- package/dist/cpp.js.map +1 -0
- package/dist/csharp-worker-client-DMHIa2YG.d.cts +69 -0
- package/dist/csharp-worker-client-JwqS6LiX.d.ts +69 -0
- package/dist/csharp.cjs +1012 -0
- package/dist/csharp.cjs.map +1 -0
- package/dist/csharp.d.cts +7 -0
- package/dist/csharp.d.ts +7 -0
- package/dist/csharp.js +984 -0
- package/dist/csharp.js.map +1 -0
- package/dist/index.cjs +3142 -1160
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +13 -5
- package/dist/index.d.ts +13 -5
- package/dist/index.js +3117 -1148
- package/dist/index.js.map +1 -1
- package/dist/internal/browser.cjs +1639 -30
- package/dist/internal/browser.cjs.map +1 -1
- package/dist/internal/browser.d.cts +6 -199
- package/dist/internal/browser.d.ts +6 -199
- package/dist/internal/browser.js +1636 -30
- package/dist/internal/browser.js.map +1 -1
- package/dist/java-worker-client-BOwKW-11.d.cts +72 -0
- package/dist/java-worker-client-C97DDnCp.d.ts +72 -0
- package/dist/java.cjs +1225 -0
- package/dist/java.cjs.map +1 -0
- package/dist/java.d.cts +7 -0
- package/dist/java.d.ts +7 -0
- package/dist/java.js +1197 -0
- package/dist/java.js.map +1 -0
- package/dist/javascript-worker-client-CYBGEEvc.d.cts +51 -0
- package/dist/javascript-worker-client-DIX1Mp21.d.ts +51 -0
- package/dist/javascript.cjs +1063 -19
- package/dist/javascript.cjs.map +1 -1
- package/dist/javascript.d.cts +7 -4
- package/dist/javascript.d.ts +7 -4
- package/dist/javascript.js +1061 -19
- package/dist/javascript.js.map +1 -1
- package/dist/pyodide-worker-client-C-2rfHj9.d.ts +111 -0
- package/dist/pyodide-worker-client-Cn0a8Uv3.d.cts +111 -0
- package/dist/python.cjs +1282 -74
- package/dist/python.cjs.map +1 -1
- package/dist/python.d.cts +20 -14
- package/dist/python.d.ts +20 -14
- package/dist/python.js +1279 -74
- package/dist/python.js.map +1 -1
- package/dist/runtime-language-info-BFUSti3-.d.ts +43 -0
- package/dist/runtime-language-info-Bxza1cI2.d.cts +43 -0
- package/dist/runtime-types-2qM0MukN.d.cts +244 -0
- package/dist/runtime-types-2qM0MukN.d.ts +244 -0
- package/package.json +73 -8
- package/workers/cpp/cpp-compiler-frame.html +82 -0
- package/workers/cpp/cpp-compiler-worker.js +131 -0
- package/workers/cpp/cpp-worker.js +5790 -0
- package/workers/cpp/tracecode_runtime.hpp +6147 -0
- package/workers/csharp/csharp-worker.js +301 -0
- package/workers/java/.build/classes/harness/browser/JavaRewriteLibrary.class +0 -0
- package/workers/java/java-source-augmentations.js +880 -0
- package/workers/java/java-worker.js +2256 -170
- package/workers/java/src/harness/browser/JavaRewriteLibrary.java +1645 -32
- package/workers/java/src/javafx/util/Pair.java +42 -0
- package/workers/java/src/tracecode/browser/BrowserCompileAndTraceLibrary.java +714 -0
- package/workers/java/src/tracecode/browser/BrowserCompileAndTraceMain.java +76 -0
- package/workers/java/src/tracecode/browser/RuntimeProbeMain.java +14 -0
- package/workers/java/src/tracecode/user/TraceHooks.java +1406 -0
- package/workers/javascript/javascript-libraries-entry.js +71 -0
- package/workers/javascript/javascript-worker.js +2054 -424
- package/workers/python/generated-python-harness-snippets.js +4 -4
- package/workers/python/pyodide-worker.js +222 -61
- package/workers/python/runtime-core.js +1387 -301
- package/workers/vendor/csharp/.stamp +0 -0
- package/workers/vendor/csharp/TraceCode.CSharpHost.runtimeconfig.json +32 -0
- package/workers/vendor/csharp/_framework/Microsoft.CSharp.wasm +0 -0
- package/workers/vendor/csharp/_framework/Microsoft.CodeAnalysis.CSharp.wasm +0 -0
- package/workers/vendor/csharp/_framework/Microsoft.CodeAnalysis.wasm +0 -0
- package/workers/vendor/csharp/_framework/Microsoft.VisualBasic.Core.wasm +0 -0
- package/workers/vendor/csharp/_framework/Microsoft.VisualBasic.wasm +0 -0
- package/workers/vendor/csharp/_framework/Microsoft.Win32.Primitives.wasm +0 -0
- package/workers/vendor/csharp/_framework/Microsoft.Win32.Registry.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.AppContext.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Buffers.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Collections.Concurrent.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Collections.Immutable.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Collections.NonGeneric.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Collections.Specialized.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Collections.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.ComponentModel.Annotations.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.ComponentModel.DataAnnotations.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.ComponentModel.EventBasedAsync.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.ComponentModel.Primitives.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.ComponentModel.TypeConverter.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.ComponentModel.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Configuration.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Console.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Core.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Data.Common.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Data.DataSetExtensions.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Data.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Diagnostics.Contracts.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Diagnostics.Debug.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Diagnostics.DiagnosticSource.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Diagnostics.FileVersionInfo.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Diagnostics.Process.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Diagnostics.StackTrace.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Diagnostics.TextWriterTraceListener.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Diagnostics.Tools.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Diagnostics.TraceSource.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Diagnostics.Tracing.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Drawing.Primitives.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Drawing.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Dynamic.Runtime.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Formats.Asn1.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Formats.Tar.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Globalization.Calendars.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Globalization.Extensions.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Globalization.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.IO.Compression.Brotli.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.IO.Compression.FileSystem.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.IO.Compression.ZipFile.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.IO.Compression.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.IO.FileSystem.AccessControl.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.IO.FileSystem.DriveInfo.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.IO.FileSystem.Primitives.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.IO.FileSystem.Watcher.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.IO.FileSystem.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.IO.IsolatedStorage.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.IO.MemoryMappedFiles.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.IO.Pipelines.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.IO.Pipes.AccessControl.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.IO.Pipes.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.IO.UnmanagedMemoryStream.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.IO.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Linq.AsyncEnumerable.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Linq.Expressions.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Linq.Parallel.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Linq.Queryable.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Linq.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Memory.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Net.Http.Json.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Net.Http.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Net.HttpListener.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Net.Mail.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Net.NameResolution.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Net.NetworkInformation.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Net.Ping.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Net.Primitives.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Net.Quic.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Net.Requests.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Net.Security.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Net.ServerSentEvents.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Net.ServicePoint.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Net.Sockets.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Net.WebClient.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Net.WebHeaderCollection.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Net.WebProxy.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Net.WebSockets.Client.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Net.WebSockets.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Net.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Numerics.Vectors.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Numerics.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.ObjectModel.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Private.CoreLib.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Private.DataContractSerialization.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Private.Uri.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Private.Xml.Linq.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Private.Xml.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Reflection.DispatchProxy.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Reflection.Emit.ILGeneration.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Reflection.Emit.Lightweight.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Reflection.Emit.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Reflection.Extensions.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Reflection.Metadata.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Reflection.Primitives.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Reflection.TypeExtensions.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Reflection.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Resources.Reader.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Resources.ResourceManager.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Resources.Writer.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Runtime.CompilerServices.Unsafe.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Runtime.CompilerServices.VisualC.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Runtime.Extensions.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Runtime.Handles.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Runtime.InteropServices.JavaScript.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Runtime.InteropServices.RuntimeInformation.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Runtime.InteropServices.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Runtime.Intrinsics.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Runtime.Loader.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Runtime.Numerics.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Runtime.Serialization.Formatters.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Runtime.Serialization.Json.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Runtime.Serialization.Primitives.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Runtime.Serialization.Xml.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Runtime.Serialization.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Runtime.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Security.AccessControl.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Security.Claims.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Security.Cryptography.Algorithms.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Security.Cryptography.Cng.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Security.Cryptography.Csp.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Security.Cryptography.Encoding.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Security.Cryptography.OpenSsl.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Security.Cryptography.Primitives.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Security.Cryptography.X509Certificates.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Security.Cryptography.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Security.Principal.Windows.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Security.Principal.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Security.SecureString.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Security.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.ServiceModel.Web.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.ServiceProcess.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Text.Encoding.CodePages.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Text.Encoding.Extensions.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Text.Encoding.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Text.Encodings.Web.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Text.Json.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Text.RegularExpressions.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Threading.AccessControl.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Threading.Channels.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Threading.Overlapped.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Threading.Tasks.Dataflow.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Threading.Tasks.Extensions.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Threading.Tasks.Parallel.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Threading.Tasks.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Threading.Thread.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Threading.ThreadPool.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Threading.Timer.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Threading.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Transactions.Local.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Transactions.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.ValueTuple.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Web.HttpUtility.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Web.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Windows.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Xml.Linq.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Xml.ReaderWriter.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Xml.Serialization.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Xml.XDocument.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Xml.XPath.XDocument.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Xml.XPath.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Xml.XmlDocument.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Xml.XmlSerializer.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.Xml.wasm +0 -0
- package/workers/vendor/csharp/_framework/System.wasm +0 -0
- package/workers/vendor/csharp/_framework/TraceCode.CSharpHost.wasm +0 -0
- package/workers/vendor/csharp/_framework/WindowsBase.wasm +0 -0
- package/workers/vendor/csharp/_framework/cs/Microsoft.CodeAnalysis.CSharp.resources.wasm +0 -0
- package/workers/vendor/csharp/_framework/cs/Microsoft.CodeAnalysis.resources.wasm +0 -0
- package/workers/vendor/csharp/_framework/de/Microsoft.CodeAnalysis.CSharp.resources.wasm +0 -0
- package/workers/vendor/csharp/_framework/de/Microsoft.CodeAnalysis.resources.wasm +0 -0
- package/workers/vendor/csharp/_framework/dotnet.boot.js +1958 -0
- package/workers/vendor/csharp/_framework/dotnet.js +4 -0
- package/workers/vendor/csharp/_framework/dotnet.js.map +1 -0
- package/workers/vendor/csharp/_framework/dotnet.native.js +6687 -0
- package/workers/vendor/csharp/_framework/dotnet.native.wasm +0 -0
- package/workers/vendor/csharp/_framework/dotnet.runtime.js +4 -0
- package/workers/vendor/csharp/_framework/dotnet.runtime.js.map +1 -0
- package/workers/vendor/csharp/_framework/es/Microsoft.CodeAnalysis.CSharp.resources.wasm +0 -0
- package/workers/vendor/csharp/_framework/es/Microsoft.CodeAnalysis.resources.wasm +0 -0
- package/workers/vendor/csharp/_framework/fr/Microsoft.CodeAnalysis.CSharp.resources.wasm +0 -0
- package/workers/vendor/csharp/_framework/fr/Microsoft.CodeAnalysis.resources.wasm +0 -0
- package/workers/vendor/csharp/_framework/it/Microsoft.CodeAnalysis.CSharp.resources.wasm +0 -0
- package/workers/vendor/csharp/_framework/it/Microsoft.CodeAnalysis.resources.wasm +0 -0
- package/workers/vendor/csharp/_framework/ja/Microsoft.CodeAnalysis.CSharp.resources.wasm +0 -0
- package/workers/vendor/csharp/_framework/ja/Microsoft.CodeAnalysis.resources.wasm +0 -0
- package/workers/vendor/csharp/_framework/ko/Microsoft.CodeAnalysis.CSharp.resources.wasm +0 -0
- package/workers/vendor/csharp/_framework/ko/Microsoft.CodeAnalysis.resources.wasm +0 -0
- package/workers/vendor/csharp/_framework/mscorlib.wasm +0 -0
- package/workers/vendor/csharp/_framework/netstandard.wasm +0 -0
- package/workers/vendor/csharp/_framework/pl/Microsoft.CodeAnalysis.CSharp.resources.wasm +0 -0
- package/workers/vendor/csharp/_framework/pl/Microsoft.CodeAnalysis.resources.wasm +0 -0
- package/workers/vendor/csharp/_framework/pt-BR/Microsoft.CodeAnalysis.CSharp.resources.wasm +0 -0
- package/workers/vendor/csharp/_framework/pt-BR/Microsoft.CodeAnalysis.resources.wasm +0 -0
- package/workers/vendor/csharp/_framework/ru/Microsoft.CodeAnalysis.CSharp.resources.wasm +0 -0
- package/workers/vendor/csharp/_framework/ru/Microsoft.CodeAnalysis.resources.wasm +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/0_Microsoft.CodeAnalysis.CSharp.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/100_System.Reflection.Emit.ILGeneration.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/101_System.Reflection.Emit.Lightweight.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/102_System.Reflection.Extensions.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/103_System.Reflection.Metadata.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/104_System.Reflection.Primitives.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/105_System.Reflection.TypeExtensions.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/106_System.Resources.Reader.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/107_System.Resources.ResourceManager.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/108_System.Resources.Writer.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/109_System.Runtime.CompilerServices.Unsafe.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/10_System.Buffers.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/110_System.Runtime.CompilerServices.VisualC.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/111_System.Runtime.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/112_System.Runtime.Extensions.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/113_System.Runtime.Handles.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/114_System.Runtime.InteropServices.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/115_System.Runtime.InteropServices.JavaScript.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/116_System.Runtime.InteropServices.RuntimeInformation.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/117_System.Runtime.Intrinsics.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/118_System.Runtime.Loader.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/119_System.Runtime.Numerics.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/11_System.Collections.Concurrent.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/120_System.Runtime.Serialization.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/121_System.Runtime.Serialization.Formatters.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/122_System.Runtime.Serialization.Json.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/123_System.Runtime.Serialization.Primitives.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/124_System.Runtime.Serialization.Xml.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/125_System.Security.AccessControl.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/126_System.Security.Claims.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/127_System.Security.Cryptography.Algorithms.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/128_System.Security.Cryptography.Cng.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/129_System.Security.Cryptography.Csp.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/12_System.Collections.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/130_System.Security.Cryptography.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/131_System.Security.Cryptography.Encoding.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/132_System.Security.Cryptography.OpenSsl.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/133_System.Security.Cryptography.Primitives.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/134_System.Security.Cryptography.X509Certificates.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/135_System.Security.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/136_System.Security.Principal.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/137_System.Security.Principal.Windows.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/138_System.Security.SecureString.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/139_System.ServiceModel.Web.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/13_System.Collections.Immutable.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/140_System.ServiceProcess.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/141_System.Text.Encoding.CodePages.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/142_System.Text.Encoding.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/143_System.Text.Encoding.Extensions.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/144_System.Text.Encodings.Web.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/145_System.Text.Json.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/146_System.Text.RegularExpressions.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/147_System.Threading.AccessControl.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/148_System.Threading.Channels.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/149_System.Threading.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/14_System.Collections.NonGeneric.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/150_System.Threading.Overlapped.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/151_System.Threading.Tasks.Dataflow.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/152_System.Threading.Tasks.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/153_System.Threading.Tasks.Extensions.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/154_System.Threading.Tasks.Parallel.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/155_System.Threading.Thread.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/156_System.Threading.ThreadPool.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/157_System.Threading.Timer.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/158_System.Transactions.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/159_System.Transactions.Local.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/15_System.Collections.Specialized.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/160_System.ValueTuple.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/161_System.Web.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/162_System.Web.HttpUtility.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/163_System.Windows.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/164_System.Xml.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/165_System.Xml.Linq.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/166_System.Xml.ReaderWriter.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/167_System.Xml.Serialization.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/168_System.Xml.XDocument.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/169_System.Xml.XmlDocument.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/16_System.ComponentModel.Annotations.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/170_System.Xml.XmlSerializer.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/171_System.Xml.XPath.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/172_System.Xml.XPath.XDocument.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/173_TraceCode.CSharpHost.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/174_WindowsBase.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/17_System.ComponentModel.DataAnnotations.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/18_System.ComponentModel.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/19_System.ComponentModel.EventBasedAsync.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/1_Microsoft.CodeAnalysis.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/20_System.ComponentModel.Primitives.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/21_System.ComponentModel.TypeConverter.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/22_System.Configuration.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/23_System.Console.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/24_System.Core.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/25_System.Data.Common.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/26_System.Data.DataSetExtensions.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/27_System.Data.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/28_System.Diagnostics.Contracts.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/29_System.Diagnostics.Debug.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/2_Microsoft.CSharp.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/30_System.Diagnostics.DiagnosticSource.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/31_System.Diagnostics.FileVersionInfo.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/32_System.Diagnostics.Process.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/33_System.Diagnostics.StackTrace.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/34_System.Diagnostics.TextWriterTraceListener.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/35_System.Diagnostics.Tools.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/36_System.Diagnostics.TraceSource.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/37_System.Diagnostics.Tracing.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/38_System.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/39_System.Drawing.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/3_Microsoft.VisualBasic.Core.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/40_System.Drawing.Primitives.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/41_System.Dynamic.Runtime.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/42_System.Formats.Asn1.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/43_System.Formats.Tar.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/44_System.Globalization.Calendars.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/45_System.Globalization.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/46_System.Globalization.Extensions.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/47_System.IO.Compression.Brotli.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/48_System.IO.Compression.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/49_System.IO.Compression.FileSystem.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/4_Microsoft.VisualBasic.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/50_System.IO.Compression.ZipFile.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/51_System.IO.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/52_System.IO.FileSystem.AccessControl.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/53_System.IO.FileSystem.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/54_System.IO.FileSystem.DriveInfo.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/55_System.IO.FileSystem.Primitives.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/56_System.IO.FileSystem.Watcher.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/57_System.IO.IsolatedStorage.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/58_System.IO.MemoryMappedFiles.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/59_System.IO.Pipelines.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/5_Microsoft.Win32.Primitives.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/60_System.IO.Pipes.AccessControl.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/61_System.IO.Pipes.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/62_System.IO.UnmanagedMemoryStream.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/63_System.Linq.AsyncEnumerable.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/64_System.Linq.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/65_System.Linq.Expressions.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/66_System.Linq.Parallel.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/67_System.Linq.Queryable.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/68_System.Memory.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/69_System.Net.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/6_Microsoft.Win32.Registry.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/70_System.Net.Http.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/71_System.Net.Http.Json.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/72_System.Net.HttpListener.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/73_System.Net.Mail.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/74_System.Net.NameResolution.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/75_System.Net.NetworkInformation.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/76_System.Net.Ping.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/77_System.Net.Primitives.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/78_System.Net.Quic.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/79_System.Net.Requests.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/7_mscorlib.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/80_System.Net.Security.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/81_System.Net.ServerSentEvents.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/82_System.Net.ServicePoint.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/83_System.Net.Sockets.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/84_System.Net.WebClient.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/85_System.Net.WebHeaderCollection.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/86_System.Net.WebProxy.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/87_System.Net.WebSockets.Client.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/88_System.Net.WebSockets.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/89_System.Numerics.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/8_netstandard.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/90_System.Numerics.Vectors.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/91_System.ObjectModel.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/92_System.Private.CoreLib.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/93_System.Private.DataContractSerialization.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/94_System.Private.Uri.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/95_System.Private.Xml.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/96_System.Private.Xml.Linq.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/97_System.Reflection.DispatchProxy.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/98_System.Reflection.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/99_System.Reflection.Emit.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/9_System.AppContext.dll +0 -0
- package/workers/vendor/csharp/_framework/tr/Microsoft.CodeAnalysis.CSharp.resources.wasm +0 -0
- package/workers/vendor/csharp/_framework/tr/Microsoft.CodeAnalysis.resources.wasm +0 -0
- package/workers/vendor/csharp/_framework/zh-Hans/Microsoft.CodeAnalysis.CSharp.resources.wasm +0 -0
- package/workers/vendor/csharp/_framework/zh-Hans/Microsoft.CodeAnalysis.resources.wasm +0 -0
- package/workers/vendor/csharp/_framework/zh-Hant/Microsoft.CodeAnalysis.CSharp.resources.wasm +0 -0
- package/workers/vendor/csharp/_framework/zh-Hant/Microsoft.CodeAnalysis.resources.wasm +0 -0
- package/workers/vendor/csharp/main.mjs +5 -0
- package/workers/vendor/csharp/package.json +1 -0
- package/workers/vendor/java-browser-helper.jar +0 -0
- package/workers/vendor/java-rewriter.jar +0 -0
- package/workers/vendor/javascript-libraries.js +10106 -0
- package/dist/runtime-types-89nchXlY.d.cts +0 -89
- package/dist/runtime-types-CCQ-ZLc9.d.ts +0 -89
- package/dist/types-zyvpJKCi.d.cts +0 -100
- package/dist/types-zyvpJKCi.d.ts +0 -100
- package/workers/java/java-source-augmentations.cjs +0 -242
- package/workers/java/src/spike/user/TraceHooks.java +0 -619
- package/workers/vendor/java-browser-spike-helper.jar +0 -0
- package/workers/vendor/java-practice-rewriter.jar +0 -0
- package/workers/vendor/java-rewrite-bridge.jar +0 -0
|
@@ -10,10 +10,10 @@
|
|
|
10
10
|
|
|
11
11
|
scope.__TRACECODE_PYTHON_HARNESS__ = Object.freeze({
|
|
12
12
|
PYTHON_CLASS_DEFINITIONS: "\nclass TreeNode:\n def __init__(self, val=0, left=None, right=None):\n self.val = val\n self.value = val\n self.left = left\n self.right = right\n def __getitem__(self, key):\n if key == 'val': return getattr(self, 'val', getattr(self, 'value', None))\n if key == 'value': return getattr(self, 'value', getattr(self, 'val', None))\n if key == 'left': return self.left\n if key == 'right': return self.right\n raise KeyError(key)\n def get(self, key, default=None):\n if key == 'val': return getattr(self, 'val', getattr(self, 'value', default))\n if key == 'value': return getattr(self, 'value', getattr(self, 'val', default))\n if key == 'left': return self.left\n if key == 'right': return self.right\n return default\n def __repr__(self):\n return f\"TreeNode({getattr(self, 'val', getattr(self, 'value', None))})\"\n\nclass ListNode:\n def __init__(self, val=0, next=None):\n self.val = val\n self.value = val\n self.next = next\n def __getitem__(self, key):\n if key == 'val': return getattr(self, 'val', getattr(self, 'value', None))\n if key == 'value': return getattr(self, 'value', getattr(self, 'val', None))\n if key == 'next': return self.next\n raise KeyError(key)\n def get(self, key, default=None):\n if key == 'val': return getattr(self, 'val', getattr(self, 'value', default))\n if key == 'value': return getattr(self, 'value', getattr(self, 'val', default))\n if key == 'next': return self.next\n return default\n def __repr__(self):\n return f\"ListNode({getattr(self, 'val', getattr(self, 'value', None))})\"\n",
|
|
13
|
-
PYTHON_CONVERSION_HELPERS: "\ndef _ensure_node_value_aliases(node):\n if node is None:\n return node\n try:\n has_val = hasattr(node, 'val')\n has_value = hasattr(node, 'value')\n if has_value and not has_val:\n try:\n setattr(node, 'val', getattr(node, 'value'))\n except Exception:\n pass\n elif has_val and not has_value:\n try:\n setattr(node, 'value', getattr(node, 'val'))\n except Exception:\n pass\n except Exception:\n pass\n return node\n\ndef _dict_to_tree(d):\n if d is None:\n return None\n if not isinstance(d, dict):\n return d\n if 'val' not in d and 'value' not in d:\n return d\n node = TreeNode(d.get('val', d.get('value', 0)))\n _ensure_node_value_aliases(node)\n node.left = _dict_to_tree(d.get('left'))\n node.right = _dict_to_tree(d.get('right'))\n return node\n\ndef _dict_to_list(d, _refs=None):\n if _refs is None:\n _refs = {}\n if d is None:\n return None\n if not isinstance(d, dict):\n return d\n if '__ref__' in d:\n return _refs.get(d.get('__ref__'))\n if 'val' not in d and 'value' not in d:\n return d\n node = ListNode(d.get('val', d.get('value', 0)))\n _ensure_node_value_aliases(node)\n node_id = d.get('__id__')\n if isinstance(node_id, str) and node_id:\n _refs[node_id] = node\n node.next = _dict_to_list(d.get('next'), _refs)\n return node\n",
|
|
14
|
-
PYTHON_TRACE_SERIALIZE_FUNCTION: "\n# Sentinel to mark skipped values (functions, etc.) - distinct from None\n_SKIP_SENTINEL = \"__TRACECODE_SKIP__\"\n_MAX_SERIALIZE_DEPTH = 48\n_MAX_OBJECT_FIELDS = 32\n\ndef _serialize(obj, depth=0, node_refs=None):\n if node_refs is None:\n node_refs = {}\n if isinstance(obj, (bool, int, str, type(None))):\n return obj\n elif isinstance(obj, float):\n if not math.isfinite(obj):\n if math.isnan(obj):\n return \"NaN\"\n return \"Infinity\" if obj > 0 else \"-Infinity\"\n return obj\n if depth > _MAX_SERIALIZE_DEPTH:\n return \"<max depth>\"\n elif isinstance(obj, (list, tuple)):\n return
|
|
15
|
-
PYTHON_EXECUTE_SERIALIZE_FUNCTION: "\n_MAX_SERIALIZE_DEPTH = 48\n\ndef _serialize(obj, depth=0):\n if isinstance(obj, (bool, int, str, type(None))):\n return obj\n elif isinstance(obj, float):\n if not math.isfinite(obj):\n if math.isnan(obj):\n return \"NaN\"\n return \"Infinity\" if obj > 0 else \"-Infinity\"\n return obj\n if depth > _MAX_SERIALIZE_DEPTH:\n return \"<max depth>\"\n elif isinstance(obj, (list, tuple)):\n return [_serialize(x, depth + 1) for x in obj]\n elif getattr(obj, '__class__', None) and getattr(obj.__class__, '__name__', '') == 'deque':\n return [_serialize(x, depth + 1) for x in obj]\n elif isinstance(obj, dict):\n return {str(k): _serialize(v, depth + 1) for k, v in obj.items()}\n elif isinstance(obj, set):\n try:\n return {\"__type__\": \"set\", \"values\": sorted([_serialize(x, depth + 1) for x in obj])}\n except TypeError:\n return {\"__type__\": \"set\", \"values\": [_serialize(x, depth + 1) for x in obj]}\n elif isinstance(obj, TreeNode):\n result = {\"__type__\": \"TreeNode\", \"val\": _serialize(getattr(obj, 'val', getattr(obj, 'value', None)), depth + 1)}\n if hasattr(obj, 'left'):\n result[\"left\"] = _serialize(obj.left, depth + 1)\n if hasattr(obj, 'right'):\n result[\"right\"] = _serialize(obj.right, depth + 1)\n return result\n elif isinstance(obj, ListNode):\n result = {\"__type__\": \"ListNode\", \"val\": _serialize(getattr(obj, 'val', getattr(obj, 'value', None)), depth + 1)}\n result[\"next\"] = _serialize(obj.next, depth + 1)\n return result\n elif callable(obj):\n return None\n else:\n repr_str = repr(obj)\n if repr_str.startswith('<') and repr_str.endswith('>'):\n return None\n return repr_str\n",
|
|
16
|
-
PYTHON_SERIALIZE_FUNCTION: "\n_MAX_SERIALIZE_DEPTH = 48\n\ndef _serialize(obj, depth=0):\n if isinstance(obj, (bool, int, str, type(None))):\n return obj\n elif isinstance(obj, float):\n if not math.isfinite(obj):\n if math.isnan(obj):\n return \"NaN\"\n return \"Infinity\" if obj > 0 else \"-Infinity\"\n return obj\n if depth > _MAX_SERIALIZE_DEPTH:\n return \"<max depth>\"\n elif isinstance(obj, (list, tuple)):\n return [_serialize(x, depth + 1) for x in obj]\n elif getattr(obj, '__class__', None) and getattr(obj.__class__, '__name__', '') == 'deque':\n return [_serialize(x, depth + 1) for x in obj]\n elif isinstance(obj, dict):\n return {str(k): _serialize(v, depth + 1) for k, v in obj.items()}\n elif isinstance(obj, set):\n try:\n return {\"__type__\": \"set\", \"values\": sorted([_serialize(x, depth + 1) for x in obj])}\n except TypeError:\n return {\"__type__\": \"set\", \"values\": [_serialize(x, depth + 1) for x in obj]}\n elif isinstance(obj, TreeNode):\n result = {\"__type__\": \"TreeNode\", \"val\": _serialize(getattr(obj, 'val', getattr(obj, 'value', None)), depth + 1)}\n if hasattr(obj, 'left'):\n result[\"left\"] = _serialize(obj.left, depth + 1)\n if hasattr(obj, 'right'):\n result[\"right\"] = _serialize(obj.right, depth + 1)\n return result\n elif isinstance(obj, ListNode):\n result = {\"__type__\": \"ListNode\", \"val\": _serialize(getattr(obj, 'val', getattr(obj, 'value', None)), depth + 1)}\n result[\"next\"] = _serialize(obj.next, depth + 1)\n return result\n elif callable(obj):\n return None\n else:\n repr_str = repr(obj)\n if repr_str.startswith('<') and repr_str.endswith('>'):\n return None\n return repr_str\n",
|
|
13
|
+
PYTHON_CONVERSION_HELPERS: "\ndef _ensure_node_value_aliases(node):\n if node is None:\n return node\n try:\n has_val = hasattr(node, 'val')\n has_value = hasattr(node, 'value')\n if has_value and not has_val:\n try:\n setattr(node, 'val', getattr(node, 'value'))\n except Exception:\n pass\n elif has_val and not has_value:\n try:\n setattr(node, 'value', getattr(node, 'val'))\n except Exception:\n pass\n except Exception:\n pass\n return node\n\ndef _dict_to_tree(d):\n if d is None:\n return None\n if not isinstance(d, _builtins.dict):\n return d\n if 'val' not in d and 'value' not in d:\n return d\n node = TreeNode(d.get('val', d.get('value', 0)))\n _ensure_node_value_aliases(node)\n node.left = _dict_to_tree(d.get('left'))\n node.right = _dict_to_tree(d.get('right'))\n return node\n\ndef _dict_to_list(d, _refs=None):\n if _refs is None:\n _refs = {}\n if d is None:\n return None\n if not isinstance(d, _builtins.dict):\n return d\n if '__ref__' in d:\n return _refs.get(d.get('__ref__'))\n if 'val' not in d and 'value' not in d:\n return d\n node = ListNode(d.get('val', d.get('value', 0)))\n _ensure_node_value_aliases(node)\n node_id = d.get('__id__')\n if isinstance(node_id, _builtins.str) and node_id:\n _refs[node_id] = node\n node.next = _dict_to_list(d.get('next'), _refs)\n return node\n",
|
|
14
|
+
PYTHON_TRACE_SERIALIZE_FUNCTION: "\n# Sentinel to mark skipped values (functions, etc.) - distinct from None\n_SKIP_SENTINEL = \"__TRACECODE_SKIP__\"\n_MAX_SERIALIZE_DEPTH = 48\n_MAX_SERIALIZED_ITEMS = 64\n_MAX_OBJECT_FIELDS = 32\n_tracecode_global_object_refs = {}\n_tracecode_next_object_ref_id = 0\n\ndef _tracecode_ref_id(obj_ref, node_refs):\n global _tracecode_next_object_ref_id\n if obj_ref in node_refs:\n return node_refs[obj_ref]\n if obj_ref in _tracecode_global_object_refs:\n node_id = _tracecode_global_object_refs[obj_ref]\n else:\n node_id = f\"ref-{_tracecode_next_object_ref_id}\"\n _tracecode_global_object_refs[obj_ref] = node_id\n _tracecode_next_object_ref_id += 1\n node_refs[obj_ref] = node_id\n return node_id\n\ndef _truncation_marker(total, emitted):\n return {\"__truncated__\": True, \"remaining\": max(0, total - emitted)}\n\ndef _serialize_sequence(values, depth, node_refs):\n values_list = _builtins.list(values)\n emitted = min(len(values_list), _MAX_SERIALIZED_ITEMS)\n result = [_serialize(x, depth + 1, node_refs) for x in values_list[:emitted]]\n if emitted < len(values_list):\n result.append(_truncation_marker(len(values_list), emitted))\n return result\n\ndef _serialize(obj, depth=0, node_refs=None):\n if node_refs is None:\n node_refs = {}\n if isinstance(obj, (bool, int, str, type(None))):\n return obj\n elif isinstance(obj, float):\n if not math.isfinite(obj):\n if math.isnan(obj):\n return \"NaN\"\n return \"Infinity\" if obj > 0 else \"-Infinity\"\n return obj\n if depth > _MAX_SERIALIZE_DEPTH:\n return \"<max depth>\"\n elif isinstance(obj, (_builtins.list, _builtins.tuple)):\n return _serialize_sequence(obj, depth, node_refs)\n elif getattr(obj, '__class__', None) and getattr(obj.__class__, '__name__', '') == 'deque':\n return _serialize_sequence(obj, depth, node_refs)\n elif isinstance(obj, _builtins.dict):\n items = _builtins.list(obj.items())\n emitted = min(len(items), _MAX_SERIALIZED_ITEMS)\n result = {str(k): _serialize(v, depth + 1, node_refs) for k, v in items[:emitted]}\n if emitted < len(items):\n result[\"__truncated__\"] = True\n result[\"remaining\"] = len(items) - emitted\n return result\n elif isinstance(obj, set):\n # Use try/except for sorting to handle heterogeneous sets\n values = _builtins.list(obj)\n emitted = min(len(values), _MAX_SERIALIZED_ITEMS)\n try:\n sorted_vals = sorted([_serialize(x, depth + 1, node_refs) for x in values[:emitted]])\n except TypeError:\n sorted_vals = [_serialize(x, depth + 1, node_refs) for x in values[:emitted]]\n result = {\"__type__\": \"set\", \"values\": sorted_vals}\n if emitted < len(values):\n result[\"__truncated__\"] = True\n result[\"remaining\"] = len(values) - emitted\n return result\n elif isinstance(obj, TreeNode):\n obj_ref = _builtins.id(obj)\n if obj_ref in node_refs:\n return {\"__ref__\": node_refs[obj_ref]}\n node_id = _tracecode_ref_id(obj_ref, node_refs)\n result = {\n \"__type__\": \"TreeNode\",\n \"__id__\": node_id,\n \"val\": _serialize(getattr(obj, 'val', getattr(obj, 'value', None)), depth + 1, node_refs),\n }\n if hasattr(obj, 'left'):\n result[\"left\"] = _serialize(obj.left, depth + 1, node_refs)\n if hasattr(obj, 'right'):\n result[\"right\"] = _serialize(obj.right, depth + 1, node_refs)\n return result\n elif isinstance(obj, ListNode):\n obj_ref = _builtins.id(obj)\n if obj_ref in node_refs:\n return {\"__ref__\": node_refs[obj_ref]}\n node_id = _tracecode_ref_id(obj_ref, node_refs)\n result = {\n \"__type__\": \"ListNode\",\n \"__id__\": node_id,\n \"val\": _serialize(getattr(obj, 'val', getattr(obj, 'value', None)), depth + 1, node_refs),\n }\n result[\"next\"] = _serialize(obj.next, depth + 1, node_refs)\n return result\n elif callable(obj):\n # Skip functions entirely - return sentinel\n return _SKIP_SENTINEL\n elif hasattr(obj, '__dict__'):\n obj_ref = _builtins.id(obj)\n if obj_ref in node_refs:\n return {\"__ref__\": node_refs[obj_ref]}\n node_id = _tracecode_ref_id(obj_ref, node_refs)\n class_name = getattr(getattr(obj, '__class__', None), '__name__', 'object')\n result = {\n \"__type__\": class_name,\n \"__class__\": class_name,\n \"__id__\": node_id,\n }\n try:\n raw_fields = getattr(obj, '__dict__', None)\n except Exception:\n raw_fields = None\n if isinstance(raw_fields, _builtins.dict):\n fields = []\n for key, value in raw_fields.items():\n key_str = str(key)\n if key_str.startswith('_'):\n continue\n if callable(value):\n continue\n fields.append((key_str, value))\n for key_str, value in fields[:_MAX_OBJECT_FIELDS]:\n result[key_str] = _serialize(value, depth + 1, node_refs)\n if len(fields) > _MAX_OBJECT_FIELDS:\n result[\"__truncated__\"] = True\n result[\"remaining\"] = len(fields) - _MAX_OBJECT_FIELDS\n return result\n else:\n repr_str = repr(obj)\n # Filter out function-like representations (e.g., <function foo at 0x...>)\n if repr_str.startswith('<') and repr_str.endswith('>'):\n return _SKIP_SENTINEL\n return repr_str\n\ndef _serialize_output(obj, depth=0, node_refs=None):\n if node_refs is None:\n node_refs = {}\n if isinstance(obj, (bool, int, str, type(None))):\n return obj\n elif isinstance(obj, float):\n if not math.isfinite(obj):\n if math.isnan(obj):\n return \"NaN\"\n return \"Infinity\" if obj > 0 else \"-Infinity\"\n return obj\n if depth > _MAX_SERIALIZE_DEPTH:\n return \"<max depth>\"\n elif isinstance(obj, (_builtins.list, _builtins.tuple)):\n return [_serialize_output(x, depth + 1, node_refs) for x in obj]\n elif getattr(obj, '__class__', None) and getattr(obj.__class__, '__name__', '') == 'deque':\n return [_serialize_output(x, depth + 1, node_refs) for x in obj]\n elif isinstance(obj, _builtins.dict):\n return {str(k): _serialize_output(v, depth + 1, node_refs) for k, v in obj.items()}\n elif isinstance(obj, set):\n try:\n sorted_vals = sorted([_serialize_output(x, depth + 1, node_refs) for x in obj])\n except TypeError:\n sorted_vals = [_serialize_output(x, depth + 1, node_refs) for x in obj]\n return {\"__type__\": \"set\", \"values\": sorted_vals}\n elif isinstance(obj, TreeNode):\n obj_ref = _builtins.id(obj)\n if obj_ref in node_refs:\n return {\"__ref__\": node_refs[obj_ref]}\n node_id = _tracecode_ref_id(obj_ref, node_refs)\n result = {\n \"__type__\": \"TreeNode\",\n \"__id__\": node_id,\n \"val\": _serialize_output(getattr(obj, 'val', getattr(obj, 'value', None)), depth + 1, node_refs),\n }\n if hasattr(obj, 'left'):\n result[\"left\"] = _serialize_output(obj.left, depth + 1, node_refs)\n if hasattr(obj, 'right'):\n result[\"right\"] = _serialize_output(obj.right, depth + 1, node_refs)\n return result\n elif isinstance(obj, ListNode):\n obj_ref = _builtins.id(obj)\n if obj_ref in node_refs:\n return {\"__ref__\": node_refs[obj_ref]}\n node_id = _tracecode_ref_id(obj_ref, node_refs)\n result = {\n \"__type__\": \"ListNode\",\n \"__id__\": node_id,\n \"val\": _serialize_output(getattr(obj, 'val', getattr(obj, 'value', None)), depth + 1, node_refs),\n }\n result[\"next\"] = _serialize_output(obj.next, depth + 1, node_refs)\n return result\n elif callable(obj):\n return _SKIP_SENTINEL\n elif hasattr(obj, '__dict__'):\n obj_ref = _builtins.id(obj)\n if obj_ref in node_refs:\n return {\"__ref__\": node_refs[obj_ref]}\n node_id = _tracecode_ref_id(obj_ref, node_refs)\n class_name = getattr(getattr(obj, '__class__', None), '__name__', 'object')\n result = {\n \"__type__\": class_name,\n \"__class__\": class_name,\n \"__id__\": node_id,\n }\n try:\n raw_fields = getattr(obj, '__dict__', None)\n except Exception:\n raw_fields = None\n if isinstance(raw_fields, _builtins.dict):\n for key, value in raw_fields.items():\n key_str = str(key)\n if key_str.startswith('_') or callable(value):\n continue\n result[key_str] = _serialize_output(value, depth + 1, node_refs)\n return result\n else:\n repr_str = repr(obj)\n if repr_str.startswith('<') and repr_str.endswith('>'):\n return _SKIP_SENTINEL\n return repr_str\n",
|
|
15
|
+
PYTHON_EXECUTE_SERIALIZE_FUNCTION: "\n_MAX_SERIALIZE_DEPTH = 48\n\ndef _serialize(obj, depth=0):\n if isinstance(obj, (bool, int, str, type(None))):\n return obj\n elif isinstance(obj, float):\n if not math.isfinite(obj):\n if math.isnan(obj):\n return \"NaN\"\n return \"Infinity\" if obj > 0 else \"-Infinity\"\n return obj\n if depth > _MAX_SERIALIZE_DEPTH:\n return \"<max depth>\"\n elif isinstance(obj, (_builtins.list, _builtins.tuple)):\n return [_serialize(x, depth + 1) for x in obj]\n elif getattr(obj, '__class__', None) and getattr(obj.__class__, '__name__', '') == 'deque':\n return [_serialize(x, depth + 1) for x in obj]\n elif isinstance(obj, _builtins.dict):\n return {str(k): _serialize(v, depth + 1) for k, v in obj.items()}\n elif isinstance(obj, set):\n try:\n return {\"__type__\": \"set\", \"values\": sorted([_serialize(x, depth + 1) for x in obj])}\n except TypeError:\n return {\"__type__\": \"set\", \"values\": [_serialize(x, depth + 1) for x in obj]}\n elif isinstance(obj, TreeNode):\n result = {\"__type__\": \"TreeNode\", \"val\": _serialize(getattr(obj, 'val', getattr(obj, 'value', None)), depth + 1)}\n if hasattr(obj, 'left'):\n result[\"left\"] = _serialize(obj.left, depth + 1)\n if hasattr(obj, 'right'):\n result[\"right\"] = _serialize(obj.right, depth + 1)\n return result\n elif isinstance(obj, ListNode):\n result = {\"__type__\": \"ListNode\", \"val\": _serialize(getattr(obj, 'val', getattr(obj, 'value', None)), depth + 1)}\n result[\"next\"] = _serialize(obj.next, depth + 1)\n return result\n elif callable(obj):\n return None\n elif hasattr(obj, '__dict__'):\n class_name = getattr(getattr(obj, '__class__', None), '__name__', 'object')\n result = {\"__type__\": class_name, \"__class__\": class_name}\n try:\n raw_fields = getattr(obj, '__dict__', None)\n except Exception:\n raw_fields = None\n if isinstance(raw_fields, _builtins.dict):\n for key, value in raw_fields.items():\n key_str = str(key)\n if key_str.startswith('_') or callable(value):\n continue\n result[key_str] = _serialize(value, depth + 1)\n return result\n else:\n repr_str = repr(obj)\n if repr_str.startswith('<') and repr_str.endswith('>'):\n return None\n return repr_str\n",
|
|
16
|
+
PYTHON_SERIALIZE_FUNCTION: "\n_MAX_SERIALIZE_DEPTH = 48\n\ndef _serialize(obj, depth=0):\n if isinstance(obj, (bool, int, str, type(None))):\n return obj\n elif isinstance(obj, float):\n if not math.isfinite(obj):\n if math.isnan(obj):\n return \"NaN\"\n return \"Infinity\" if obj > 0 else \"-Infinity\"\n return obj\n if depth > _MAX_SERIALIZE_DEPTH:\n return \"<max depth>\"\n elif isinstance(obj, (_builtins.list, _builtins.tuple)):\n return [_serialize(x, depth + 1) for x in obj]\n elif getattr(obj, '__class__', None) and getattr(obj.__class__, '__name__', '') == 'deque':\n return [_serialize(x, depth + 1) for x in obj]\n elif isinstance(obj, _builtins.dict):\n return {str(k): _serialize(v, depth + 1) for k, v in obj.items()}\n elif isinstance(obj, set):\n try:\n return {\"__type__\": \"set\", \"values\": sorted([_serialize(x, depth + 1) for x in obj])}\n except TypeError:\n return {\"__type__\": \"set\", \"values\": [_serialize(x, depth + 1) for x in obj]}\n elif isinstance(obj, TreeNode):\n result = {\"__type__\": \"TreeNode\", \"val\": _serialize(getattr(obj, 'val', getattr(obj, 'value', None)), depth + 1)}\n if hasattr(obj, 'left'):\n result[\"left\"] = _serialize(obj.left, depth + 1)\n if hasattr(obj, 'right'):\n result[\"right\"] = _serialize(obj.right, depth + 1)\n return result\n elif isinstance(obj, ListNode):\n result = {\"__type__\": \"ListNode\", \"val\": _serialize(getattr(obj, 'val', getattr(obj, 'value', None)), depth + 1)}\n result[\"next\"] = _serialize(obj.next, depth + 1)\n return result\n elif callable(obj):\n return None\n elif hasattr(obj, '__dict__'):\n class_name = getattr(getattr(obj, '__class__', None), '__name__', 'object')\n result = {\"__type__\": class_name, \"__class__\": class_name}\n try:\n raw_fields = getattr(obj, '__dict__', None)\n except Exception:\n raw_fields = None\n if isinstance(raw_fields, _builtins.dict):\n for key, value in raw_fields.items():\n key_str = str(key)\n if key_str.startswith('_') or callable(value):\n continue\n result[key_str] = _serialize(value, depth + 1)\n return result\n else:\n repr_str = repr(obj)\n if repr_str.startswith('<') and repr_str.endswith('>'):\n return None\n return repr_str\n",
|
|
17
17
|
});
|
|
18
18
|
|
|
19
19
|
scope.__TRACECODE_toPythonLiteral = __tracecodeToPythonLiteral;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Python Web Worker
|
|
3
3
|
*
|
|
4
4
|
* Runs Python code execution in a separate thread to avoid blocking the UI.
|
|
5
|
-
* This worker handles loading
|
|
5
|
+
* This worker handles loading the Python runtime, executing code, and returning traces.
|
|
6
6
|
*
|
|
7
7
|
* This is the canonical worker implementation for the browser Python runtime.
|
|
8
8
|
* The legacy lib/execution/pyodide.ts path is deprecated and should not be used.
|
|
@@ -37,6 +37,7 @@ const GENERATED_HARNESS_SNIPPETS_PATHS = [
|
|
|
37
37
|
let pyodide = null;
|
|
38
38
|
let isLoading = false;
|
|
39
39
|
let loadPromise = null;
|
|
40
|
+
let pythonPackageLoadPromise = null;
|
|
40
41
|
const WORKER_DEBUG = (() => {
|
|
41
42
|
try {
|
|
42
43
|
return typeof self !== 'undefined' && typeof self.location?.search === 'string' && self.location.search.includes('dev=');
|
|
@@ -45,6 +46,20 @@ const WORKER_DEBUG = (() => {
|
|
|
45
46
|
}
|
|
46
47
|
})();
|
|
47
48
|
|
|
49
|
+
function emitRuntimeDiagnostic(level, phase, message, detail) {
|
|
50
|
+
if (!WORKER_DEBUG && level !== 'error') return;
|
|
51
|
+
const method = level === 'error' ? 'error' : level === 'warn' ? 'warn' : level === 'debug' ? 'debug' : 'info';
|
|
52
|
+
console[method]('[TraceRuntime]', {
|
|
53
|
+
schema: 'tracecode.runtime-diagnostic.v1',
|
|
54
|
+
source: 'harness',
|
|
55
|
+
component: 'PythonWorker',
|
|
56
|
+
runtime: 'python',
|
|
57
|
+
phase,
|
|
58
|
+
message,
|
|
59
|
+
...(detail === undefined ? {} : { detail }),
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
|
|
48
63
|
// Interview mode runtime guard defaults. These are intentionally coarse
|
|
49
64
|
// safeguards to stop runaway executions without exposing internals.
|
|
50
65
|
const INTERVIEW_GUARD_DEFAULTS = Object.freeze({
|
|
@@ -55,21 +70,32 @@ const INTERVIEW_GUARD_DEFAULTS = Object.freeze({
|
|
|
55
70
|
memoryCheckEvery: 200,
|
|
56
71
|
});
|
|
57
72
|
|
|
73
|
+
async function ensurePythonLibraryPackages(runtime) {
|
|
74
|
+
if (!runtime || typeof runtime.loadPackage !== 'function') return;
|
|
75
|
+
if (!pythonPackageLoadPromise) {
|
|
76
|
+
pythonPackageLoadPromise = runtime.loadPackage(['sortedcontainers']).catch((error) => {
|
|
77
|
+
pythonPackageLoadPromise = null;
|
|
78
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
79
|
+
emitRuntimeDiagnostic('warn', 'package-preload-failed', 'Failed to preload Python packages.', { message });
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
await pythonPackageLoadPromise;
|
|
83
|
+
}
|
|
84
|
+
|
|
58
85
|
// Load generated shared harness snippets when available. Keep worker startup
|
|
59
86
|
// resilient by falling back to embedded implementations if this import fails.
|
|
60
87
|
if (typeof importScripts === 'function') {
|
|
61
88
|
for (const scriptPath of GENERATED_HARNESS_SNIPPETS_PATHS) {
|
|
62
89
|
try {
|
|
63
90
|
importScripts(scriptPath);
|
|
64
|
-
|
|
65
|
-
console.log('[PyodideWorker] Loaded generated harness snippets from', scriptPath);
|
|
66
|
-
}
|
|
91
|
+
emitRuntimeDiagnostic('info', 'generated-snippets-loaded', 'Loaded generated harness snippets.', { scriptPath });
|
|
67
92
|
break;
|
|
68
93
|
} catch (error) {
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
94
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
95
|
+
emitRuntimeDiagnostic('warn', 'generated-snippets-load-failed', 'Failed to load generated harness snippets.', {
|
|
96
|
+
scriptPath,
|
|
97
|
+
message,
|
|
98
|
+
});
|
|
73
99
|
}
|
|
74
100
|
}
|
|
75
101
|
}
|
|
@@ -195,7 +221,7 @@ def _ensure_node_value_aliases(node):
|
|
|
195
221
|
def _dict_to_tree(d):
|
|
196
222
|
if d is None:
|
|
197
223
|
return None
|
|
198
|
-
if not isinstance(d, dict):
|
|
224
|
+
if not isinstance(d, _builtins.dict):
|
|
199
225
|
return d
|
|
200
226
|
if 'val' not in d and 'value' not in d:
|
|
201
227
|
return d
|
|
@@ -210,7 +236,7 @@ def _dict_to_list(d, _refs=None):
|
|
|
210
236
|
_refs = {}
|
|
211
237
|
if d is None:
|
|
212
238
|
return None
|
|
213
|
-
if not isinstance(d, dict):
|
|
239
|
+
if not isinstance(d, _builtins.dict):
|
|
214
240
|
return d
|
|
215
241
|
if '__ref__' in d:
|
|
216
242
|
return _refs.get(d.get('__ref__'))
|
|
@@ -219,7 +245,7 @@ def _dict_to_list(d, _refs=None):
|
|
|
219
245
|
node = ListNode(d.get('val', d.get('value', 0)))
|
|
220
246
|
_ensure_node_value_aliases(node)
|
|
221
247
|
node_id = d.get('__id__')
|
|
222
|
-
if isinstance(node_id, str) and node_id:
|
|
248
|
+
if isinstance(node_id, _builtins.str) and node_id:
|
|
223
249
|
_refs[node_id] = node
|
|
224
250
|
node.next = _dict_to_list(d.get('next'), _refs)
|
|
225
251
|
return node
|
|
@@ -232,7 +258,34 @@ const PYTHON_TRACE_SERIALIZE_FUNCTION_SNIPPET = resolveSharedPythonSnippet(
|
|
|
232
258
|
# Sentinel to mark skipped values (functions, etc.) - distinct from None
|
|
233
259
|
_SKIP_SENTINEL = "__TRACECODE_SKIP__"
|
|
234
260
|
_MAX_SERIALIZE_DEPTH = 48
|
|
261
|
+
_MAX_SERIALIZED_ITEMS = 64
|
|
235
262
|
_MAX_OBJECT_FIELDS = 32
|
|
263
|
+
_tracecode_global_object_refs = {}
|
|
264
|
+
_tracecode_next_object_ref_id = 0
|
|
265
|
+
|
|
266
|
+
def _tracecode_ref_id(obj_ref, node_refs):
|
|
267
|
+
global _tracecode_next_object_ref_id
|
|
268
|
+
if obj_ref in node_refs:
|
|
269
|
+
return node_refs[obj_ref]
|
|
270
|
+
if obj_ref in _tracecode_global_object_refs:
|
|
271
|
+
node_id = _tracecode_global_object_refs[obj_ref]
|
|
272
|
+
else:
|
|
273
|
+
node_id = f"ref-{_tracecode_next_object_ref_id}"
|
|
274
|
+
_tracecode_global_object_refs[obj_ref] = node_id
|
|
275
|
+
_tracecode_next_object_ref_id += 1
|
|
276
|
+
node_refs[obj_ref] = node_id
|
|
277
|
+
return node_id
|
|
278
|
+
|
|
279
|
+
def _truncation_marker(total, emitted):
|
|
280
|
+
return {"__truncated__": True, "remaining": max(0, total - emitted)}
|
|
281
|
+
|
|
282
|
+
def _serialize_sequence(values, depth, node_refs):
|
|
283
|
+
values_list = _builtins.list(values)
|
|
284
|
+
emitted = min(len(values_list), _MAX_SERIALIZED_ITEMS)
|
|
285
|
+
result = [_serialize(x, depth + 1, node_refs) for x in values_list[:emitted]]
|
|
286
|
+
if emitted < len(values_list):
|
|
287
|
+
result.append(_truncation_marker(len(values_list), emitted))
|
|
288
|
+
return result
|
|
236
289
|
|
|
237
290
|
def _serialize(obj, depth=0, node_refs=None):
|
|
238
291
|
if node_refs is None:
|
|
@@ -247,25 +300,36 @@ def _serialize(obj, depth=0, node_refs=None):
|
|
|
247
300
|
return obj
|
|
248
301
|
if depth > _MAX_SERIALIZE_DEPTH:
|
|
249
302
|
return "<max depth>"
|
|
250
|
-
elif isinstance(obj, (list, tuple)):
|
|
251
|
-
return
|
|
303
|
+
elif isinstance(obj, (_builtins.list, _builtins.tuple)):
|
|
304
|
+
return _serialize_sequence(obj, depth, node_refs)
|
|
252
305
|
elif getattr(obj, '__class__', None) and getattr(obj.__class__, '__name__', '') == 'deque':
|
|
253
|
-
return
|
|
254
|
-
elif isinstance(obj, dict):
|
|
255
|
-
|
|
306
|
+
return _serialize_sequence(obj, depth, node_refs)
|
|
307
|
+
elif isinstance(obj, _builtins.dict):
|
|
308
|
+
items = _builtins.list(obj.items())
|
|
309
|
+
emitted = min(len(items), _MAX_SERIALIZED_ITEMS)
|
|
310
|
+
result = {str(k): _serialize(v, depth + 1, node_refs) for k, v in items[:emitted]}
|
|
311
|
+
if emitted < len(items):
|
|
312
|
+
result["__truncated__"] = True
|
|
313
|
+
result["remaining"] = len(items) - emitted
|
|
314
|
+
return result
|
|
256
315
|
elif isinstance(obj, set):
|
|
257
316
|
# Use try/except for sorting to handle heterogeneous sets
|
|
317
|
+
values = _builtins.list(obj)
|
|
318
|
+
emitted = min(len(values), _MAX_SERIALIZED_ITEMS)
|
|
258
319
|
try:
|
|
259
|
-
sorted_vals = sorted([_serialize(x, depth + 1, node_refs) for x in
|
|
320
|
+
sorted_vals = sorted([_serialize(x, depth + 1, node_refs) for x in values[:emitted]])
|
|
260
321
|
except TypeError:
|
|
261
|
-
sorted_vals = [_serialize(x, depth + 1, node_refs) for x in
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
322
|
+
sorted_vals = [_serialize(x, depth + 1, node_refs) for x in values[:emitted]]
|
|
323
|
+
result = {"__type__": "set", "values": sorted_vals}
|
|
324
|
+
if emitted < len(values):
|
|
325
|
+
result["__truncated__"] = True
|
|
326
|
+
result["remaining"] = len(values) - emitted
|
|
327
|
+
return result
|
|
328
|
+
elif isinstance(obj, TreeNode):
|
|
329
|
+
obj_ref = _builtins.id(obj)
|
|
265
330
|
if obj_ref in node_refs:
|
|
266
331
|
return {"__ref__": node_refs[obj_ref]}
|
|
267
|
-
node_id =
|
|
268
|
-
node_refs[obj_ref] = node_id
|
|
332
|
+
node_id = _tracecode_ref_id(obj_ref, node_refs)
|
|
269
333
|
result = {
|
|
270
334
|
"__type__": "TreeNode",
|
|
271
335
|
"__id__": node_id,
|
|
@@ -276,12 +340,11 @@ def _serialize(obj, depth=0, node_refs=None):
|
|
|
276
340
|
if hasattr(obj, 'right'):
|
|
277
341
|
result["right"] = _serialize(obj.right, depth + 1, node_refs)
|
|
278
342
|
return result
|
|
279
|
-
elif (
|
|
280
|
-
obj_ref = id(obj)
|
|
343
|
+
elif isinstance(obj, ListNode):
|
|
344
|
+
obj_ref = _builtins.id(obj)
|
|
281
345
|
if obj_ref in node_refs:
|
|
282
346
|
return {"__ref__": node_refs[obj_ref]}
|
|
283
|
-
node_id =
|
|
284
|
-
node_refs[obj_ref] = node_id
|
|
347
|
+
node_id = _tracecode_ref_id(obj_ref, node_refs)
|
|
285
348
|
result = {
|
|
286
349
|
"__type__": "ListNode",
|
|
287
350
|
"__id__": node_id,
|
|
@@ -289,15 +352,17 @@ def _serialize(obj, depth=0, node_refs=None):
|
|
|
289
352
|
}
|
|
290
353
|
result["next"] = _serialize(obj.next, depth + 1, node_refs)
|
|
291
354
|
return result
|
|
355
|
+
elif callable(obj):
|
|
356
|
+
# Skip functions entirely - return sentinel
|
|
357
|
+
return _SKIP_SENTINEL
|
|
292
358
|
elif hasattr(obj, '__dict__'):
|
|
293
|
-
obj_ref = id(obj)
|
|
359
|
+
obj_ref = _builtins.id(obj)
|
|
294
360
|
if obj_ref in node_refs:
|
|
295
361
|
return {"__ref__": node_refs[obj_ref]}
|
|
296
|
-
node_id =
|
|
297
|
-
node_refs[obj_ref] = node_id
|
|
362
|
+
node_id = _tracecode_ref_id(obj_ref, node_refs)
|
|
298
363
|
class_name = getattr(getattr(obj, '__class__', None), '__name__', 'object')
|
|
299
364
|
result = {
|
|
300
|
-
"__type__":
|
|
365
|
+
"__type__": class_name,
|
|
301
366
|
"__class__": class_name,
|
|
302
367
|
"__id__": node_id,
|
|
303
368
|
}
|
|
@@ -305,26 +370,106 @@ def _serialize(obj, depth=0, node_refs=None):
|
|
|
305
370
|
raw_fields = getattr(obj, '__dict__', None)
|
|
306
371
|
except Exception:
|
|
307
372
|
raw_fields = None
|
|
308
|
-
if isinstance(raw_fields, dict):
|
|
309
|
-
|
|
373
|
+
if isinstance(raw_fields, _builtins.dict):
|
|
374
|
+
fields = []
|
|
310
375
|
for key, value in raw_fields.items():
|
|
311
376
|
key_str = str(key)
|
|
312
377
|
if key_str.startswith('_'):
|
|
313
378
|
continue
|
|
314
379
|
if callable(value):
|
|
315
380
|
continue
|
|
381
|
+
fields.append((key_str, value))
|
|
382
|
+
for key_str, value in fields[:_MAX_OBJECT_FIELDS]:
|
|
316
383
|
result[key_str] = _serialize(value, depth + 1, node_refs)
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
384
|
+
if len(fields) > _MAX_OBJECT_FIELDS:
|
|
385
|
+
result["__truncated__"] = True
|
|
386
|
+
result["remaining"] = len(fields) - _MAX_OBJECT_FIELDS
|
|
387
|
+
return result
|
|
388
|
+
else:
|
|
389
|
+
repr_str = repr(obj)
|
|
390
|
+
# Filter out function-like representations (e.g., <function foo at 0x...>)
|
|
391
|
+
if repr_str.startswith('<') and repr_str.endswith('>'):
|
|
392
|
+
return _SKIP_SENTINEL
|
|
393
|
+
return repr_str
|
|
394
|
+
|
|
395
|
+
def _serialize_output(obj, depth=0, node_refs=None):
|
|
396
|
+
if node_refs is None:
|
|
397
|
+
node_refs = {}
|
|
398
|
+
if isinstance(obj, (bool, int, str, type(None))):
|
|
399
|
+
return obj
|
|
400
|
+
elif isinstance(obj, float):
|
|
401
|
+
if not math.isfinite(obj):
|
|
402
|
+
if math.isnan(obj):
|
|
403
|
+
return "NaN"
|
|
404
|
+
return "Infinity" if obj > 0 else "-Infinity"
|
|
405
|
+
return obj
|
|
406
|
+
if depth > _MAX_SERIALIZE_DEPTH:
|
|
407
|
+
return "<max depth>"
|
|
408
|
+
elif isinstance(obj, (_builtins.list, _builtins.tuple)):
|
|
409
|
+
return [_serialize_output(x, depth + 1, node_refs) for x in obj]
|
|
410
|
+
elif getattr(obj, '__class__', None) and getattr(obj.__class__, '__name__', '') == 'deque':
|
|
411
|
+
return [_serialize_output(x, depth + 1, node_refs) for x in obj]
|
|
412
|
+
elif isinstance(obj, _builtins.dict):
|
|
413
|
+
return {str(k): _serialize_output(v, depth + 1, node_refs) for k, v in obj.items()}
|
|
414
|
+
elif isinstance(obj, set):
|
|
415
|
+
try:
|
|
416
|
+
sorted_vals = sorted([_serialize_output(x, depth + 1, node_refs) for x in obj])
|
|
417
|
+
except TypeError:
|
|
418
|
+
sorted_vals = [_serialize_output(x, depth + 1, node_refs) for x in obj]
|
|
419
|
+
return {"__type__": "set", "values": sorted_vals}
|
|
420
|
+
elif isinstance(obj, TreeNode):
|
|
421
|
+
obj_ref = _builtins.id(obj)
|
|
422
|
+
if obj_ref in node_refs:
|
|
423
|
+
return {"__ref__": node_refs[obj_ref]}
|
|
424
|
+
node_id = _tracecode_ref_id(obj_ref, node_refs)
|
|
425
|
+
result = {
|
|
426
|
+
"__type__": "TreeNode",
|
|
427
|
+
"__id__": node_id,
|
|
428
|
+
"val": _serialize_output(getattr(obj, 'val', getattr(obj, 'value', None)), depth + 1, node_refs),
|
|
429
|
+
}
|
|
430
|
+
if hasattr(obj, 'left'):
|
|
431
|
+
result["left"] = _serialize_output(obj.left, depth + 1, node_refs)
|
|
432
|
+
if hasattr(obj, 'right'):
|
|
433
|
+
result["right"] = _serialize_output(obj.right, depth + 1, node_refs)
|
|
434
|
+
return result
|
|
435
|
+
elif isinstance(obj, ListNode):
|
|
436
|
+
obj_ref = _builtins.id(obj)
|
|
437
|
+
if obj_ref in node_refs:
|
|
438
|
+
return {"__ref__": node_refs[obj_ref]}
|
|
439
|
+
node_id = _tracecode_ref_id(obj_ref, node_refs)
|
|
440
|
+
result = {
|
|
441
|
+
"__type__": "ListNode",
|
|
442
|
+
"__id__": node_id,
|
|
443
|
+
"val": _serialize_output(getattr(obj, 'val', getattr(obj, 'value', None)), depth + 1, node_refs),
|
|
444
|
+
}
|
|
445
|
+
result["next"] = _serialize_output(obj.next, depth + 1, node_refs)
|
|
321
446
|
return result
|
|
322
447
|
elif callable(obj):
|
|
323
|
-
# Skip functions entirely - return sentinel
|
|
324
448
|
return _SKIP_SENTINEL
|
|
449
|
+
elif hasattr(obj, '__dict__'):
|
|
450
|
+
obj_ref = _builtins.id(obj)
|
|
451
|
+
if obj_ref in node_refs:
|
|
452
|
+
return {"__ref__": node_refs[obj_ref]}
|
|
453
|
+
node_id = _tracecode_ref_id(obj_ref, node_refs)
|
|
454
|
+
class_name = getattr(getattr(obj, '__class__', None), '__name__', 'object')
|
|
455
|
+
result = {
|
|
456
|
+
"__type__": class_name,
|
|
457
|
+
"__class__": class_name,
|
|
458
|
+
"__id__": node_id,
|
|
459
|
+
}
|
|
460
|
+
try:
|
|
461
|
+
raw_fields = getattr(obj, '__dict__', None)
|
|
462
|
+
except Exception:
|
|
463
|
+
raw_fields = None
|
|
464
|
+
if isinstance(raw_fields, _builtins.dict):
|
|
465
|
+
for key, value in raw_fields.items():
|
|
466
|
+
key_str = str(key)
|
|
467
|
+
if key_str.startswith('_') or callable(value):
|
|
468
|
+
continue
|
|
469
|
+
result[key_str] = _serialize_output(value, depth + 1, node_refs)
|
|
470
|
+
return result
|
|
325
471
|
else:
|
|
326
472
|
repr_str = repr(obj)
|
|
327
|
-
# Filter out function-like representations (e.g., <function foo at 0x...>)
|
|
328
473
|
if repr_str.startswith('<') and repr_str.endswith('>'):
|
|
329
474
|
return _SKIP_SENTINEL
|
|
330
475
|
return repr_str
|
|
@@ -347,30 +492,44 @@ def _serialize(obj, depth=0):
|
|
|
347
492
|
return obj
|
|
348
493
|
if depth > _MAX_SERIALIZE_DEPTH:
|
|
349
494
|
return "<max depth>"
|
|
350
|
-
elif isinstance(obj, (list, tuple)):
|
|
495
|
+
elif isinstance(obj, (_builtins.list, _builtins.tuple)):
|
|
351
496
|
return [_serialize(x, depth + 1) for x in obj]
|
|
352
497
|
elif getattr(obj, '__class__', None) and getattr(obj.__class__, '__name__', '') == 'deque':
|
|
353
498
|
return [_serialize(x, depth + 1) for x in obj]
|
|
354
|
-
elif isinstance(obj, dict):
|
|
499
|
+
elif isinstance(obj, _builtins.dict):
|
|
355
500
|
return {str(k): _serialize(v, depth + 1) for k, v in obj.items()}
|
|
356
501
|
elif isinstance(obj, set):
|
|
357
502
|
try:
|
|
358
503
|
return {"__type__": "set", "values": sorted([_serialize(x, depth + 1) for x in obj])}
|
|
359
504
|
except TypeError:
|
|
360
505
|
return {"__type__": "set", "values": [_serialize(x, depth + 1) for x in obj]}
|
|
361
|
-
elif (
|
|
506
|
+
elif isinstance(obj, TreeNode):
|
|
362
507
|
result = {"__type__": "TreeNode", "val": _serialize(getattr(obj, 'val', getattr(obj, 'value', None)), depth + 1)}
|
|
363
508
|
if hasattr(obj, 'left'):
|
|
364
509
|
result["left"] = _serialize(obj.left, depth + 1)
|
|
365
510
|
if hasattr(obj, 'right'):
|
|
366
511
|
result["right"] = _serialize(obj.right, depth + 1)
|
|
367
512
|
return result
|
|
368
|
-
elif (
|
|
513
|
+
elif isinstance(obj, ListNode):
|
|
369
514
|
result = {"__type__": "ListNode", "val": _serialize(getattr(obj, 'val', getattr(obj, 'value', None)), depth + 1)}
|
|
370
515
|
result["next"] = _serialize(obj.next, depth + 1)
|
|
371
516
|
return result
|
|
372
517
|
elif callable(obj):
|
|
373
518
|
return None
|
|
519
|
+
elif hasattr(obj, '__dict__'):
|
|
520
|
+
class_name = getattr(getattr(obj, '__class__', None), '__name__', 'object')
|
|
521
|
+
result = {"__type__": class_name, "__class__": class_name}
|
|
522
|
+
try:
|
|
523
|
+
raw_fields = getattr(obj, '__dict__', None)
|
|
524
|
+
except Exception:
|
|
525
|
+
raw_fields = None
|
|
526
|
+
if isinstance(raw_fields, _builtins.dict):
|
|
527
|
+
for key, value in raw_fields.items():
|
|
528
|
+
key_str = str(key)
|
|
529
|
+
if key_str.startswith('_') or callable(value):
|
|
530
|
+
continue
|
|
531
|
+
result[key_str] = _serialize(value, depth + 1)
|
|
532
|
+
return result
|
|
374
533
|
else:
|
|
375
534
|
repr_str = repr(obj)
|
|
376
535
|
if repr_str.startswith('<') and repr_str.endswith('>'):
|
|
@@ -399,9 +558,7 @@ async function loadPyodideInstance() {
|
|
|
399
558
|
try {
|
|
400
559
|
importScripts(`${indexURL}pyodide.js`);
|
|
401
560
|
loadedBootstrap = true;
|
|
402
|
-
|
|
403
|
-
console.log('[PyodideWorker] Loaded bootstrap script from', indexURL);
|
|
404
|
-
}
|
|
561
|
+
emitRuntimeDiagnostic('info', 'bootstrap-loaded', 'Loaded Python runtime bootstrap script.', { indexURL });
|
|
405
562
|
break;
|
|
406
563
|
} catch (error) {
|
|
407
564
|
const message = error instanceof Error ? error.message : String(error);
|
|
@@ -420,9 +577,8 @@ async function loadPyodideInstance() {
|
|
|
420
577
|
for (const indexURL of PYODIDE_INDEX_URLS) {
|
|
421
578
|
try {
|
|
422
579
|
pyodide = await self.loadPyodide({ indexURL });
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
}
|
|
580
|
+
await ensurePythonLibraryPackages(pyodide);
|
|
581
|
+
emitRuntimeDiagnostic('info', 'runtime-initialized', 'Initialized Python runtime.', { indexURL });
|
|
426
582
|
return pyodide;
|
|
427
583
|
} catch (error) {
|
|
428
584
|
const message = error instanceof Error ? error.message : String(error);
|
|
@@ -460,15 +616,14 @@ function loadPyodideRuntimeCore() {
|
|
|
460
616
|
for (const scriptPath of PYODIDE_RUNTIME_CORE_PATHS) {
|
|
461
617
|
try {
|
|
462
618
|
importScripts(scriptPath);
|
|
463
|
-
|
|
464
|
-
console.log('[PyodideWorker] Loaded runtime core from', scriptPath);
|
|
465
|
-
}
|
|
619
|
+
emitRuntimeDiagnostic('info', 'runtime-core-loaded', 'Loaded Python runtime core.', { scriptPath });
|
|
466
620
|
break;
|
|
467
621
|
} catch (error) {
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
622
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
623
|
+
emitRuntimeDiagnostic('warn', 'runtime-core-load-failed', 'Failed to load Python runtime core.', {
|
|
624
|
+
scriptPath,
|
|
625
|
+
message,
|
|
626
|
+
});
|
|
472
627
|
}
|
|
473
628
|
}
|
|
474
629
|
}
|
|
@@ -562,12 +717,19 @@ async function processMessage(data) {
|
|
|
562
717
|
switch (type) {
|
|
563
718
|
case 'init': {
|
|
564
719
|
const startTime = performance.now();
|
|
565
|
-
await loadPyodideInstance();
|
|
566
720
|
const loadTimeMs = performance.now() - startTime;
|
|
567
721
|
self.postMessage({ id, type: 'init-result', payload: { success: true, loadTimeMs } });
|
|
568
722
|
break;
|
|
569
723
|
}
|
|
570
724
|
|
|
725
|
+
case 'warmup': {
|
|
726
|
+
const startTime = performance.now();
|
|
727
|
+
await loadPyodideInstance();
|
|
728
|
+
const loadTimeMs = performance.now() - startTime;
|
|
729
|
+
self.postMessage({ id, type: 'warmup-result', payload: { success: true, loadTimeMs } });
|
|
730
|
+
break;
|
|
731
|
+
}
|
|
732
|
+
|
|
571
733
|
case 'execute-with-tracing': {
|
|
572
734
|
const { code, functionName, inputs, executionStyle, options } = payload;
|
|
573
735
|
const result = await executeWithTracing(code, functionName, inputs, executionStyle ?? 'function', options);
|
|
@@ -647,6 +809,7 @@ self.onmessage = function(event) {
|
|
|
647
809
|
};
|
|
648
810
|
|
|
649
811
|
// Notify that worker is ready
|
|
812
|
+
emitRuntimeDiagnostic('info', 'worker-ready', 'Python worker is ready.');
|
|
650
813
|
self.postMessage({ type: 'worker-ready' });
|
|
651
814
|
|
|
652
815
|
// ═══════════════════════════════════════════════════════════════════════════
|
|
@@ -1568,9 +1731,7 @@ async function analyzeCodeAST(code) {
|
|
|
1568
1731
|
throw error;
|
|
1569
1732
|
}
|
|
1570
1733
|
|
|
1571
|
-
|
|
1572
|
-
console.warn('[Pyodide Worker] analyze() missing; reinitializing AST analyzer');
|
|
1573
|
-
}
|
|
1734
|
+
emitRuntimeDiagnostic('warn', 'ast-analyzer-reinit', 'analyze() missing; reinitializing AST analyzer.');
|
|
1574
1735
|
analyzerInitialized = false;
|
|
1575
1736
|
}
|
|
1576
1737
|
}
|