TypeError: 'caller', 'callee', and 'arguments' properties may not be accessed on strict mode dexie.js
TypeError: 'caller', 'callee', and 'arguments' properties may not be accessed on strict mode dexie.js
谁能告诉我当我调用 dexie.js 的 count() 函数时发生了什么:
TypeError: 'caller', 'callee', and 'arguments' properties may not be accessed on strict mode functions or the arguments objects for calls to them
at eval (eval at getErrorWithStack (http://127.0.0.1:8081/elements/js/dexie.js:394:5), <anonymous>:1:19)
at getErrorWithStack (http://127.0.0.1:8081/elements/js/dexie.js:394:5)
at new Promise (http://127.0.0.1:8081/elements/js/dexie.js:786:29)
at new Transaction (http://127.0.0.1:8081/elements/js/dexie.js:2756:28)
at Dexie._createTransaction (http://127.0.0.1:8081/elements/js/dexie.js:1809:16)
at tempTransaction (http://127.0.0.1:8081/elements/js/dexie.js:1825:28)
at WriteableTable.getIDBObjectStore (http://127.0.0.1:8081/elements/js/dexie.js:2266:99)
at WriteableCollection._read (http://127.0.0.1:8081/elements/js/dexie.js:3454:42)
at WriteableCollection.count (http://127.0.0.1:8081/elements/js/dexie.js:3510:33)
at HTMLElement.checkLoadEnoughtOfflineData (http://127.0.0.1:8081/elements/base/app-localize-behavior.html:294:73)
上面最后一行是我函数的调用:
checkLoadEnoughtOfflineData(idcheck) {
return dbOffline.checkPageTable.where("idCheck").equals(idcheck).count();
}
p/s:我正在使用 Google Chorm 62。
我假设您的调试器在此位置中断。这是一段故意破坏 "strict" 模式规则以生成错误的代码,以便可以从产生的错误中选择调用堆栈。如果您可以在调试器设置中忽略此错误类型,Chromium 调试器将不再烦扰您。它只会在 Dexie.debug === true 时发生(这是从 localhost 提供的站点的默认设置)。您在控制台日志中获得的功能是未处理拒绝的异步堆栈跟踪。您可以通过设置 Dexie.debug = false.
明确关闭它
来源看起来像这样:
export function getErrorWithStack() {
"use strict";
if (NEEDS_THROW_FOR_STACK) try {
// Doing something naughty in strict mode here to trigger a specific error
// that can be explicitely ignored in debugger's exception settings.
// If we'd just throw new Error() here, IE's debugger's exception settings
// will just consider it as "exception thrown by javascript code" which is
// something you wouldn't want it to ignore.
getErrorWithStack.arguments;
throw new Error(); // Fallback if above line don't throw.
} catch(e) {
return e;
}
return new Error();
}
谁能告诉我当我调用 dexie.js 的 count() 函数时发生了什么:
TypeError: 'caller', 'callee', and 'arguments' properties may not be accessed on strict mode functions or the arguments objects for calls to them
at eval (eval at getErrorWithStack (http://127.0.0.1:8081/elements/js/dexie.js:394:5), <anonymous>:1:19)
at getErrorWithStack (http://127.0.0.1:8081/elements/js/dexie.js:394:5)
at new Promise (http://127.0.0.1:8081/elements/js/dexie.js:786:29)
at new Transaction (http://127.0.0.1:8081/elements/js/dexie.js:2756:28)
at Dexie._createTransaction (http://127.0.0.1:8081/elements/js/dexie.js:1809:16)
at tempTransaction (http://127.0.0.1:8081/elements/js/dexie.js:1825:28)
at WriteableTable.getIDBObjectStore (http://127.0.0.1:8081/elements/js/dexie.js:2266:99)
at WriteableCollection._read (http://127.0.0.1:8081/elements/js/dexie.js:3454:42)
at WriteableCollection.count (http://127.0.0.1:8081/elements/js/dexie.js:3510:33)
at HTMLElement.checkLoadEnoughtOfflineData (http://127.0.0.1:8081/elements/base/app-localize-behavior.html:294:73)
上面最后一行是我函数的调用:
checkLoadEnoughtOfflineData(idcheck) {
return dbOffline.checkPageTable.where("idCheck").equals(idcheck).count();
}
p/s:我正在使用 Google Chorm 62。
我假设您的调试器在此位置中断。这是一段故意破坏 "strict" 模式规则以生成错误的代码,以便可以从产生的错误中选择调用堆栈。如果您可以在调试器设置中忽略此错误类型,Chromium 调试器将不再烦扰您。它只会在 Dexie.debug === true 时发生(这是从 localhost 提供的站点的默认设置)。您在控制台日志中获得的功能是未处理拒绝的异步堆栈跟踪。您可以通过设置 Dexie.debug = false.
明确关闭它来源看起来像这样:
export function getErrorWithStack() {
"use strict";
if (NEEDS_THROW_FOR_STACK) try {
// Doing something naughty in strict mode here to trigger a specific error
// that can be explicitely ignored in debugger's exception settings.
// If we'd just throw new Error() here, IE's debugger's exception settings
// will just consider it as "exception thrown by javascript code" which is
// something you wouldn't want it to ignore.
getErrorWithStack.arguments;
throw new Error(); // Fallback if above line don't throw.
} catch(e) {
return e;
}
return new Error();
}