Skip to content

Commit df8796f

Browse files
authored
Merge pull request #5036 from Jura-Z/incoming
Crash fix for "for .. in + third party framework" bug
2 parents 4bd39a7 + 4697863 commit df8796f

File tree

2 files changed

+8
-2
lines changed

2 files changed

+8
-2
lines changed

src/library_gl.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -766,7 +766,7 @@ var LibraryGL = {
766766
case 0x1F03 /* GL_EXTENSIONS */:
767767
var exts = GLctx.getSupportedExtensions();
768768
var gl_exts = [];
769-
for (var i in exts) {
769+
for (var i = 0; i < exts.length; ++i) {
770770
gl_exts.push(exts[i]);
771771
gl_exts.push("GL_" + exts[i]);
772772
}
@@ -968,7 +968,7 @@ var LibraryGL = {
968968
var exts = GLctx.getSupportedExtensions();
969969
var gl_exts = [];
970970
// each extension is duplicated, first in unprefixed WebGL form, and then a second time with "GL_" prefix.
971-
for (var i in exts) {
971+
for (var i = 0; i < exts.length; ++i) {
972972
gl_exts.push(allocate(intArrayFromString(exts[i]), 'i8', ALLOC_NORMAL));
973973
gl_exts.push(allocate(intArrayFromString("GL_" + exts[i]), 'i8', ALLOC_NORMAL));
974974
}

tests/webgl2.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,12 @@ EMSCRIPTEN_WEBGL_CONTEXT_HANDLE context;
1010

1111
int main()
1212
{
13+
EM_ASM({
14+
Array.prototype.someExtensionFromThirdParty = {};
15+
Array.prototype.someExtensionFromThirdParty.length = 42;
16+
Array.prototype.someExtensionFromThirdParty.something = function() { return "Surprise!"; };
17+
});
18+
1319
EmscriptenWebGLContextAttributes attrs;
1420
emscripten_webgl_init_context_attributes(&attrs);
1521
attrs.majorVersion = 2;

0 commit comments

Comments
 (0)