Previously, when `super` was used at the top level or outside any method, the compiler would error but still attempt to read `enclosingClass->methodLength` and `enclosingClass->methodName` from a NULL pointer, leading to undefined behavior. This restructures the error handling in `super_()` to always call `loadThis()` and guard the unnamed super call path with a NULL check on `enclosingClass`, setting an empty method signature when no enclosing class exists. Two additional test cases for `super.foo("bar")` and `super("foo")` are added to verify the compiler continues past the error without crashing.
Add a `contains(element)` method to the `List` class in the core library,
enabling linear search for an element across all list items. Update the
`example/set.wren` file to use the new Wren operator syntax for `|`, `+`,
`&`, and `-` methods, replacing old function-style parameter definitions
with block-style closures. Also fix trailing whitespace throughout the
Set example and embed the new `contains` method into the C source string
in `src/wren_core.c` for the built-in List class.
When `super` is called at top-level with no arguments, `enclosingClass` is null, causing a segfault when trying to access its method name. This fix wraps the unnamed super call logic inside an else branch that only executes when `enclosingClass` is non-null, and adds a test case for the unnamed `super` call at top-level.
Remove the explicit `https:` scheme from the Google Fonts stylesheet href in
`doc/site/template.html` to avoid mixed content warnings when the site is served
over HTTP and to allow the browser to automatically use the same protocol as the
page.
Wrap the subprocess.check_output call in a try-except block for OSError. When the interpreter binary is not found, print a user-friendly message and return None from run_trial rather than letting the exception propagate and halt the benchmark run.
Add four new counters (num_benchmark_files, num_benchmark_todos, num_benchmark_empty, num_benchmark) and a walk over the benchmark directory to count .wren files, empty/non-empty lines, and TODO patterns. Print the new benchmark section after the existing test output.
Update print statements to function syntax, add from __future__ import print_function in test.py, change shebangs to /usr/bin/env python, replace str.translate with re.sub for anchor sanitization in generate_docs.py, and decode subprocess output to utf-8 in test.py for cross-version string handling.