helloadhavan/github_issues huggingface dataset:
Repository: electron/electron
Pull request: fix: `webContents.downloadURL()` did not support referer header

Backport of #47625

See that PR for details.


Notes: Fixed a bug where the `Referer` header was not being set correctly when using `webContents.downloadURL()`.

Changed files:
filename: shell/browser/api/electron_api_web_contents.cc
patch: @@ -2409,6 +2409,13 @@ void WebContents::DownloadURL(const GURL& url, gin::Arguments* args) {
       content::DownloadRequestUtils::CreateDownloadForWebContentsMainFrame(
           web_contents(), url, MISSING_TRAFFIC_ANNOTATION));
   for (const auto& [name, value] : headers) {
+    if (base::ToLowerASCII(name) ==
+        base::ToLowerASCII(net::HttpRequestHeaders::kReferer)) {
+      // Setting a Referer header with HTTPS scheme while the download URL's
+      // scheme is HTTP might lead to download failure.
+      download_params->set_referrer(GURL(value));
+      continue;
+    }
     download_params->add_request_header(name, value);
   }
 

filename: spec/api-session-spec.ts
patch: @@ -1130,6 +1130,53 @@ describe('session module', () => {
         expect(item.getContentDisposition()).to.equal(contentDisposition);
       });
 
