summaryrefslogtreecommitdiffstats
path: root/js/src/tests/non262/regress/regress-459389.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/tests/non262/regress/regress-459389.js')
-rw-r--r--js/src/tests/non262/regress/regress-459389.js119
1 files changed, 119 insertions, 0 deletions
diff --git a/js/src/tests/non262/regress/regress-459389.js b/js/src/tests/non262/regress/regress-459389.js
new file mode 100644
index 0000000000..e63e064a0c
--- /dev/null
+++ b/js/src/tests/non262/regress/regress-459389.js
@@ -0,0 +1,119 @@
+/* -*- tab-width: 2; indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+//-----------------------------------------------------------------------------
+var BUGNUMBER = 459389;
+var summary = 'Do not crash with JIT';
+var actual = '';
+var expect = '';
+
+printBugNumber(BUGNUMBER);
+printStatus (summary);
+
+print('mmmm, food!');
+
+
+var SNI = {};
+SNI.MetaData={};
+SNI.MetaData.Parameter=function()
+{
+var parameters={};
+this.addParameter=function(key,value)
+{
+parameters[key]=[];
+parameters[key].push(value);
+};
+this.getParameter=function(key,separator){
+if(!parameters[key])
+{
+return;
+}
+return parameters[key].join(separator);
+};
+this.getKeys=function()
+{
+return parameters;
+};
+};
+SNI.MetaData.Manager=function(){
+var m=new SNI.MetaData.Parameter();
+this.getParameter=m.getParameter;
+};
+var MetaDataManager=SNI.MetaData.Manager;
+SNI.Ads={ };
+SNI.Ads.Url=function(){
+var p=new SNI.MetaData.Parameter();
+this.addParameter=p.addParameter;
+this.getParameter=p.getParameter;
+};
+function Ad() {
+var url=new SNI.Ads.Url();
+this.addParameter=url.addParameter;
+this.getParameter=url.getParameter;
+}
+function DartAd() {
+ return AdUrl.prototype=new Ad();
+}
+function AdUrl() { }
+function AdRestriction() {
+var p=new SNI.MetaData.Parameter();
+this.addParameter=p.addParameter;
+this.getParameter=p.getParameter;
+this.getKeys=p.getKeys;
+}
+function AdRestrictionManager(){
+this.restriction=[];
+this.isActive=isActive;
+this.isMatch=isMatch;
+this.startMatch=startMatch;
+function isActive(ad,mdm){
+var value=false;
+for(var i=0;i<this.restriction.length;i++)
+{
+adRestriction=this.restriction[i];
+value=this.startMatch(ad,mdm,adRestriction);
+}
+}
+function startMatch(ad,mdm,adRestriction){
+for(var key in adRestriction.getKeys()){
+var restrictions=adRestriction.getParameter(key,',');
+var value=mdm.getParameter(key,'');
+match=this.isMatch(value,restrictions);
+if(!match){
+value=ad.getParameter(key,'')
+match=this.isMatch(value,restrictions);
+}
+}
+}
+function isMatch(value,restrictions){
+var match=false;
+if(value)
+{
+splitValue=value.split('');
+for(var x=0;x<splitValue.length;x++){
+for(var a;a<restrictions.length;a++){ }
+}
+}
+return match;
+}
+}
+var adRestrictionManager = new AdRestrictionManager();
+var restrictionLeader6 = new AdRestriction();
+restrictionLeader6.addParameter("", "");
+adRestrictionManager.restriction.push(restrictionLeader6);
+var restrictionLeader7 = new AdRestriction();
+restrictionLeader7.addParameter("", "");
+adRestrictionManager.restriction.push(restrictionLeader7);
+function FoodAd(adtype)
+{
+ ad=new DartAd()
+ ad.addParameter("",adtype)
+ adRestrictionManager.isActive(ad, mdManager)
+}
+var mdManager = new MetaDataManager() ;
+ FoodAd('P')
+
+
+reportCompare(expect, actual, summary);