每次编译后都报错:TypeError: vb.destroy is not a function

  • Creator 版本:2.09

  • 目标平台:

  • 详细报错信息,包含调用堆栈:

    at callonDestroyInTryCatch (eval at misc.tryCatchFunctor_EDITOR (C:\CocosCreator209\resources\engine\bin\.cache\dev\cocos2d\core\utils\misc.js:1:1), <anonymous>:7:28)
    at CCClass.destroyComp (C:\CocosCreator209\resources\engine\bin\.cache\dev\cocos2d\core\node-activator.js:256:25)
    at cc_Graphics._onPreDestroy (C:\CocosCreator209\resources\engine\bin\.cache\dev\cocos2d\core\components\CCComponent.js:153:44)
    at cc_Graphics.prototype._destroyImmediate (C:\CocosCreator209\resources\engine\bin\.cache\dev\cocos2d\core\platform\CCObject.js:230:22)
    at cc_Node._onPreDestroy [as _onPreDestroyBase] (C:\CocosCreator209\resources\engine\bin\.cache\dev\cocos2d\core\utils\base-node.js:683:31)
    at cc_Node._onPreDestroy (C:\CocosCreator209\resources\engine\bin\.cache\dev\cocos2d\core\CCNode.js:670:44)
    at cc_Node.prototype._destroyImmediate (C:\CocosCreator209\resources\engine\bin\.cache\dev\cocos2d\core\platform\CCObject.js:230:22)
    at cc_Node._onPreDestroy [as _onPreDestroyBase] (C:\CocosCreator209\resources\engine\bin\.cache\dev\cocos2d\core\utils\base-node.js:679:33)
    at cc_Node._onPreDestroy (C:\CocosCreator209\resources\engine\bin\.cache\dev\cocos2d\core\CCNode.js:670:44)```

* 重现方式:每次修改脚本后编译就报错。但不影响正常使用

* 之前哪个版本是正常的 <!--可选-->:2.08

* 编辑器操作系统 <!--可选-->:win10

* 编辑器之前是否有其它报错 <!--可选-->:无

<!--
如果是偶发错误请提供:
-->

* 出现概率:100%

查下有用mask或者graphsics组件的地方,看下是不是两个组件引起的问题。如果有可能,麻烦提供一下demo以及重现方法

经过一个一个节点排查,的确是带有Graphsics的节点导致的。
但是单独使用也没什么问题,最终查出是我对Array扩展导致的。
assets/scripts/utils/array_extension.js导致,具体不知道是哪里和你们的代码冲突了。
望指出,让我们可以避免错误。error_demo.zip (538.2 KB)

重现方法:任意改变一下代码,自动编译一下就能报错。

经过再三测试,发现只要往 Array.prototype上扩展,就会报错,并非覆盖了某个方法导致。

变通办法是使用 Object.defineProperty(), 也不知道这个神奇的bug是怎么出来的

我也发现了 很奇怪哈

官方能不能看看这个问题 必显的 问题 很严重啊