helloadhavan/github_issues huggingface dataset:
Repository: denoland/deno
Pull request: fix: do not return undefined for missing global properties

accessing e.g. `Buffer` in `Mode::Deno` mode should throw, not return undefined.

Changed files:
filename: ext/node/global.rs
patch: @@ -305,6 +305,10 @@ pub fn getter<'s>(
   let reflect_get = v8::Local::new(scope, reflect_get);
   let inner = v8::Local::new(scope, inner);
 
+  if !inner.has_own_property(scope, key).unwrap_or(false) {
+    return v8::Intercepted::No;
+  }
+
   let undefined = v8::undefined(scope);
   let Some(value) = reflect_get.call(
     scope,

filename: ext/web/02_timers.js
patch: @@ -35,7 +35,7 @@ function checkThis(thisArg) {
 function setImmediate(callback, ...args) {
   if (args.length > 0) {
     const unboundCallback = callback;
-    callback = () => ReflectApply(unboundCallback, window, args);
+    callback = () => ReflectApply(unboundCallback, globalThis, args);
   }
 
   return core.queueImmediate(
@@ -55,7 +55,7 @@ function setTimeout(callback, timeout = 0, ...args) {
   }
   if (args.length > 0) {
     const unboundCallback = callback;
-    callback = () => ReflectApply(unboundCallback, window, args);
+    callback = () => ReflectApply(unboundCallback, globalThis, args);
   }
   timeout = webidl.converters.long(timeout);
   return core.queueUserTimer(
@@ -77,7 +77,7 @@ function setInterval(callback, timeout = 0, ...args) {
   }
   if (args.length > 0) {
     const unboundCallback = callback;
-    callback = () => ReflectApply(unboundCallback, window, args);
+    callback = () => ReflectApply(unboundCallback, globalThis, args);
   }
   timeout = webidl.converters.long(timeout);
   return core.queueUserTimer(

filename: tests/node_compat/test/common/index.js
patch: @@ -62,7 +62,6 @@ let knownGlobals = [
   self,
   sessionStorage,
   setImmediate,
-  window,
 ];
 
 if (global.AbortController)

filename: tests/unit/globals_test.ts
patch: @@ -1,7 +1,12 @@
 // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
 
 // deno-lint-ignore-file no-window-prefix no-window
-import { assert, assertEquals, assertRejects } from "./test_util.ts";
+import {
+  assert,
+  assertEquals,
+  assertRejects,
+  assertThrows,
+} from "./test_util.ts";
 
 Deno.test(function globalThisExists() {
   assert(globalThis != null);
@@ -224,3 +229,10 @@ Deno.test(function mapGroupBy() {
     quantity: 5,
   }]);
 });
+
+Deno.test(function nodeGlobalsRaise() {
+  assertThrows(() => {
+    // @ts-ignore yes that's the point
+    Buffer;
+  }, ReferenceError);
+});
Repository: facebook/react
Pull request: DevTools: Include Edge in browser name detection

## Summary

When testing #22571 on Edge, I noticed that the warning was still being shown. This is because we don't differentiate between Edge and Chrome. This commit makes it so we correctly detect Edge.

## How did you test this change?

- yarn flow, test, test-build-devtools
- verified that warning is no longer shown in Edge


Changed files:
filename: packages/react-devtools-extensions/src/utils.js
patch: @@ -2,12 +2,25 @@
 
 import type {BrowserTheme} from 'react-devtools-shared/src/devtools/views/DevTools';
 
-const IS_CHROME = navigator.userAgent.indexOf('Firefox') < 0;
+const IS_EDGE = navigator.userAgent.indexOf('Edg') >= 0;
+const IS_FIREFOX = navigator.userAgent.indexOf('Firefox') >= 0;
+const IS_CHROME = IS_EDGE === false && IS_FIREFOX === false;
 
-export type BrowserName = 'Chrome' | 'Firefox';
+export type BrowserName = 'Chrome' | 'Firefox' | 'Edge';
 
 export function getBrowserName(): BrowserName {
-  return IS_CHROME ? 'Chrome' : 'Firefox';
+  if (IS_EDGE) {
+    return 'Edge';
+  }
+  if (IS_FIREFOX) {
+    return 'Firefox';
+  }
+  if (IS_CHROME) {
+    return 'Chrome';
+  }
+  throw new Error(
+    'Expected browser name to be one of Chrome, Edge or Firefox.',
+  );
 }
 
 export function getBrowserTheme(): BrowserTheme {
Repository: ggml-org/llama.cpp
Pull request: ggml-impl.h: fix build on POWER9

`error: ISO C++17 does not allow 'register' storage class specifier`

*Make sure to read the [contributing guidelines](https://github.com/ggml-org/llama.cpp/blob/master/CONTRIBUTING.md) before submitting a PR*


Changed files:
filename: ggml/src/ggml-impl.h
patch: @@ -355,8 +355,8 @@ GGML_API void ggml_aligned_free(void * ptr, size_t size);
     #define GGML_FP32_TO_FP16(x) GGML_COMPUTE_FP32_TO_FP16(x)
 
     static inline float ggml_compute_fp16_to_fp32(ggml_fp16_t h) {
-        register float f;
-        register double d;
+        float f;
+        double d;
         __asm__(
             "mtfprd %0,%2\n"
             "xscvhpdp %0,%0\n"
@@ -368,8 +368,8 @@ GGML_API void ggml_aligned_free(void * ptr, size_t size);
     }
 
     static inline ggml_fp16_t ggml_compute_fp32_to_fp16(float f) {
-        register double d;
-        register ggml_fp16_t r;
+        double d;
+        ggml_fp16_t r;
         __asm__( /* xscvdphp can work on double or single precision */
             "xscvdphp %0,%2\n"
             "mffprd %1,%0\n" :
Repository: facebook/react
Pull request: Enable cache in test renderer

## Summary

Enables the experimental cache API in TestRenderer. I tried to do this in #22554 but that appears to be the wrong file to change TestRenderer settings in www.

## How did you test this change?

eyes

Changed files:
filename: packages/shared/forks/ReactFeatureFlags.test-renderer.www.js
patch: @@ -23,7 +23,7 @@ export const enableUpdaterTracking = false;
 export const enableSuspenseServerRenderer = false;
 export const enableSelectiveHydration = false;
 export const enableLazyElements = false;
-export const enableCache = false;
+export const enableCache = true;
 export const enableSchedulerDebugging = false;
 export const disableJavaScriptURLs = false;
 export const disableInputAttributeSyncing = false;
Repository: facebook/react
Pull request: Only show DevTools warning about unrecognized build in Chrome

## Summary

#22517 added logic to detect when duplicate installations of DevTools extension are present (which relies on extension IDs), and when we can't detect what kind of build is present, we show an error in the console.

This detection currently only works for Chrome (which is the case where we would realistically observe duplicate extensions), however, in other browsers, we are still unnecessarily showing the warning about an unrecognized build, without anything actionable for the user to do.

This commit makes it so we only show the warning in Chrome.

Resolves #22572

## How did you test this change?

- verified that warning is no longer shown in firefox


Changed files:
filename: packages/react-devtools-extensions/src/checkForDuplicateInstallations.js
patch: @@ -10,13 +10,16 @@
 declare var chrome: any;
 
 import {__DEBUG__} from 'react-devtools-shared/src/constants';
+import {getBrowserName} from './utils';
 import {
   EXTENSION_INSTALL_CHECK,
   EXTENSION_INSTALLATION_TYPE,
   INTERNAL_EXTENSION_ID,
   LOCAL_EXTENSION_ID,
 } from './constants';
 
+const IS_CHROME = getBrowserName() === 'Chrome';
+
 const UNRECOGNIZED_EXTENSION_ERROR =
   'React Developer Tools: You are running an unrecognized installation of the React Developer Tools extension, which might conflict with other versions of the extension installed in your browser. ' +
   'Please make sure you only have a single version of the extension installed or enabled. ' +
@@ -76,14 +79,17 @@ export function checkForDuplicateInstallations(callback: boolean => void) {
       break;
     }
     case 'unknown': {
-      // If we don't know how this extension was built, we can't reliably detect if there
-      // are other installations of DevTools present.
-      // In this case, assume there are no duplicate exensions and show a warning about
-      // potential conflicts.
-      console.error(UNRECOGNIZED_EXTENSION_ERROR);
-      chrome.devtools.inspectedWindow.eval(
-        `console.error("${UNRECOGNIZED_EXTENSION_ERROR}")`,
-      );
+      // TODO: Support duplicate extension detection in other browsers
+      if (IS_CHROME) {
+        // If we don't know how this extension was built, we can't reliably detect if there
+        // are other installations of DevTools present.
+        // In this case, assume there are no duplicate exensions and show a warning about
+        // potential conflicts.
+        console.error(UNRECOGNIZED_EXTENSION_ERROR);
+        chrome.devtools.inspectedWindow.eval(
+          `console.error("${UNRECOGNIZED_EXTENSION_ERROR}")`,
+        );
+      }
       callback(false);
       break;
     }
Repository: ggml-org/llama.cpp
Pull request: ggml-cpu-impl.h: do not redefine bool on POWER9

`error: unknown type name '_Bool'`

*Make sure to read the [contributing guidelines](https://github.com/ggml-org/llama.cpp/blob/master/CONTRIBUTING.md) before submitting a PR*


Changed files:
filename: ggml/src/ggml-cpu/ggml-cpu-impl.h
patch: @@ -323,8 +323,6 @@ inline static int32x4_t ggml_vdotq_s32(int32x4_t acc, int8x16_t a, int8x16_t b)
 #else
 #ifdef __POWER9_VECTOR__
 #include <altivec.h>
-#undef bool
-#define bool _Bool
 #else
 #if defined(_MSC_VER) || defined(__MINGW32__)
 #include <intrin.h>
Repository: ggml-org/llama.cpp
Pull request: [CANN]310P OPT Support

Device 310P operator adaptation.











Changed files:
filename: ggml/src/ggml-cann/aclnn_ops.cpp
patch: @@ -625,6 +625,10 @@ static void ggml_cann_avg_pool2d(ggml_backend_cann_context& ctx,
     bool count_include_pad = true;
     int64_t divisor_override = 0;
     int8_t cube_math_type = 0;
+#ifdef ASCEND_310P
+    cube_math_type = 1;
+#endif
+
     GGML_CANN_CALL_ACLNN_OP(AvgPool2d, acl_src, kernel_size, strides, paddings_avg,
                     ceil_mode, count_include_pad, divisor_override,
                     cube_math_type, acl_dst);
@@ -2590,6 +2594,10 @@ void ggml_cann_conv_transpose_1d(ggml_backend_cann_context& ctx, ggml_tensor* ds
     int64_t groups = 1;
     int8_t cubeMathType = 0;
 
+#ifdef ASCEND_310P
+    cubeMathType = 1;
+#endif
+
     GGML_CANN_CALL_ACLNN_OP(Convolution, acl_input, acl_weight, nullptr, stride,
         padding, dilation, transposed, padding, groups, acl_dst, cubeMathType);
 

filename: ggml/src/ggml-cann/ggml-cann.cpp
patch: @@ -2022,6 +2022,10 @@ static bool ggml_backend_cann_supports_op(ggml_backend_dev_t dev,
                     return true;
                 case GGML_TYPE_Q8_0:
                 case GGML_TYPE_Q4_0:
+#ifdef ASCEND_310P
+                    // Q4 && Q8 per group is not suppor on 310p device
+                    return false;
+#endif
                     // only support contiguous for quantized types.
                     return ggml_is_contiguous(op->src[0]) &&
                             ggml_is_contiguous(op->src[1]);
@@ -2107,6 +2111,12 @@ static bool ggml_backend_cann_supports_op(ggml_backend_dev_t dev,
         }
         case GGML_OP_POOL_2D: {
             const int32_t * opts = (const int32_t *) op->op_params;
+#ifdef ASCEND_310P
+            enum ggml_op_pool opt = static_cast<ggml_op_pool>(opts[0]);
+            if(opt == GGML_OP_POOL_MAX){
+                return false;
+            }
+#endif
             const int       k0   = opts[1];
             const int       k1   = opts[2];
             const int       p0   = opts[5];
Repository: nodejs/node
Pull request: fs: respect dereference when copy symlink directory

Fixes: https://github.com/nodejs/node/issues/54730

Changed files:
filename: src/node_file.cc
patch: @@ -3155,7 +3155,9 @@ static void CpSyncCheckPaths(const FunctionCallbackInfo<Value>& args) {
 
   bool dest_exists = !error_code && dest_status.type() !=
                                         std::filesystem::file_type::not_found;
-  bool src_is_dir = src_status.type() == std::filesystem::file_type::directory;
+  bool src_is_dir =
+      (src_status.type() == std::filesystem::file_type::directory) ||
+      (dereference && src_status.type() == std::filesystem::file_type::symlink);
 
   if (!error_code) {
     // Check if src and dest are identical.

filename: test/parallel/test-fs-cp.mjs
patch: @@ -119,6 +119,23 @@ function nextdir() {
 }
 
 
+// It overrides target directory with what symlink points to, when dereference is true.
+{
+  const src = nextdir();
+  const symlink = nextdir();
+  const dest = nextdir();
+  mkdirSync(src, mustNotMutateObjectDeep({ recursive: true }));
+  writeFileSync(join(src, 'foo.js'), 'foo', 'utf8');
+  symlinkSync(src, symlink);
+
+  mkdirSync(dest, mustNotMutateObjectDeep({ recursive: true }));
+
+  cpSync(symlink, dest, mustNotMutateObjectDeep({ dereference: true, recursive: true }));
+  const destStat = lstatSync(dest);
+  assert(!destStat.isSymbolicLink());
+  assertDirEquivalent(src, dest);
+}
+
 // It throws error when verbatimSymlinks is not a boolean.
 {
   const src = './test/fixtures/copy/kitchen-sink';
Repository: denoland/deno
Pull request: fix(net): handle  panic on Windows for Unix socket usage in Deno.serve()

This PR addresses the issue where Deno.serve() panics on Windows when trying to use a Unix socket.
Fix #21967

Changed files:
filename: ext/net/lib.rs
patch: @@ -158,14 +158,28 @@ mod ops_unix {
   macro_rules! stub_op {
     ($name:ident) => {
       #[op2(fast)]
-      pub fn $name() {
-        panic!("Unsupported on non-unix platforms")
+      pub fn $name() -> Result<(), std::io::Error> {
+        let error_msg = format!(
+          "Operation `{:?}` not supported on non-unix platforms.",
+          stringify!($name)
+        );
+        Err(std::io::Error::new(
+          std::io::ErrorKind::Unsupported,
+          error_msg,
+        ))
       }
     };
     ($name:ident<P>) => {
       #[op2(fast)]
-      pub fn $name<P: NetPermissions>() {
-        panic!("Unsupported on non-unix platforms")
+      pub fn $name<P: NetPermissions>() -> Result<(), std::io::Error> {
+        let error_msg = format!(
+          "Operation `{:?}` not supported on non-unix platforms.",
+          stringify!($name)
+        );
+        Err(std::io::Error::new(
+          std::io::ErrorKind::Unsupported,
+          error_msg,
+        ))
       }
     };
   }

filename: tests/unit/serve_test.ts
patch: @@ -4034,3 +4034,28 @@ Deno.test(
     await server.finished;
   },
 );
+
+Deno.test({
+  name: "HTTP Server test (error on non-unix platform)",
+  ignore: Deno.build.os !== "windows",
+}, async () => {
+  await assertRejects(
+    async () => {
+      const ac = new AbortController();
+      const server = Deno.serve({
+        path: "path/to/socket",
+        handler: (_req) => new Response("Hello, world"),
+        signal: ac.signal,
+        onListen({ path: _path }) {
+          console.log(`Server started at ${_path}`);
+        },
+      });
+      server.finished.then(() => console.log("Server closed"));
+      console.log("Closing server...");
+      ac.abort();
+      await new Promise((resolve) => setTimeout(resolve, 100)); // Example of awaiting something
+    },
+    Error,
+    'Operation `"op_net_listen_unix"` not supported on non-unix platforms.',
+  );
+});
Repository: denoland/deno
Pull request: fix: add warning for invalid unstable feature use in deno.json/jsonc

Added warning message when using invalid unstable feature within deno.json or deno.jsonc

The commit is made to address issue #21987 .

**Code changes**

A) Added logic to compare the used unstable features within deno.json with the supported/valid unstable features to decide to whether warn or not.
_P.S: The Supported features were retrieved from (UNSTABLE_GRANULAR_FLAGS) within _deno/runtime/lib.rs_ and the rest of the flags (bare-node-builtins, byonm, sloppy-imports) by refering to the [link_](https://docs.deno.com/runtime/manual/tools/unstable_flags)

B) Added test to make sure the issue is solved compeletely. _Test: deno\tests\specs\task\invalid_unstable_feature_

@littledivy 

Changed files:
filename: cli/args/mod.rs
patch: @@ -1660,6 +1660,34 @@ impl CliOptions {
       });
     }
 
+    if !from_config_file.is_empty() {
+      // collect unstable granular flags
+      let mut all_valid_unstable_flags: Vec<&str> =
+        crate::UNSTABLE_GRANULAR_FLAGS
+          .iter()
+          .map(|granular_flag| granular_flag.0)
+          .collect();
+
+      let mut another_unstable_flags =
+        Vec::from(["sloppy-imports", "byonm", "bare-node-builtins"]);
+      // add more unstable flags to the same vector holding granular flags
+      all_valid_unstable_flags.append(&mut another_unstable_flags);
+
+      // check and warn if the unstable flag of config file isn't supported, by
+      // iterating through the vector holding the unstable flags
+      for unstable_value_from_config_file in &from_config_file {
+        if !all_valid_unstable_flags
+          .contains(&unstable_value_from_config_file.as_str())
+        {
+          log::warn!(
+            "{} '{}' isn't a valid unstable feature",
+            colors::yellow("Warning"),
+            unstable_value_from_config_file
+          );
+        }
+      }
+    }
+
     from_config_file
   }
 

filename: tests/specs/task/invalid_unstable_feature/__test__.jsonc
patch: @@ -0,0 +1,6 @@
+{
+  "steps": [{
+    "args": "task start",
+    "output": "invalid_unstable_feature.out"
+  }]
+}

filename: tests/specs/task/invalid_unstable_feature/deno.json
patch: @@ -0,0 +1,22 @@
+{
+  "tasks": {
+    "start": "deno run index.js"
+  },
+  "unstable": [
+    "abc",
+    "byonm",
+    "bare-node-builtins",
+    "sloppy-imports",
+    "unsafe-proto",
+    "webgpu",
+    "broadcast-channel",
+    "worker-options",
+    "cron",
+    "kv",
+    "ffi",
+    "fs",
+    "net",
+    "http",
+    "cba"
+  ]
+}

filename: tests/specs/task/invalid_unstable_feature/index.js
patch: @@ -0,0 +1 @@
+console.log("Hello unstable features");

filename: tests/specs/task/invalid_unstable_feature/invalid_unstable_feature.out
patch: @@ -0,0 +1,5 @@
+Task start deno run index.js
+Warning Sloppy imports are not recommended and have a negative impact on performance.
+Warning 'abc' isn't a valid unstable feature
+Warning 'cba' isn't a valid unstable feature
+Hello unstable features
Repository: facebook/react
Pull request: DevTools prepare release script resets patch version when bumping minor

## Summary

When bumping a minor version, the patch version should be reset to 0.

e.g. the next minor version after 4.19.2 should be 4.20.0, not 4.20.2


## How did you test this change?

`scripts/devtools/prepare-release` bumps minor version correctly


Changed files:
filename: scripts/devtools/prepare-release.js
patch: @@ -38,7 +38,7 @@ async function main() {
   const {major, minor, patch} = semver(previousVersion);
   const nextVersion =
     releaseType === 'minor'
-      ? `${major}.${minor + 1}.${patch}`
+      ? `${major}.${minor + 1}.0`
       : `${major}.${minor}.${patch + 1}`;
 
   updatePackageVersions(previousVersion, nextVersion);
Repository: denoland/deno
Pull request: fix(node/assert): throws not checking error instance

The implementation for `assert.throws()` from `node:assert` didn't work when the expected value was an `Error` constructor. In this case the thrown error should checked if it's an instance of said constructor.

Fixes https://github.com/denoland/deno/issues/24464

Changed files:
filename: ext/node/polyfills/assert.ts
patch: @@ -17,6 +17,9 @@ import {
   ERR_MISSING_ARGS,
 } from "ext:deno_node/internal/errors.ts";
 import { isDeepEqual } from "ext:deno_node/internal/util/comparisons.ts";
+import { primordials } from "ext:core/mod.js";
+
+const { ObjectPrototypeIsPrototypeOf } = primordials;
 
 function innerFail(obj: {
   actual?: unknown;
@@ -744,8 +747,8 @@ function validateThrownError(
     error = undefined;
   }
   if (
-    error instanceof Function && error.prototype !== undefined &&
-    error.prototype instanceof Error
+    typeof error === "function" &&
+    (error === Error || ObjectPrototypeIsPrototypeOf(Error, error))
   ) {
     // error is a constructor
     if (e instanceof error) {

filename: tests/integration/node_unit_tests.rs
patch: @@ -53,6 +53,7 @@ util::unit_test_factory!(
     _fs_writeFile_test = _fs / _fs_writeFile_test,
     _fs_write_test = _fs / _fs_write_test,
     async_hooks_test,
+    assert_test,
     assertion_error_test,
     buffer_test,
     child_process_test,

filename: tests/unit_node/assert_test.ts
patch: @@ -0,0 +1,18 @@
+// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
+import * as assert from "node:assert";
+
+Deno.test("[node/assert] .throws() compares Error instance", () => {
+  assert.throws(
+    () => {
+      throw new Error("FAIL");
+    },
+    Error,
+  );
+
+  assert.throws(
+    () => {
+      throw new TypeError("FAIL");
+    },
+    TypeError,
+  );
+});
Repository: denoland/deno
Pull request: feat: add `__tests__` to test file detection defaults

The `jest` test runner popularized putting tests into a `__tests__` folder. Whilst many have switched to going with a `.test` suffix in the file name these days, there are still many jest projects that have `__tests__`. By adding this to the default test detection logic it makes `deno test` discover those out of the box.

Changed files:
filename: cli/args/flags.rs
patch: @@ -2591,7 +2591,7 @@ report results to standard output:
   deno test src/fetch_test.ts src/signal_test.ts
 
 Directory arguments are expanded to all contained files matching the glob
-{*_,*.,}test.{js,mjs,ts,mts,jsx,tsx}:
+{*_,*.,}test.{js,mjs,ts,mts,jsx,tsx} or **/__tests__/**:
 
   deno test src/",
     )

filename: cli/tools/test/mod.rs
patch: @@ -1611,9 +1611,16 @@ pub(crate) fn is_supported_test_path(path: &Path) -> bool {
 fn has_supported_test_path_name(path: &Path) -> bool {
   if let Some(name) = path.file_stem() {
     let basename = name.to_string_lossy();
-    basename.ends_with("_test")
+    if basename.ends_with("_test")
       || basename.ends_with(".test")
       || basename == "test"
+    {
+      return true;
+    }
+
+    path
+      .components()
+      .any(|seg| seg.as_os_str().to_str() == Some("__tests__"))
   } else {
     false
   }
@@ -2077,6 +2084,18 @@ mod inner_test {
     assert!(is_supported_test_path(Path::new("foo/bar/test.jsx")));
     assert!(is_supported_test_path(Path::new("foo/bar/test.ts")));
     assert!(is_supported_test_path(Path::new("foo/bar/test.tsx")));
+    assert!(is_supported_test_path(Path::new(
+      "foo/bar/__tests__/foo.js"
+    )));
+    assert!(is_supported_test_path(Path::new(
+      "foo/bar/__tests__/foo.jsx"
+    )));
+    assert!(is_supported_test_path(Path::new(
+      "foo/bar/__tests__/foo.ts"
+    )));
+    assert!(is_supported_test_path(Path::new(
+      "foo/bar/__tests__/foo.tsx"
+    )));
     assert!(!is_supported_test_path(Path::new("README.md")));
     assert!(!is_supported_test_path(Path::new("lib/typescript.d.ts")));
     assert!(!is_supported_test_path(Path::new("notatest.js")));
Repository: facebook/react
Pull request: Enable scheduling profiler for RN FB profiling builds

Whoops.

Changed files:
filename: packages/shared/forks/ReactFeatureFlags.native-fb.js
patch: @@ -20,7 +20,7 @@ export const {enablePersistentOffscreenHostContainer} = dynamicFlags;
 
 // The rest of the flags are static for better dead code elimination.
 export const enableDebugTracing = false;
-export const enableSchedulingProfiler = true;
+export const enableSchedulingProfiler = __PROFILE__;
 export const enableProfilerTimer = __PROFILE__;
 export const enableProfilerCommitHooks = __PROFILE__;
 export const enableProfilerNestedUpdatePhase = __PROFILE__;