+      it('can perform a download with referer header', async () => {
+        const server = http.createServer((req, res) => {
+          const { referer } = req.headers;
+          if (!referer || !referer.startsWith('http://www.electronjs.org')) {
+            res.statusCode = 403;
+            res.end();
+          } else {
+            res.writeHead(200, {
+              'Content-Length': mockPDF.length,
+              'Content-Type': 'application/pdf',
+              'Content-Disposition': req.url === '/?testFilename' ? 'inline' : contentDisposition
+            });
+            res.end(mockPDF);
+          }
+        });
+
+        const { port } = await listen(server);
+
+        const w = new BrowserWindow({ show: false });
+        const downloadDone: Promise<Electron.DownloadItem> = new Promise((resolve) => {
+          w.webContents.session.once('will-download', (e, item) => {
+            item.savePath = downloadFilePath;
+            item.on('done', () => {
+              try {
+                resolve(item);
+              } catch { }
+            });
+          });
+        });
+
+        w.webContents.downloadURL(`${url}:${port}`, {
+          headers: {
+            // Setting a Referer header with HTTPS scheme while the download URL's
+            // scheme is HTTP might lead to download failure.
+            referer: 'http://www.electronjs.org'
+          }
+        });
+
+        const item = await downloadDone;
+        expect(item.getState()).to.equal('completed');
+        expect(item.getFilename()).to.equal('mock.pdf');
+        expect(item.getMimeType()).to.equal('application/pdf');
+        expect(item.getReceivedBytes()).to.equal(mockPDF.length);
+        expect(item.getTotalBytes()).to.equal(mockPDF.length);
+        expect(item.getContentDisposition()).to.equal(contentDisposition);
+      });
+
       it('throws when called with invalid headers', () => {
         const w = new BrowserWindow({ show: false });
         expect(() => {
Repository: ggml-org/llama.cpp
Pull request: sycl: add newline at the end of CMakeLists.txt


Changed files:
filename: ggml/src/ggml-sycl/CMakeLists.txt
patch: @@ -230,4 +230,5 @@ endif()
 if (GGML_SYCL_DEVICE_ARCH)
     target_compile_options(ggml-sycl PRIVATE -Xsycl-target-backend --offload-arch=${GGML_SYCL_DEVICE_ARCH})
     target_link_options(ggml-sycl PRIVATE -Xsycl-target-backend --offload-arch=${GGML_SYCL_DEVICE_ARCH})
-endif()
\ No newline at end of file
+endif()
+
Repository: facebook/react
Pull request: [ci] Fix missing values during manual workflow dispatch

Stack from [ghstack](https://github.com/ezyang/ghstack) (oldest at bottom):
* #31047
* #31046
* __->__ #31045

It seems like the github.event.workflow_run payload is only populated
for non manual runs of the workflow, so this would crash the manual
dispatch

Test plan: https://github.com/facebook/react/actions/runs/11017512571
completes

Changed files:
filename: .github/workflows/runtime_commit_artifacts.yml
patch: @@ -82,7 +82,7 @@ jobs:
         working-directory: scripts/release
       - name: Download artifacts for base revision
         run: |
-          GH_TOKEN=${{ github.token }} scripts/release/download-experimental-build.js --commit=${{ inputs.commit_sha || github.event.workflow_run.head_sha }}
+          GH_TOKEN=${{ github.token }} scripts/release/download-experimental-build.js --commit=${{ inputs.commit_sha || github.sha }}
       - name: Display structure of build
         run: ls -R build
       - name: Strip @license from eslint plugin and react-refresh
@@ -145,9 +145,9 @@ jobs:
           ls -R ./compiled-rn
       - name: Add REVISION files
         run: |
-          echo ${{ github.event.workflow_run.head_sha }} >> ./compiled/facebook-www/REVISION
+          echo ${{ github.sha }} >> ./compiled/facebook-www/REVISION
           cp ./compiled/facebook-www/REVISION ./compiled/facebook-www/REVISION_TRANSFORMS
-          echo ${{ github.event.workflow_run.head_sha}} >> ./compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/REVISION
+          echo ${{ github.sha}} >> ./compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/REVISION
       - name: "Get current version string"
         id: get_current_version
         run: |
Repository: ollama/ollama
Pull request: update llama.cpp submodule to `614d3b9`


Changed files:
filename: llm/llama.cpp
patch: @@ -1 +1 @@
-Subproject commit 952d03dbead16e4dbdd1d3458486340673cc2465
+Subproject commit 614d3b914e1c3e02596f869649eb4f1d3b68614d

filename: llm/patches/05-clip-fix.diff
patch: @@ -1,24 +0,0 @@
-diff --git a/examples/llava/clip.cpp b/examples/llava/clip.cpp
-index e3c9bcd4..b43f892d 100644
---- a/examples/llava/clip.cpp
-+++ b/examples/llava/clip.cpp
-@@ -573,14 +573,16 @@ static ggml_cgraph * clip_image_build_graph(clip_ctx * ctx, const clip_image_f32
-     struct ggml_tensor * embeddings = inp;
-     if (ctx->has_class_embedding) {
-         embeddings = ggml_new_tensor_3d(ctx0, GGML_TYPE_F32, hidden_size, num_positions, batch_size);
-+    }
-+    ggml_set_name(embeddings, "embeddings");
-+    ggml_set_input(embeddings);
-+
-+    if (ctx->has_class_embedding) {
-         embeddings = ggml_acc(ctx0, embeddings, model.class_embedding,
-                 embeddings->nb[1], embeddings->nb[2], embeddings->nb[3], 0);
-         embeddings = ggml_acc(ctx0, embeddings, inp,
-                 embeddings->nb[1], embeddings->nb[2], embeddings->nb[3], model.class_embedding->nb[1]);
-     }
--    ggml_set_name(embeddings, "embeddings");
--    ggml_set_input(embeddings);
--
- 
-     struct ggml_tensor * positions = ggml_new_tensor_1d(ctx0, GGML_TYPE_I32, num_positions);
-     ggml_set_name(positions, "positions");
Repository: denoland/deno
Pull request: fix(ext/console): handle throwing Symbol.toStringTag getter gracefully

## Summary

When `console.log` formats an object, it accesses `Symbol.toStringTag` which may be a getter that throws. For example, [quick-lru](https://www.npmjs.com/package/quick-lru)'s `Symbol.toStringTag` getter calls `JSON.stringify(this)` which fails on circular structures. This caused an `[Internal Formatting Error]` instead of printing the object.

Fix by wrapping the `Symbol.toStringTag` access in a try-catch, matching Node.js behavior (see `lib/internal/util/inspect.js` line 1221-1225).

Before:
```
[Internal Formatting Error] TypeError: Converting circular structure to JSON
```

After:
```
<ref *1> Bot {
  chatEventEmitter: BotChatEmitter { bot: [Circular *1] },
  cache: QuickLRU(0) {}
}
```

Fixes #32894

## Test plan

- [x] Added unit test with a `Symbol.toStringTag` getter that throws
- [x] `./x test-unit console_test` passes
- [x] Verified with the exact reproducer from the issue (quick-lru@7.0.0)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Changed files:
filename: ext/web/01_console.js
patch: @@ -714,7 +714,11 @@ function formatRaw(ctx, value, recurseTimes, typedArray, proxyDetails) {
 
   let tag;
   if (!proxyDetails) {
-    tag = value[SymbolToStringTag];
+    try {
+      tag = value[SymbolToStringTag];
+    } catch {
+      // Symbol.toStringTag getter may throw (e.g. circular JSON.stringify)
+    }
   }
   // Only list the tag in case it's non-enumerable / not an own property.
   // Otherwise we'd print this twice.

filename: tests/unit/console_test.ts
patch: @@ -377,6 +377,27 @@ Deno.test(function consoleTestStringifyCircular() {
   assertEquals(stripAnsiCode(Deno.inspect(nestedObj)), nestedObjExpected);
 });
 
+Deno.test(function consoleTestStringifyToStringTagGetterThrows() {
+  // Symbol.toStringTag getter that throws should not crash console.log
+  // https://github.com/denoland/deno/issues/32894
+  class Circular {
+    self: Circular;
+    constructor() {
+      this.self = this;
+    }
+    get [Symbol.toStringTag]() {
+      // This throws due to circular reference
+      JSON.stringify(this);
+      return "Circular";
+    }
+  }
+  const obj = new Circular();
+  // Should not throw, should handle the error gracefully
+  const result = stringify(obj);
+  assertStringIncludes(result, "Circular");
+  assertStringIncludes(result, "[Circular");
+});
+
 Deno.test(function consoleTestStringifyMultipleCircular() {
   const y = { a: { b: {} }, foo: { bar: {} } };
   y.a.b = y.a;
Repository: vercel/next.js
Pull request: [turbopack] Allow withRspack to work even if you already have NEXT_RSPACK set

Fix an issue where if a user set `NEXT_RSPACK` as an environment variable then `next` would think it was using rspack but `withRspack` would think it was using `--webpack`.   The issue is that the idempotency check was too strict.

This partially reverts https://github.com/vercel/next.js/pull/84885 


Closes PACK-5704

Changed files:
filename: packages/next-rspack/index.js
patch: @@ -1,10 +1,10 @@
 Error.stackTraceLimit = 100
 module.exports = function withRspack(config) {
-  if (process.env.NEXT_RSPACK === 'true') {
+  if (process.env.NEXT_RSPACK) {
     // we have already been called.  This can happen when using build workers.
     return config
   }
-  if (!process.env.TURBOPACK || process.env.TURBOPACK === 'auto') {
+  if (process.env.TURBOPACK === 'auto') {
     delete process.env.TURBOPACK
     process.env.RSPACK_CONFIG_VALIDATE = 'loose-silent'
     process.env.NEXT_RSPACK = 'true'
Repository: ollama/ollama
Pull request: return on part done

only copy as much as we're expecting to receive to prevent runaway downloads

Changed files:
filename: server/download.go
patch: @@ -221,7 +221,7 @@ func (b *blobDownload) downloadChunk(ctx context.Context, requestURL *url.URL, w
 		}
 		defer resp.Body.Close()
 
-		n, err := io.Copy(w, io.TeeReader(resp.Body, part))
+		n, err := io.CopyN(w, io.TeeReader(resp.Body, part), part.Size)
 		if err != nil && !errors.Is(err, context.Canceled) && !errors.Is(err, io.ErrUnexpectedEOF) {
 			// rollback progress
 			b.Completed.Add(-n)
Repository: denoland/deno
Pull request: fix(ext/node): do not throw error for `readline.createInterface` outside TTY

Matches Node's behaviour by ignoring `terminal: true` when not inside a TTY.

Fixes #32873.

<!--
IMPORTANT: If you used AI tools (e.g. Copilot, ChatGPT, Claude, Cursor, etc.)
to help write this PR, you MUST disclose it in the PR description. PRs will be
rejected if there is suspicion of undisclosed AI usage.

Before submitting a PR, please read https://docs.deno.com/runtime/manual/references/contributing

1. Give the PR a descriptive title.

  Examples of good title:
    - fix(ext/net): fix race condition in TCP listener
    - docs(runtime): update permissions API docstrings
    - feat(cli): add --env-file flag to `deno run`
    - refactor(ext/node): simplify Buffer.from() implementation
    - test(ext/fs): add spec tests for symlink resolution

  Examples of bad title:
    - fix #7123
    - update docs
    - fix bugs

2. Ensure there is a related issue and it is referenced in the PR text.
3. Ensure there are tests that cover the changes.
4. Ensure `./x fmt` passes without changing files.
5. Ensure `./x lint` passes.
6. If you used AI tools to help write this PR, you MUST disclose it below.
   PRs will be rejected if there is suspicion of undisclosed AI usage.
7. Open as a draft PR if your work is still in progress. The CI won't run
   all steps, but you can add '[ci]' to a commit message to force it to.
8. If you would like to run the benchmarks on the CI, add the 'ci-bench' label.
-->


Changed files:
filename: ext/node/polyfills/_process/streams.mjs
patch: @@ -346,7 +346,9 @@ export const initStdin = (warmup = false) => {
   });
   stdin._isRawMode = false;
   stdin.setRawMode = (enable) => {
-    io.stdin?.setRaw?.(enable);
+    if (io.stdin?.isTerminal()) {
+      io.stdin.setRaw(enable);
+    }
     stdin._isRawMode = enable;
     return stdin;
   };

filename: tests/specs/run/readline_non_tty/__test__.jsonc
patch: @@ -0,0 +1,4 @@
+{
+  "args": "run main.ts",
+  "output": "main.out"
+}

filename: tests/specs/run/readline_non_tty/main.out
patch: @@ -0,0 +1 @@
+success!

filename: tests/specs/run/readline_non_tty/main.ts
patch: @@ -0,0 +1,8 @@
+import { createInterface } from "node:readline";
+
+createInterface({
+  input: process.stdin,
+  output: process.stdout,
+  terminal: true,
+}).close();
+console.log("success!");
Repository: ggml-org/llama.cpp
Pull request: Document that JSON Schema is not available to model when using response_format 

This behavior is different from OpenAI et al since they seem to take the description of the JSON Schema into account.

I was wondering why my prompts were malfunctioning with llama.cpp, but then found out that `description` annotations are not taken into account.

I put this in the 'contributions welcome' list under the assumption that a contribution to implement this is welcome.

Changed files:
filename: grammars/README.md
patch: @@ -150,6 +150,9 @@ You can use GBNF grammars:
     - in CLI, with [examples/json_schema_to_grammar.py](../examples/json_schema_to_grammar.py)
     - in JavaScript with [json-schema-to-grammar.mjs](../tools/server/public_legacy/json-schema-to-grammar.mjs) (this is used by the [server](../tools/server)'s Web UI)
 
+> [!NOTE]
+> The JSON schema is only used to constrain the model output and is not injected into the prompt. The model has no visibility into the schema, so if you want it to understand the expected structure, describe it explicitly in your prompt. This does not apply to tool calling, where schemas are injected into the prompt.
+
 Take a look at [tests](../tests/test-json-schema-to-grammar.cpp) to see which features are likely supported (you'll also find usage examples in https://github.com/ggml-org/llama.cpp/pull/5978, https://github.com/ggml-org/llama.cpp/pull/6659 & https://github.com/ggml-org/llama.cpp/pull/6555).
 
 ```bash
Repository: nodejs/node
Pull request: test: skip tests failing when run under root

Removing read-only directory doesn't fail for root.

Changed files:
filename: test/parallel/test-fs-mkdtempDisposableSync.js
patch: @@ -68,7 +68,7 @@ if (isMainThread) {
 
 // Errors from cleanup are thrown
 // It is difficult to arrange for rmdir to fail on windows
-if (!common.isWindows) {
+if (!common.isWindows && process.getuid() !== 0) {
   const base = fs.mkdtempDisposableSync(tmpdir.resolve('foo.'));
 
   // On Unix we can prevent removal by making the parent directory read-only

filename: test/parallel/test-fs-promises-mkdtempDisposable.js
patch: @@ -68,7 +68,7 @@ async function chdirDoesNotAffectRemoval() {
 
 async function errorsAreReThrown() {
   // It is difficult to arrange for rmdir to fail on windows
-  if (common.isWindows) return;
+  if (common.isWindows || process.getuid() === 0) return;
   const base = await fsPromises.mkdtempDisposable(tmpdir.resolve('foo.'));
 
   // On Unix we can prevent removal by making the parent directory read-only
Repository: ollama/ollama
Pull request: Port cuda/rocm skip build vars to linux

Windows already implements these, carry over to linux.

Changed files:
filename: llm/generate/gen_linux.sh
patch: @@ -156,7 +156,7 @@ if [ -z "${CUDART_LIB_DIR}" ]; then
     CUDART_LIB_DIR="${CUDA_LIB_DIR}"
 fi
 
-if [ -d "${CUDA_LIB_DIR}" ]; then
+if [ -z "${OLLAMA_SKIP_CUDA_GENERATE}" -a -d "${CUDA_LIB_DIR}" ]; then
     echo "CUDA libraries detected - building dynamic CUDA library"
     init_vars
     CUDA_MAJOR=$(ls "${CUDA_LIB_DIR}"/libcudart.so.* | head -1 | cut -f3 -d. || true)
@@ -218,7 +218,7 @@ if [ -z "${CLBlast_DIR}" ]; then
     fi
 fi
 
-if [ -d "${ROCM_PATH}" ]; then
+if [ -z "${OLLAMA_SKIP_ROCM_GENERATE}" -a -d "${ROCM_PATH}" ]; then
     echo "ROCm libraries detected - building dynamic ROCm library"
     if [ -f ${ROCM_PATH}/lib/librocblas.so.*.*.????? ]; then
         ROCM_VARIANT=_v$(ls ${ROCM_PATH}/lib/librocblas.so.*.*.????? | cut -f5 -d. || true)
Repository: ollama/ollama
Pull request: fix the cpu estimatedTotal memory + get the expiry time for loading models


Changed files:
filename: llm/server.go
patch: @@ -89,6 +89,7 @@ func NewLlamaServer(gpus gpu.GpuInfoList, model string, ggml *GGML, adapters, pr
 
 		cpuRunner = serverForCpu()
 		gpuCount = 0
+		_, _, estimatedTotal = EstimateGPULayers(gpus, ggml, projectors, opts)
 	} else {
 		if gpus[0].Library == "metal" {
 			memInfo, err := gpu.GetCPUMem()

filename: server/routes.go
patch: @@ -1161,6 +1161,14 @@ func (s *Server) ProcessHandler(c *gin.Context) {
 			Details:   modelDetails,
 			ExpiresAt: v.expiresAt,
 		}
+		// The scheduler waits to set expiresAt, so if a model is loading it's
+		// possible that it will be set to the unix epoch. For those cases, just
+		// calculate the time w/ the sessionDuration instead.
+		var epoch time.Time
+		if v.expiresAt == epoch {
+			mr.ExpiresAt = time.Now().Add(v.sessionDuration)
+		}
+
 		models = append(models, mr)
 	}
Repository: huggingface/transformers
Pull request: make apollo test case pass

as in galore here https://github.com/huggingface/transformers/blob/main/tests/trainer/test_trainer.py#L2443, same change to make apollo test case `test_apollo_lr_display_without_scheduler` pass.

@ydshieh , pls help review, thx very much.

Changed files:
filename: tests/trainer/test_trainer.py
patch: @@ -2603,19 +2603,19 @@ def test_apollo_lr_display_with_scheduler(self):
         logs = trainer.state.log_history[1:][:-1]
 
         # reach given learning rate peak and end with 0 lr
-        self.assertTrue(logs[num_warmup_steps - 2]["learning_rate"] == learning_rate)
-        self.assertTrue(logs[-1]["learning_rate"] == 0)
+        self.assertTrue(logs[num_warmup_steps - 1]["learning_rate"] == learning_rate)
+        self.assertTrue(np.allclose(logs[-1]["learning_rate"], 0, atol=5e-6))
 
         # increasing and decreasing pattern of lrs
         increasing_lrs = [
             logs[i]["learning_rate"] < logs[i + 1]["learning_rate"]
             for i in range(len(logs))
-            if i < num_warmup_steps - 2
+            if i < num_warmup_steps - 1
         ]
         decreasing_lrs = [
             logs[i]["learning_rate"] > logs[i + 1]["learning_rate"]
             for i in range(len(logs) - 1)
-            if i >= num_warmup_steps - 2
+            if i >= num_warmup_steps - 1
         ]
 
         self.assertTrue(all(increasing_lrs))
Repository: denoland/deno
Pull request: fix: skip flaky test-process-threadCpuUsage-worker-threads on Windows

Skip `parallel/test-process-threadCpuUsage-worker-threads.js` on Windows CI where it is flaky.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Changed files:
filename: tests/node_compat/config.jsonc
patch: @@ -1700,7 +1700,10 @@
     "parallel/test-process-title-cli.js": {},
     "parallel/test-process-release.js": {},
     "parallel/test-process-threadCpuUsage-main-thread.js": {},
-    "parallel/test-process-threadCpuUsage-worker-threads.js": {},
+    "parallel/test-process-threadCpuUsage-worker-threads.js": {
+      "windows": false,
+      "reason": "flaky on Windows CI"
+    },
     "parallel/test-process-umask-mask.js": {},
     "parallel/test-process-umask.js": {},
     "parallel/test-process-uptime.js": {},
Repository: ollama/ollama
Pull request: Sanitize the env var debug log

Only dump env vars we care about in the logs

Changed files:
filename: llm/server.go
patch: @@ -317,8 +317,22 @@ func NewLlamaServer(gpus gpu.GpuInfoList, model string, ggml *GGML, adapters, pr
 		}
 
 		slog.Info("starting llama server", "cmd", s.cmd.String())
-		// Log at debug as the environment is inherited and might contain sensitive information
-		slog.Debug("subprocess", "environment", s.cmd.Env)
+		if envconfig.Debug {
+			filteredEnv := []string{}
+			for _, ev := range s.cmd.Env {
+				if strings.HasPrefix(ev, "CUDA_") ||
+					strings.HasPrefix(ev, "ROCM_") ||
+					strings.HasPrefix(ev, "HIP_") ||
+					strings.HasPrefix(ev, "HSA_") ||
+					strings.HasPrefix(ev, "GGML_") ||
+					strings.HasPrefix(ev, "PATH=") ||
+					strings.HasPrefix(ev, "LD_LIBRARY_PATH=") {
+					filteredEnv = append(filteredEnv, ev)
+				}
+			}
+			// Log at debug as the environment is inherited and might contain sensitive information
+			slog.Debug("subprocess", "environment", filteredEnv)
+		}
 
 		if err = s.cmd.Start(); err != nil {
 			// Detect permission denied and augment them essage about noexec
Repository: nodejs/node
Pull request: test: update WPT for urlpattern to cff1ac1123

This is an automated update of the WPT for urlpattern to https://github.com/web-platform-tests/wpt/commit/cff1ac112375b8089fe9f6bf434f602cf7ef98be.

Changed files:
filename: test/fixtures/wpt/README.md
patch: @@ -29,7 +29,7 @@ Last update:
 - resources: https://github.com/web-platform-tests/wpt/tree/1d2c5fb36a/resources
 - streams: https://github.com/web-platform-tests/wpt/tree/bc9dcbbf1a/streams
 - url: https://github.com/web-platform-tests/wpt/tree/9504a83e01/url
-- urlpattern: https://github.com/web-platform-tests/wpt/tree/84b75f0880/urlpattern
+- urlpattern: https://github.com/web-platform-tests/wpt/tree/cff1ac1123/urlpattern
 - user-timing: https://github.com/web-platform-tests/wpt/tree/5ae85bf826/user-timing
 - wasm/jsapi: https://github.com/web-platform-tests/wpt/tree/cde25e7e3c/wasm/jsapi
 - wasm/webapi: https://github.com/web-platform-tests/wpt/tree/fd1b23eeaa/wasm/webapi

filename: test/fixtures/wpt/urlpattern/resources/urlpatterntestdata.json
patch: @@ -2991,5 +2991,47 @@
     "pattern": [{ "pathname": "/([\\d&&[0-1]])" }],
     "inputs": [{ "pathname": "/3" }],
     "expected_match": null
+  },
+  {
+    "pattern": [{ "protocol": "http", "hostname": "example.com/ignoredpath" }],
+    "inputs": ["http://example.com/"],
+    "expected_obj": {
+      "protocol": "http",
+      "hostname": "example.com",
+      "pathname": "*"
+    },
+    "expected_match": {
+      "protocol": { "input": "http", "groups": {} },
+      "hostname": { "input": "example.com", "groups": {} },
+      "pathname": { "input": "/", "groups": { "0": "/" } }
+    }
+  },
+  {
+    "pattern": [{ "protocol": "http", "hostname": "example.com\\?ignoredsearch" }],
+    "inputs": ["http://example.com/"],
+    "expected_obj": {
+      "protocol": "http",
+      "hostname": "example.com",
+      "search": "*"
+    },
+    "expected_match": {
+      "protocol": { "input": "http", "groups": {} },
+      "hostname": { "input": "example.com", "groups": {} },
+      "pathname": { "input": "/", "groups": { "0": "/" } }
+    }
+  },
+  {
+    "pattern": [{ "protocol": "http", "hostname": "example.com#ignoredhash" }],
+    "inputs": ["http://example.com/"],
+    "expected_obj": {
+      "protocol": "http",
+      "hostname": "example.com",
+      "hash": "*"
+    },
+    "expected_match": {
+      "protocol": { "input": "http", "groups": {} },
+      "hostname": { "input": "example.com", "groups": {} },
+      "pathname": { "input": "/", "groups": { "0": "/" } }
+    }
   }
 ]

filename: test/fixtures/wpt/versions.json
patch: @@ -76,7 +76,7 @@
     "path": "url"
   },
   "urlpattern": {
-    "commit": "84b75f08801c8cfe407c25614c49132075b8afab",
+    "commit": "cff1ac112375b8089fe9f6bf434f602cf7ef98be",
     "path": "urlpattern"
   },
   "user-timing": {