Skip to content

Commit 5856297

Browse files
committed
Correct an Opal v1.4 compatibility issue
1 parent bf5e9e6 commit 5856297

File tree

1 file changed

+33
-21
lines changed

1 file changed

+33
-21
lines changed

opal/browser/support.rb

Lines changed: 33 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -75,14 +75,16 @@ def self.supports?(feature)
7575
when 'Window.send (Asynchronous)'
7676
if defined?(`window.postMessage`) && !defined?(`window.importScripts`)
7777
%x{
78-
var ok = true,
79-
old = window.onmessage;
78+
(function() {
79+
var ok = true,
80+
old = window.onmessage;
8081
81-
window.onmessage = function() { ok = false; };
82-
window.postMessage("", "*")
83-
window.onmessage = old;
82+
window.onmessage = function() { ok = false; };
83+
window.postMessage("", "*")
84+
window.onmessage = old;
8485
85-
return ok;
86+
return ok;
87+
})()
8688
}
8789
end
8890

@@ -106,45 +108,55 @@ def self.supports?(feature)
106108

107109
when 'Attr.isId'
108110
%x{
109-
var div = document.createElement('div');
110-
div.setAttribute('id', 'xxxxxxxxxxxxx');
111+
(function() {
112+
var div = document.createElement('div');
113+
div.setAttribute('id', 'xxxxxxxxxxxxx');
111114
112-
return typeof(div.attributes['id'].isId) !== "undefined";
115+
return typeof(div.attributes['id'].isId) !== "undefined";
116+
})()
113117
}
114118

115119
when 'Element.addBehavior'
116120
defined?(`document.documentElement.addBehavior`)
117121

118122
when 'Element.className'
119123
%x{
120-
var div = document.createElement("div");
121-
div.setAttribute('className', 'x');
124+
(function() {
125+
var div = document.createElement("div");
126+
div.setAttribute('className', 'x');
122127
123-
return div.className === 'x';
128+
return div.className === 'x';
129+
})()
124130
}
125131

126132
when 'Element.class'
127133
%x{
128-
var div = document.createElement("div");
129-
div.setAttribute('class', 'x');
134+
(function() {
135+
var div = document.createElement("div");
136+
div.setAttribute('class', 'x');
130137
131-
return div.className === 'x';
138+
return div.className === 'x';
139+
})()
132140
}
133141

134142
when 'Element.for'
135143
%x{
136-
var label = document.createElement("label");
137-
label.setAttribute('for', 'x');
144+
(function() {
145+
var label = document.createElement("label");
146+
label.setAttribute('for', 'x');
138147
139-
return label.htmlFor === 'x';
148+
return label.htmlFor === 'x';
149+
})()
140150
}
141151

142152
when 'Element.htmlFor'
143153
%x{
144-
var label = document.createElement("label");
145-
label.setAttribute('htmlFor', 'x');
154+
(function() {
155+
var label = document.createElement("label");
156+
label.setAttribute('htmlFor', 'x');
146157
147-
return label.htmlFor === 'x';
158+
return label.htmlFor === 'x';
159+
})()
148160
}
149161

150162
when 'Element.clientSize'

0 commit comments

Comments
 (0)