helloadhavan/github_issues huggingface dataset:
Repository: facebook/react
Pull request: Improve DevTools bug template text

Lots of issues get reported with incomplete or missing repro info. Maybe this change in template text will help.

![Screen shot of new error template](https://user-images.githubusercontent.com/29597/116883572-c080c800-abf3-11eb-8902-e7f91f29f02f.png)


Changed files:
filename: packages/react-devtools-shared/src/devtools/views/ErrorBoundary/ReportNewIssue.js
patch: @@ -11,6 +11,10 @@ import * as React from 'react';
 import Icon from '../Icon';
 import styles from './shared.css';
 
+function encodeURIWrapper(string: string): string {
+  return encodeURI(string).replace(/#/g, '%23');
+}
+
 type Props = {|
   callStack: string | null,
   componentStack: string | null,
@@ -28,26 +32,40 @@ export default function ReportNewIssue({
   }
 
   const title = `Error: "${errorMessage || ''}"`;
-  const label = 'Component: Developer Tools';
-
-  let body = 'Describe what you were doing when the bug occurred:';
-  body += '\n1. ';
-  body += '\n2. ';
-  body += '\n3. ';
-  body += '\n\n---------------------------------------------';
-  body += '\nPlease do not remove the text below this line';
-  body += '\n---------------------------------------------';
-  body += `\n\nDevTools version: ${process.env.DEVTOOLS_VERSION || ''}`;
-  if (callStack) {
-    body += `\n\nCall stack: ${callStack.trim()}`;
-  }
-  if (componentStack) {
-    body += `\n\nComponent stack: ${componentStack.trim()}`;
-  }
+  const labels = ['Component: Developer Tools', 'Status: Unconfirmed'];
+
+  const body = `
+<!-- Please answer both questions below before submitting this issue. -->
+
+### Which website or app were you using when the bug happened?
+
+Please provide a link to the URL of the website (if it is public), a CodeSandbox (https://codesandbox.io/s/new) example that reproduces the bug, or a project on GitHub that we can checkout and run locally.
+
+### What were you doing on the website or app when the bug happened?
+
+If possible, please describe how to reproduce this bug on the website or app mentioned above:
+1. <!-- FILL THIS IN -->
+2. <!-- FILL THIS IN -->
+3. <!-- FILL THIS IN -->
+
+<!--------------------------------------------------->
+<!-- Please do not remove the text below this line -->
+<!--------------------------------------------------->
+
+### Generated information
+
+DevTools version: ${process.env.DEVTOOLS_VERSION || ''}
+
+Call stack:
+${callStack || '(not available)'}
+
+Component stack:
+${componentStack || '(not available)'}
+  `;
 
-  bugURL += `/issues/new?labels=${encodeURI(label)}&title=${encodeURI(
-    title,
-  )}&body=${encodeURI(body)}`;
+  bugURL += `/issues/new?labels=${encodeURIWrapper(
+    labels.join(','),
+  )}&title=${encodeURIWrapper(title)}&body=${encodeURIWrapper(body.trim())}`;
 
   return (
     <div className={styles.GitHubLinkRow}>
Repository: denoland/deno
Pull request: fix(publish): do not error for param with initializer before required parameter

* https://github.com/denoland/deno_graph/pull/440

Closes https://github.com/denoland/deno/issues/23331

Changed files:
filename: Cargo.lock
patch: @@ -1165,9 +1165,9 @@ dependencies = [
 
 [[package]]
 name = "deno_ast"
-version = "0.36.1"
+version = "0.36.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ff757b9a40f67682e34c2806a2d5a0331449acad467ab53e783cad8092675e50"
+checksum = "da1e05031ec63082cd9eaf103bee347120bf58cf8de5c880ab4c732b661c335f"
 dependencies = [
  "anyhow",
  "base64",
@@ -1202,6 +1202,7 @@ dependencies = [
  "swc_visit",
  "swc_visit_macros",
  "text_lines",
+ "thiserror",
  "unicode-width",
  "url",
 ]
@@ -1475,9 +1476,9 @@ dependencies = [
 
 [[package]]
 name = "deno_graph"
-version = "0.71.3"
+version = "0.71.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cabf5260490373a0486862fc6edd87fe378e00c91d98ff94e2e7804e6ce6eff9"
+checksum = "89621fa4d9b33f67e7a390e07e300ac0979b9817921d63f1a5056d51e2ae932a"
 dependencies = [
  "anyhow",
  "async-trait",

filename: Cargo.toml
patch: @@ -43,7 +43,7 @@ license = "MIT"
 repository = "https://github.com/denoland/deno"
 
 [workspace.dependencies]
-deno_ast = { version = "0.36.1", features = ["transpiling"] }
+deno_ast = { version = "=0.36.2", features = ["transpiling"] }
 deno_core = { version = "0.274.0" }
 
 deno_bench_util = { version = "0.140.0", path = "./bench_util" }

filename: cli/Cargo.toml
patch: @@ -68,7 +68,7 @@ deno_config = "=0.15.0"
 deno_core = { workspace = true, features = ["include_js_files_for_snapshotting"] }
 deno_doc = { version = "=0.123.1", features = ["html"] }
 deno_emit = "=0.39.0"
-deno_graph = { version = "=0.71.3", features = ["tokio_executor"] }
+deno_graph = { version = "=0.71.5", features = ["tokio_executor"] }
 deno_lint = { version = "=0.58.2", features = ["docs"] }
 deno_lockfile.workspace = true
 deno_npm = "=0.17.0"
Repository: huggingface/transformers
Pull request: [bark] fix loading of generation config

# What does this PR do?

Supercedes #36570 

`BarkModel.can_generate()` is `False`, but it needs to be `True`. Explanation in the diff.

____________________________________________
Reproducer of the issue:
```py
from transformers import pipeline

pipe = pipeline("text-to-speech", "suno/bark")
pipe("hello")
```

Changed files:
filename: src/transformers/models/bark/modeling_bark.py
patch: @@ -1573,6 +1573,14 @@ def __init__(self, config):
 
         self.config = config
 
+    @classmethod
+    def can_generate(cls) -> bool:
+        # Bark has a unique model structure, where the external class (`BarkModel`) doesn't need to inherit from
+        # `GenerationMixin` (it has a non-standard generation method), but one of the internal models do
+        # (`BarkSemanticModel`). This means that the base `can_generate()` will return `False`, but we need to
+        # override it so as to do `GenerationConfig` handling in multiple parts of the codebase.
+        return True
+
     @property
     def device(self) -> torch.device:
         """
Repository: nodejs/node
Pull request: buffer: make Buffer work with resizable ArrayBuffer

For release notes:

When a `Buffer` is created using a resizable `ArrayBuffer`, the `Buffer` length will now correctly change as the underlying `ArrayBuffer` size is changed.

```js
const ab = new ArrayBuffer(10, { maxByteLength: 20 });
const buffer = Buffer.from(ab);
console.log(buffer.byteLength); 10
ab.resize(15);
console.log(buffer.byteLength); 15
ab.resize(5);
console.log(buffer.byteLength); 5
```

Fixes: https://github.com/nodejs/node/issues/52195



Changed files:
filename: lib/buffer.js
patch: @@ -504,9 +504,7 @@ function fromArrayBuffer(obj, byteOffset, length) {
   if (maxLength < 0)
     throw new ERR_BUFFER_OUT_OF_BOUNDS('offset');
 
-  if (length === undefined) {
-    length = maxLength;
-  } else {
+  if (length !== undefined) {
     // Convert length to non-negative integer.
     length = +length;
     if (length > 0) {

filename: test/parallel/test-buffer-resizable.js
patch: @@ -0,0 +1,29 @@
+// Flags: --no-warnings
+'use strict';
+
+require('../common');
+const { Buffer } = require('node:buffer');
+const { strictEqual } = require('node:assert');
+const { describe, it } = require('node:test');
+
+describe('Using resizable ArrayBuffer with Buffer...', () => {
+  it('works as expected', () => {
+    const ab = new ArrayBuffer(10, { maxByteLength: 20 });
+    const buffer = Buffer.from(ab, 1);
+    strictEqual(buffer.byteLength, 9);
+    ab.resize(15);
+    strictEqual(buffer.byteLength, 14);
+    ab.resize(5);
+    strictEqual(buffer.byteLength, 4);
+  });
+
+  it('works with the deprecated constructor also', () => {
+    const ab = new ArrayBuffer(10, { maxByteLength: 20 });
+    const buffer = new Buffer(ab, 1);
+    strictEqual(buffer.byteLength, 9);
+    ab.resize(15);
+    strictEqual(buffer.byteLength, 14);
+    ab.resize(5);
+    strictEqual(buffer.byteLength, 4);
+  });
+});
Repository: vercel/next.js
Pull request: Turbopack: conditional parse in apply_module_type

This probably doesn't have any measurable effect as we always end up parsing anyway, but it might make a difference for NFT entries.

Closes PACK-4169

Changed files:
filename: turbopack/crates/turbopack/src/lib.rs
patch: @@ -158,7 +158,6 @@ async fn apply_module_type(
                     }
                 }
 
-                let parsed = module.parse();
                 let options = options.await?;
                 match options.tree_shaking_mode {
                     Some(TreeShakingMode::ModuleFragments) => {
@@ -168,6 +167,7 @@ async fn apply_module_type(
                         ))
                     }
                     Some(TreeShakingMode::ReexportsOnly) => {
+                        let parsed = module.parse();
                         if let Some(part) = part {
                             match part {
                                 ModulePart::Evaluation => {
Repository: ggml-org/llama.cpp
Pull request: convert : fix Norway problem when parsing YAML

Related to https://github.com/ggml-org/llama.cpp/issues/12091#issuecomment-2690825482

The problem is:

```yaml
- no
```

The YAML above will be interpreted as "yes/no", which is translated into true/false boolean value.

The fix? Do a replace `no` --> `"no"`

CC @mofosyne @compilade if you have a better solution


Changed files:
filename: gguf-py/gguf/metadata.py
patch: @@ -121,19 +121,39 @@ def load_model_card(model_path: Optional[Path] = None) -> dict[str, Any]:
         if not model_card_path.is_file():
             return {}
 
-        # The model card metadata is assumed to always be in YAML
+        # The model card metadata is assumed to always be in YAML (frontmatter)
         # ref: https://github.com/huggingface/transformers/blob/a5c642fe7a1f25d3bdcd76991443ba6ff7ee34b2/src/transformers/modelcard.py#L468-L473
+        yaml_content: str = ""
         with open(model_card_path, "r", encoding="utf-8") as f:
-            if f.readline() == "---\n":
-                raw = f.read().partition("---\n")[0]
-                data = yaml.safe_load(raw)
-                if isinstance(data, dict):
-                    return data
+            content = f.read()
+            lines = content.splitlines()
+            lines_yaml = []
+            if len(lines) == 0:
+                # Empty file
+                return {}
+            if len(lines) > 0 and lines[0] != "---":
+                # No frontmatter
+                return {}
+            for line in lines[1:]:
+                if line == "---":
+                    break # End of frontmatter
                 else:
-                    logger.error(f"while reading YAML model card frontmatter, data is {type(data)} instead of dict")
-                    return {}
+                    lines_yaml.append(line)
+            yaml_content = "\n".join(lines_yaml) + "\n"
+
+        # Quick hack to fix the Norway problem
+        # https://hitchdev.com/strictyaml/why/implicit-typing-removed/
+        yaml_content = yaml_content.replace("- no\n", "- \"no\"\n")
+
+        if yaml_content:
+            data = yaml.safe_load(yaml_content)
+            if isinstance(data, dict):
+                return data
             else:
+                logger.error(f"while reading YAML model card frontmatter, data is {type(data)} instead of dict")
                 return {}
+        else:
+            return {}
 
     @staticmethod
     def load_hf_parameters(model_path: Optional[Path] = None) -> dict[str, Any]:
Repository: denoland/deno
Pull request: fix(ext/node): promise rejection in VM contexts

Fixes https://github.com/denoland/deno/issues/23297

`docusaurus build` works!

```
$ deno run -A repro.js 
fish: Job 1, 'deno run -A ../../littledivy/fs…' terminated by signal SIGSEGV (Address
 boundary error)
$ denod run -A repro.js
error: Uncaught (in promise) Error: rejected
```

Depends on https://github.com/denoland/deno_core/pull/693


Changed files:
filename: ext/node/ops/vm_internal.rs
patch: @@ -4,6 +4,7 @@ use deno_core::error::type_error;
 use deno_core::error::AnyError;
 use deno_core::v8;
 use deno_core::v8::MapFnTo;
+use std::rc::Rc;
 
 pub const PRIVATE_SYMBOL_NAME: v8::OneByteConst =
   v8::String::create_external_onebyte_const(b"node:contextify:context");
@@ -75,13 +76,19 @@ impl ContextifyContext {
     Self::from_context(scope, context, sandbox_obj);
   }
 
-  pub fn from_context(
+  fn from_context(
     scope: &mut v8::HandleScope,
     v8_context: v8::Local<v8::Context>,
     sandbox_obj: v8::Local<v8::Object>,
   ) {
     let main_context = scope.get_current_context();
+    let context_state = main_context
+      .get_slot::<Rc<deno_core::ContextState>>(scope)
+      .unwrap()
+      .clone();
+
     v8_context.set_security_token(main_context.get_security_token(scope));
+    v8_context.set_slot(scope, context_state);
 
     let context = v8::Global::new(scope, v8_context);
     let sandbox = v8::Global::new(scope, sandbox_obj);
@@ -95,7 +102,7 @@ impl ContextifyContext {
     // lives longer than the execution context, so this should be safe.
     unsafe {
       v8_context.set_aligned_pointer_in_embedder_data(
-        0,
+        1,
         ptr as *const ContextifyContext as _,
       );
     }
@@ -157,7 +164,7 @@ impl ContextifyContext {
   ) -> Option<&'c ContextifyContext> {
     let context = object.get_creation_context(scope)?;
 
-    let context_ptr = context.get_aligned_pointer_from_embedder_data(0);
+    let context_ptr = context.get_aligned_pointer_from_embedder_data(1);
     // SAFETY: We are storing a pointer to the ContextifyContext
     // in the embedder data of the v8::Context during creation.
     Some(unsafe { &*(context_ptr as *const ContextifyContext) })
@@ -228,6 +235,7 @@ fn init_global_template_inner(scope: &mut v8::HandleScope) {
   let global_func_template =
     v8::FunctionTemplate::builder_raw(c_noop).build(scope);
   let global_object_template = global_func_template.instance_template(scope);
+  global_object_template.set_internal_field_count(2);
 
   let named_property_handler_config = {
     let mut config = v8::NamedPropertyHandlerConfiguration::new()

filename: tests/unit_node/vm_test.ts
patch: @@ -132,3 +132,19 @@ Deno.test({
     assertEquals(isContext(sandbox), false);
   },
 });
+
+// https://github.com/denoland/deno/issues/23297
+Deno.test({
+  name: "vm context promise rejection",
+  fn() {
+    const code = `
+function reject() {
+  return Promise.reject(new Error('rejected'));
+}
+reject().catch(() => {})
+    `;
+
+    const script = new Script(code);
+    script.runInNewContext();
+  },
+});
Repository: vercel/next.js
Pull request: build: Update `swc_core` to `v16.6.2`

### What?

Applies https://github.com/swc-project/swc/pull/10221

### Why?

To allow TypeScript nodes from the minifier. 

Closes PACK-4171

Changed files:
filename: Cargo.lock
patch: @@ -7205,9 +7205,9 @@ dependencies = [
 
 [[package]]
 name = "swc_core"
-version = "16.6.0"
+version = "16.6.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c341fee1c09c34a74f55d033895232d1b8858d860f4d9d10232ce083348a372d"
+checksum = "176ed65e403fb5fa1be022686e7fff1e85d0d2a23e03a3bb744376d186fca90c"
 dependencies = [
  "binding_macros",
  "swc",
@@ -7375,9 +7375,9 @@ dependencies = [
 
 [[package]]
 name = "swc_ecma_ast"
-version = "8.0.0"
+version = "8.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c66db1e9b31f0f91ee0964aba014b4d2dfdc6c558732d106d762b43bedad2c4a"
+checksum = "22b5c514e22bcd65176a356c0bd2de295881b97079a45b991b98c4dca666ac78"
 dependencies = [
  "bitflags 2.5.0",
  "bytecheck 0.8.0",
@@ -7464,9 +7464,9 @@ dependencies = [
 
 [[package]]
 name = "swc_ecma_compat_es2015"
-version = "11.0.0"
+version = "11.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "124d5fdcdc9973b7dba1eb18874c5a7a40b9fadb32bc7c5e2fc4f30c69129fa1"
+checksum = "316c3b578f8a91574ed09b4ec68cbaa8e4e47fb7deea6d365eaa4d5e6c3c54ae"
 dependencies = [
  "arrayvec 0.7.4",
  "indexmap 2.7.1",
@@ -7688,9 +7688,9 @@ dependencies = [
 
 [[package]]
 name = "swc_ecma_minifier"
-version = "12.1.0"
+version = "12.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89c92ef9459af28b4c3fad45fc5f82213a26f28bda3242895644c7d53e994fb6"
+checksum = "2a7e71138f0a48813a57cce10fb28ac55fecb7bb70c492f56e3517a1bb039f35"
 dependencies = [
  "arrayvec 0.7.4",
  "indexmap 2.7.1",
@@ -7940,9 +7940,9 @@ dependencies = [
 
 [[package]]
 name = "swc_ecma_transforms_optimization"
-version = "11.0.1"
+version = "11.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d8461bd302613e5144a2685a38bd34dad74eb362d99a343d556a497451603605"
+checksum = "e6815f07e48c8274ee5eee6331ede60169985b087e1b511819dddfefde4570f7"
 dependencies = [
  "dashmap 5.5.3",
  "indexmap 2.7.1",

filename: Cargo.toml
patch: @@ -296,7 +296,7 @@ turbopack-trace-utils = { path = "turbopack/crates/turbopack-trace-utils" }
 turbopack-wasm = { path = "turbopack/crates/turbopack-wasm" }
 
 # SWC crates
-swc_core = { version = "16.6.0", features = [
+swc_core = { version = "16.6.2", features = [
   "ecma_loader_lru",
   "ecma_loader_parking_lot",
 ] }
Repository: ggml-org/llama.cpp
Pull request: examples: fix typo in imatrix/README.md (#11884)

fixed typo in markdown


Changed files:
filename: examples/imatrix/README.md
patch: @@ -1,6 +1,6 @@
 # llama.cpp/examples/imatrix
 
-Compute an importance matrix for a model and given text dataset. Can be used during quantization to enchance the quality of the quantized models.
+Compute an importance matrix for a model and given text dataset. Can be used during quantization to enhance the quality of the quantized models.
 More information is available here: https://github.com/ggml-org/llama.cpp/pull/4861
 
 ## Usage
Repository: electron/electron
Pull request: fix: BrowserView and <webview> should be transparent by default

#### Description of Change

This regressed with #35658. Chrome defaults this to white:
https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/core/exported/web_view_impl.cc;l=3301;drc=926dafb2e32d6676e53fde59efaff1aa4ea1dd61,
but we want transparent for &lt;webview> and BrowserView.

I'll leave it as white for WebContentsView as that matches more closely with
Chromium's behavior.

#### Checklist
<!-- Remove items that do not apply. For completed items, change [ ] to [x]. -->

- [x] PR description included and stakeholders cc'd
- [x] `npm test` passes
- [ ] tests are [changed or added](https://github.com/electron/electron/blob/main/docs/development/testing.md)
- [x] relevant documentation, tutorials, templates and examples are changed or added
- [x] [PR release notes](https://github.com/electron/clerk/blob/main/README.md) describe the change in a way relevant to app developers, and are [capitalized, punctuated, and past tense](https://github.com/electron/clerk/blob/main/README.md#examples).

#### Release Notes

Notes: Fixed &lt;webview&gt; and BrowserViews being white instead of transparent by default.


Changed files:
filename: shell/browser/api/electron_api_web_contents.cc
patch: @@ -3778,15 +3778,17 @@ void WebContents::SetImageAnimationPolicy(const std::string& new_policy) {
 }
 
 void WebContents::SetBackgroundColor(absl::optional<SkColor> maybe_color) {
-  web_contents()->SetPageBaseBackgroundColor(maybe_color);
+  SkColor color = maybe_color.value_or(type_ == Type::kWebView ||
+                                               type_ == Type::kBrowserView
+                                           ? SK_ColorTRANSPARENT
+                                           : SK_ColorWHITE);
+  web_contents()->SetPageBaseBackgroundColor(color);
 
   content::RenderFrameHost* rfh = web_contents()->GetPrimaryMainFrame();
   if (!rfh)
     return;
   content::RenderWidgetHostView* rwhv = rfh->GetView();
   if (rwhv) {
-    SkColor color =
-        maybe_color.value_or(IsGuest() ? SK_ColorTRANSPARENT : SK_ColorWHITE);
     rwhv->SetBackgroundColor(color);
     static_cast<content::RenderWidgetHostViewBase*>(rwhv)
         ->SetContentBackgroundColor(color);
Repository: huggingface/transformers
Pull request: Modular Conversion --fix_and_overwrite on Windows

# What does this PR do?

Uses `encoding="utf-8"` and `newline="\n"`

FYI `huggingface_hub` introduced a style bot GitHub action https://github.com/huggingface/huggingface_hub/pull/2898 we're using that in Diffusers https://github.com/huggingface/diffusers/blob/main/.github/workflows/pr_style_bot.yml to reduce the burden on external contributors.

## Who can review?

Anyone in the community is free to review the PR once the tests have passed. Feel free to tag
members/contributors who may be interested in your PR.


Changed files:
filename: utils/check_modular_conversion.py
patch: @@ -23,7 +23,7 @@ def process_file(modular_file_path, generated_modeling_content, file_type="model
     file_name_suffix = file_type.split("*")[-1] if "*" in file_type else ""
     file_path = modular_file_path.replace("modular_", f"{file_name_prefix}_").replace(".py", f"{file_name_suffix}.py")
     # Read the actual modeling file
-    with open(file_path, "r") as modeling_file:
+    with open(file_path, "r", encoding="utf-8") as modeling_file:
         content = modeling_file.read()
     output_buffer = StringIO(generated_modeling_content[file_type][0])
     output_buffer.seek(0)
@@ -39,7 +39,7 @@ def process_file(modular_file_path, generated_modeling_content, file_type="model
     # Check for differences
     if diff_list:
         if fix_and_overwrite:
-            with open(file_path, "w") as modeling_file:
+            with open(file_path, "w", encoding="utf-8", newline="\n") as modeling_file:
                 modeling_file.write(generated_modeling_content[file_type][0])
             console.print(f"[bold blue]Overwritten {file_path} with the generated content.[/bold blue]")
         else:

filename: utils/create_dependency_mapping.py
patch: @@ -30,7 +30,7 @@ def topological_sort(dependencies: dict):
 
 # Function to extract class and import info from a file
 def extract_classes_and_imports(file_path):
-    with open(file_path, "r") as file:
+    with open(file_path, "r", encoding="utf-8") as file:
         tree = ast.parse(file.read(), filename=file_path)
     imports = set()
Repository: nodejs/node
Pull request: test: deflake test/pummel/test-timers.js

This PR fixes: https://github.com/nodejs/node/issues/55092

Timers are not guaranteed to fire exactly when specified, the flakiness of the test comes from the assumption that the timer will always fire **_at_** or **_after_** the `timeout`, however this is not always the case. For instance, a 1000ms `timeout` could be fired at anytime roughly between `98x ~ 100x` due to the CPU load, platform etc.

This could be easily verified by:

```js
let currentTime = Date.now();

setInterval(() => {
  const timeElapsed = Date.now();
  console.log(timeElapsed - currentTime);
  currentTime = Date.now();
}, 1000);
```

on my macOS nightly build here is the result:

```
1003
983
1000
1001
999
1001
1001
1000
1001
997
1000
1000
```

Here is a more precise timing mechanism by using `process.hrtime` version:

```js
let currentTimeHR = process.hrtime();

setInterval(() => {
  const [s, n] = process.hrtime(currentTimeHR);
  console.log(s * 1000 + n / 1e6);

  currentTimeHR = process.hrtime();
}, 1000);
```

```
1001.345709
978.22325
1001.416125
1000.27375
1001.791
999.609291
1000.354209
999.61925
999.512083
1000.2595
```

Changed files:
filename: test/pummel/test-timers.js
patch: @@ -36,7 +36,7 @@ const WINDOW = 200; // Why does this need to be so big?
     assert.ok(diff > 0);
     console.error(`diff: ${diff}`);
 
-    assert.ok(1000 <= diff && diff < 1000 + WINDOW);
+    assert.ok(Math.abs(diff - 1000) < WINDOW);
   }), 1000);
 }
 
@@ -61,7 +61,7 @@ const WINDOW = 200; // Why does this need to be so big?
 
     const t = interval_count * 1000;
 
-    assert.ok(t <= diff && diff < t + (WINDOW * interval_count));
+    assert.ok(Math.abs(diff - t) < WINDOW * interval_count);
 
     assert.ok(interval_count <= 3, `interval_count: ${interval_count}`);
     if (interval_count === 3)