|
22 | 22 | }
|
23 | 23 |
|
24 | 24 | var injected = false;
|
25 |
| - var onLoadCallback; |
| 25 | + var onLoadCallbacks = []; |
26 | 26 |
|
27 | 27 | // Create a namespace and attach function that will store captured exception
|
28 | 28 | // Because functions are also objects, we can attach the queue itself straight to it and save some bytes
|
|
40 | 40 | // We only want to lazy inject/load the sdk bundle if
|
41 | 41 | // an error or promise rejection occured
|
42 | 42 | // OR someone called `capture...` on the SDK
|
43 |
| - injectSdk(onLoadCallback); |
| 43 | + injectSdk(onLoadCallbacks); |
44 | 44 | }
|
45 | 45 | queue.data.push(content);
|
46 | 46 | };
|
47 | 47 | queue.data = [];
|
48 | 48 |
|
49 |
| - function injectSdk(callback) { |
| 49 | + function injectSdk(callbacks) { |
50 | 50 | if (injected) {
|
51 | 51 | return;
|
52 | 52 | }
|
|
85 | 85 | oldInit(target);
|
86 | 86 | };
|
87 | 87 |
|
88 |
| - sdkLoaded(callback, SDK); |
| 88 | + sdkLoaded(callbacks, SDK); |
89 | 89 | } catch (o_O) {
|
90 | 90 | console.error(o_O);
|
91 | 91 | }
|
|
94 | 94 | _currentScriptTag.parentNode.insertBefore(_newScriptTag, _currentScriptTag);
|
95 | 95 | }
|
96 | 96 |
|
97 |
| - function sdkLoaded(callback, SDK) { |
| 97 | + function sdkLoaded(callbacks, SDK) { |
98 | 98 | try {
|
99 |
| - if (callback) { |
100 |
| - callback(); |
| 99 | + for (var i = 0; i < callbacks.length; i++) { |
| 100 | + if (typeof callbacks[i] === 'function') { |
| 101 | + callbacks[i](); |
| 102 | + } |
101 | 103 | }
|
| 104 | + |
102 | 105 | var data = queue.data;
|
103 | 106 |
|
104 | 107 | // We want to replay all calls to Sentry first to make sure init is called before
|
|
142 | 145 | // We don't want to _window.Sentry = _window.Sentry || { ... } since we want to make sure
|
143 | 146 | // that the first Sentry "instance" is our with onLoad
|
144 | 147 | _window[_namespace] = {
|
145 |
| - onLoad: function(callback) { |
| 148 | + onLoad: function (callback) { |
| 149 | + onLoadCallbacks.push(callback); |
146 | 150 | if (lazy && !forceLoad) {
|
147 |
| - onLoadCallback = callback; |
148 |
| - } else { |
149 |
| - injectSdk(callback); |
| 151 | + return; |
150 | 152 | }
|
| 153 | + injectSdk(onLoadCallbacks); |
151 | 154 | },
|
152 | 155 | forceLoad: function() {
|
153 | 156 | forceLoad = true;
|
154 | 157 | if (lazy) {
|
155 | 158 | setTimeout(function() {
|
156 |
| - injectSdk(onLoadCallback); |
| 159 | + injectSdk(onLoadCallbacks); |
157 | 160 | });
|
158 | 161 | }
|
159 | 162 | }
|
|
197 | 200 |
|
198 | 201 | if (!lazy) {
|
199 | 202 | setTimeout(function() {
|
200 |
| - injectSdk(onLoadCallback); |
| 203 | + injectSdk(onLoadCallbacks); |
201 | 204 | });
|
202 | 205 | }
|
203 | 206 | })(window, document, 'script', 'onerror', 'onunhandledrejection', 'Sentry', 'loader.js', '../../build/bundle.js', {
|
|
0 commit comments